Ignore:
Timestamp:
Jul 31, 2007, 4:30:31 AM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

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

    r242 r254  
    126126                (char)0x1C
    127127            );
    128             compiler.codeGenerator.PutOld(
    129                 (long)pRelative->offset,
    130                 Schedule::LocalVar
     128            compiler.codeGenerator.localVarPertialSchedules.push_back(
     129                compiler.codeGenerator.PutOld( (long)pRelative->offset, true )
    131130            );
    132131        }
    133132        else{
    134133            //movsd qword ptr[rsp+offset],xmm0
    135             compiler.codeGenerator.op_movsd_MR( REG_XMM0, REG_RSP, (long)pRelative->offset, MOD_BASE_DISP32, Schedule::LocalVar );
     134            compiler.codeGenerator.localVarPertialSchedules.push_back(
     135                compiler.codeGenerator.op_movsd_MR( REG_XMM0, REG_RSP, (long)pRelative->offset, MOD_BASE_DISP32, Schedule::None, true )
     136            );
    136137        }
    137138    }
     
    139140        if(pRelative->bOffsetOffset){
    140141            //add r11,qword ptr[rsp+offset]
    141             compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     142            compiler.codeGenerator.localVarPertialSchedules.push_back(
     143                compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::None, true )
     144            );
    142145        }
    143146        else{
    144147            //mov r11,qword ptr[rsp+offset]
    145             compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     148            compiler.codeGenerator.localVarPertialSchedules.push_back(
     149                compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::None, true )
     150            );
    146151        }
    147152
     
    186191                (char)0x1C
    187192            );
    188             compiler.codeGenerator.PutOld(
    189                 (long)pRelative->offset,
    190                 Schedule::LocalVar
     193            compiler.codeGenerator.localVarPertialSchedules.push_back(
     194                compiler.codeGenerator.PutOld( (long)pRelative->offset, true )
    191195            );
    192196        }
    193197        else{
    194198            //movss dword ptr[rsp+offset],xmm0
    195             compiler.codeGenerator.op_movss_MR( REG_XMM0, REG_RSP, (long)pRelative->offset, MOD_BASE_DISP32, Schedule::LocalVar );
     199            compiler.codeGenerator.localVarPertialSchedules.push_back(
     200                compiler.codeGenerator.op_movss_MR( REG_XMM0, REG_RSP, (long)pRelative->offset, MOD_BASE_DISP32, Schedule::None, true )
     201            );
    196202        }
    197203    }
     
    199205        if(pRelative->bOffsetOffset){
    200206            //add r11,qword ptr[rsp+offset]
    201             compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     207            compiler.codeGenerator.localVarPertialSchedules.push_back(
     208                compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::None, true )
     209            );
    202210        }
    203211        else{
    204212            //mov r11,qword ptr[rsp+offset]
    205             compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     213            compiler.codeGenerator.localVarPertialSchedules.push_back(
     214                compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::None, true )
     215            );
    206216        }
    207217
     
    302312        if(pRelative->bOffsetOffset){
    303313            //mov ptr[rsp+r11+offset],rax/eax/ax/al
    304             compiler.codeGenerator.op_mov_MR_ex(varSize,REG_RAX,REG_RSP,REG_R11,(int)pRelative->offset,USE_OFFSET, Schedule::LocalVar );
     314            compiler.codeGenerator.localVarPertialSchedules.push_back(
     315                compiler.codeGenerator.op_mov_MR_ex(varSize,REG_RAX,REG_RSP,REG_R11,(int)pRelative->offset,USE_OFFSET, Schedule::None, true )
     316            );
    305317        }
    306318        else{
    307319            //mov ptr[rsp+offset],rax/eax/ax/al
    308             compiler.codeGenerator.op_mov_MR(varSize,REG_RAX,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     320            compiler.codeGenerator.localVarPertialSchedules.push_back(
     321                compiler.codeGenerator.op_mov_MR(varSize,REG_RAX,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::None, true )
     322            );
    309323        }
    310324    }
     
    312326        if(pRelative->bOffsetOffset){
    313327            //add r11,qword ptr[rsp+offset]
    314             compiler.codeGenerator.op_add_RM( sizeof(_int64), REG_R11, REG_RSP, (int)pRelative->offset, MOD_BASE_DISP32, Schedule::LocalVar );
     328            compiler.codeGenerator.localVarPertialSchedules.push_back(
     329                compiler.codeGenerator.op_add_RM( sizeof(_int64), REG_R11, REG_RSP, (int)pRelative->offset, MOD_BASE_DISP32, Schedule::None, true )
     330            );
    315331        }
    316332        else{
    317333            //mov r11,qword ptr[rsp+offset]
    318             compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     334            compiler.codeGenerator.localVarPertialSchedules.push_back(
     335                compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::None, true )
     336            );
    319337        }
    320338
Note: See TracChangeset for help on using the changeset viewer.