Changeset 254 in dev for trunk/abdev/BasicCompiler64/Compile_Calc_PushVar.cpp
- Timestamp:
- Jul 31, 2007, 4:30:31 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler64/Compile_Calc_PushVar.cpp
r242 r254 32 32 (char)0x1C 33 33 ); 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 ) 37 36 ); 38 37 } 39 38 else{ 40 39 //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 ); 42 43 } 43 44 } … … 45 46 if(pRelativeVar->bOffsetOffset){ 46 47 //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 ); 48 51 } 49 52 else{ 50 53 //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 ); 52 57 } 53 58 … … 85 90 (char)0x1C 86 91 ); 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 ) 90 94 ); 91 95 } 92 96 else{ 93 97 //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 ); 95 101 } 96 102 } … … 98 104 if(pRelativeVar->bOffsetOffset){ 99 105 //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 ); 101 109 } 102 110 else{ 103 111 //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 ); 105 115 } 106 116 … … 145 155 if(pRelativeVar->bOffsetOffset){ 146 156 //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 ); 148 160 } 149 161 else{ 150 162 //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 ); 152 166 } 153 167 } … … 155 169 if(pRelativeVar->bOffsetOffset){ 156 170 //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 ); 158 174 } 159 175 else{ 160 176 //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 ); 162 180 } 163 181
Note:
See TracChangeset
for help on using the changeset viewer.