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

    r242 r254  
    3232                (char)0x1C
    3333            );
    34             compiler.codeGenerator.PutOld(
    35                 (long)pRelativeVar->offset,
    36                 Schedule::LocalVar
     34            compiler.codeGenerator.localVarPertialSchedules.push_back(
     35                compiler.codeGenerator.PutOld( (long)pRelativeVar->offset, true )
    3736            );
    3837        }
    3938        else{
    4039            //movlpd xmm_reg,qword ptr[rsp+offset]
    41             compiler.codeGenerator.op_movlpd_RM( xmm_reg, REG_RSP, (long)pRelativeVar->offset, MOD_BASE_DISP32, Schedule::LocalVar );
     40            compiler.codeGenerator.localVarPertialSchedules.push_back(
     41                compiler.codeGenerator.op_movlpd_RM( xmm_reg, REG_RSP, (long)pRelativeVar->offset, MOD_BASE_DISP32, Schedule::None, true )
     42            );
    4243        }
    4344    }
     
    4546        if(pRelativeVar->bOffsetOffset){
    4647            //add r11,qword ptr[rsp+offset]
    47             compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     48            compiler.codeGenerator.localVarPertialSchedules.push_back(
     49                compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true )
     50            );
    4851        }
    4952        else{
    5053            //mov r11,qword ptr[rsp+offset]
    51             compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     54            compiler.codeGenerator.localVarPertialSchedules.push_back(
     55                compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true )
     56            );
    5257        }
    5358
     
    8590                (char)0x1C
    8691            );
    87             compiler.codeGenerator.PutOld(
    88                 (long)pRelativeVar->offset,
    89                 Schedule::LocalVar
     92            compiler.codeGenerator.localVarPertialSchedules.push_back(
     93                compiler.codeGenerator.PutOld( (long)pRelativeVar->offset, true )
    9094            );
    9195        }
    9296        else{
    9397            //movss xmm_reg,dword ptr[rsp+offset]
    94             compiler.codeGenerator.op_movss_RM( xmm_reg, REG_RSP, (long)pRelativeVar->offset, MOD_BASE_DISP32, Schedule::LocalVar );
     98            compiler.codeGenerator.localVarPertialSchedules.push_back(
     99                compiler.codeGenerator.op_movss_RM( xmm_reg, REG_RSP, (long)pRelativeVar->offset, MOD_BASE_DISP32, Schedule::None, true )
     100            );
    95101        }
    96102    }
     
    98104        if(pRelativeVar->bOffsetOffset){
    99105            //add r11,qword ptr[rsp+offset]
    100             compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     106            compiler.codeGenerator.localVarPertialSchedules.push_back(
     107                compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true )
     108            );
    101109        }
    102110        else{
    103111            //mov r11,qword ptr[rsp+offset]
    104             compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     112            compiler.codeGenerator.localVarPertialSchedules.push_back(
     113                compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true )
     114            );
    105115        }
    106116
     
    145155        if(pRelativeVar->bOffsetOffset){
    146156            //mov reg, ptr[rsp+r11+offset]
    147             compiler.codeGenerator.op_mov_RM_ex(varSize,reg,REG_RSP,REG_R11,(int)pRelativeVar->offset,USE_OFFSET, Schedule::LocalVar );
     157            compiler.codeGenerator.localVarPertialSchedules.push_back(
     158                compiler.codeGenerator.op_mov_RM_ex(varSize,reg,REG_RSP,REG_R11,(int)pRelativeVar->offset,USE_OFFSET, Schedule::None, true )
     159            );
    148160        }
    149161        else{
    150162            //mov reg, ptr[rsp+offset]
    151             compiler.codeGenerator.op_mov_RM(varSize,reg,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     163            compiler.codeGenerator.localVarPertialSchedules.push_back(
     164                compiler.codeGenerator.op_mov_RM(varSize,reg,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true )
     165            );
    152166        }
    153167    }
     
    155169        if(pRelativeVar->bOffsetOffset){
    156170            //add r11,qword ptr[rsp+offset]
    157             compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     171            compiler.codeGenerator.localVarPertialSchedules.push_back(
     172                compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true )
     173            );
    158174        }
    159175        else{
    160176            //mov r11,qword ptr[rsp+offset]
    161             compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     177            compiler.codeGenerator.localVarPertialSchedules.push_back(
     178                compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true )
     179            );
    162180        }
    163181
Note: See TracChangeset for help on using the changeset viewer.