Ignore:
Timestamp:
Jul 30, 2007, 4:12:54 PM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/Compile_Set_Var.cpp

    r236 r253  
    120120        if(pRelativeVar->bOffsetOffset){
    121121            //fstp ptr[ebp+ecx+offset]
    122             compiler.codeGenerator.op_fstp_base_offset_ex(VarType,REG_EBP,REG_ECX,(int)pRelativeVar->offset,USE_OFFSET, Schedule::LocalVar );
     122            compiler.codeGenerator.localVarPertialSchedules.push_back(
     123                compiler.codeGenerator.op_fstp_base_offset_ex(VarType,REG_EBP,REG_ECX,(int)pRelativeVar->offset,USE_OFFSET, Schedule::None, true )
     124            );
    123125        }
    124126        else{
    125127            //fstp ptr[ebp+offset]
    126             compiler.codeGenerator.op_fstp_base_offset(VarType,REG_EBP,(int)pRelativeVar->offset, Schedule::LocalVar );
     128            compiler.codeGenerator.localVarPertialSchedules.push_back(
     129                compiler.codeGenerator.op_fstp_base_offset(VarType,REG_EBP,(int)pRelativeVar->offset, Schedule::None, true )
     130            );
    127131        }
    128132    }
     
    130134        if(pRelativeVar->bOffsetOffset){
    131135            //add ecx,qword ptr[ebp+offset]
    132             compiler.codeGenerator.op_add_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     136            compiler.codeGenerator.localVarPertialSchedules.push_back(
     137                compiler.codeGenerator.op_add_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true )
     138            );
    133139        }
    134140        else{
    135141            //mov ecx,qword ptr[ebp+offset]
    136             compiler.codeGenerator.op_mov_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     142            compiler.codeGenerator.localVarPertialSchedules.push_back(
     143                compiler.codeGenerator.op_mov_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true )
     144            );
    137145        }
    138146
     
    239247            // 64bitへ
    240248            // st(0) -> edx:eax
    241             breakpoint;
    242249
    243250            //push
     
    338345        if(pRelative->bOffsetOffset){
    339346            //mov ptr[ebp+ecx+offset],eax/ax/al
    340             compiler.codeGenerator.op_mov_MR_ex(varSize,REG_EAX,REG_EBP,REG_ECX,(int)pRelative->offset,USE_OFFSET, Schedule::LocalVar );
     347            compiler.codeGenerator.localVarPertialSchedules.push_back(
     348                compiler.codeGenerator.op_mov_MR_ex(varSize,REG_EAX,REG_EBP,REG_ECX,(int)pRelative->offset,USE_OFFSET, Schedule::None, true )
     349            );
    341350        }
    342351        else{
    343352            //mov ptr[ebp+offset],eax/ax/al
    344             compiler.codeGenerator.op_mov_MR(varSize,REG_EAX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     353            compiler.codeGenerator.localVarPertialSchedules.push_back(
     354                compiler.codeGenerator.op_mov_MR(varSize,REG_EAX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::None, true )
     355            );
    345356        }
    346357    }
     
    348359        if(pRelative->bOffsetOffset){
    349360            //add ecx,ptr[ebp+offset]
    350             compiler.codeGenerator.op_add_RM(PTR_SIZE,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     361            compiler.codeGenerator.localVarPertialSchedules.push_back(
     362                compiler.codeGenerator.op_add_RM(PTR_SIZE,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::None, true )
     363            );
    351364        }
    352365        else{
    353366            //mov ecx,ptr[ebp+offset]
    354             compiler.codeGenerator.op_mov_RM(PTR_SIZE,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     367            compiler.codeGenerator.localVarPertialSchedules.push_back(
     368                compiler.codeGenerator.op_mov_RM(PTR_SIZE,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::None, true )
     369            );
    355370        }
    356371
Note: See TracChangeset for help on using the changeset viewer.