Ignore:
Timestamp:
Jul 23, 2007, 3:24:20 AM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler64/Compile_Object.cpp

    r226 r228  
    7979        pobj_sf->pop(REG_RBX);
    8080
    81         //add eax,TypeSize
    82         OpBuffer[obp++]=(char)0x05;
    83         *((long *)(OpBuffer+obp))=ObjectSize;
    84         obp+=sizeof(long);
    85 
    86         //sub ebx,1
    87         OpBuffer[obp++]=(char)0x83;
    88         OpBuffer[obp++]=(char)0xEB;
    89         OpBuffer[obp++]=(char)0x01;
     81        //add rax,TypeSize
     82        compiler.codeGenerator.op_add_RV( REG_RAX, ObjectSize );
     83
     84        //sub rbx,1
     85        compiler.codeGenerator.op_sub_RV( sizeof(_int64), REG_RBX, 1 );
    9086
    9187        //jnz ↑
     
    275271
    276272    //call rdi
    277     OpBuffer[obp++]=(char)0xFF;
    278     OpBuffer[obp++]=(char)0xD7;
     273    compiler.codeGenerator.PutOld(
     274        (char)0xFF,
     275        (char)0xD7
     276    );
    279277
    280278    //mov rcx,qword ptr[rsp+offset]     ※スタックフレームを利用
     
    282280
    283281    //add rcx,rsi
    284     compiler.codeGenerator.op_add64_reg(REG_RCX,REG_RSI);
     282    compiler.codeGenerator.op_add_RR(REG_RCX,REG_RSI);
    285283
    286284    //sub rbx,1
Note: See TracChangeset for help on using the changeset viewer.