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_Var.cpp

    r226 r228  
    7272
    7373    //add r11,reg
    74     compiler.codeGenerator.op_add64_reg(REG_R11,reg);
     74    compiler.codeGenerator.op_add_RR(REG_R11,reg);
    7575}
    7676void SetRelativeOffset( RELATIVE_VAR &relativeVar ){
     
    176176
    177177        //add r12,reg
    178         compiler.codeGenerator.op_add64_reg(REG_R12,reg);
     178        compiler.codeGenerator.op_add_RR(REG_R12,reg);
    179179
    180180        HeapDefaultFree(pParm[i]);
     
    182182
    183183    //imul r12,TypeSize
    184     OpBuffer[obp++]=(char)0x4D;
    185     OpBuffer[obp++]=(char)0x69;
    186     OpBuffer[obp++]=(char)0xE4;
    187     *((long *)(OpBuffer+obp))=type.GetSize();
    188     obp+=sizeof(long);
     184    compiler.codeGenerator.op_imul_RV( sizeof(_int64), REG_R12, type.GetSize() );
    189185
    190186    //mov r11,qword ptr[rsp+offset]     ※スタックフレームを利用
     
    192188
    193189    //add r11,r12
    194     OpBuffer[obp++]=(char)0x4D;
    195     OpBuffer[obp++]=(char)0x03;
    196     OpBuffer[obp++]=(char)0xDC;
     190    compiler.codeGenerator.op_add_RR( REG_R11, REG_R12 );
    197191
    198192    return true;
     
    275269    if(offset){
    276270        //add r11,offset
    277         OpBuffer[obp++]=(char)0x49;
    278         OpBuffer[obp++]=(char)0x81;
    279         OpBuffer[obp++]=(char)0xC3;
    280         *((long *)(OpBuffer+obp))=offset;
    281         obp+=sizeof(long);
     271        compiler.codeGenerator.op_add_RV( REG_R11, offset );
    282272    }
    283273
     
    12791269
    12801270            //add r11,rsp
    1281             compiler.codeGenerator.op_add64_reg(REG_R11,REG_RSP);
     1271            compiler.codeGenerator.op_add_RR(REG_R11,REG_RSP);
    12821272
    12831273            //mov reg,r11
Note: See TracChangeset for help on using the changeset viewer.