Changeset 228 in dev for trunk/abdev/BasicCompiler64/Compile_Calc_PushVar.cpp
- Timestamp:
- Jul 23, 2007, 3:24:20 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler64/Compile_Calc_PushVar.cpp
r226 r228 185 185 if(pRelativeVar->bOffsetOffset){ 186 186 //mov reg, ptr[r11+offset] 187 compiler.codeGenerator.op_mov_RM(varSize,reg,REG_R11,(int)pRelativeVar->offset,MOD_BASE_DISP32); 188 obp-=sizeof(long); 189 pobj_GlobalVarSchedule->add(); 190 obp+=sizeof(long); 187 compiler.codeGenerator.op_mov_RM(varSize,reg,REG_R11,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::GlobalVar ); 191 188 } 192 189 else{ 193 190 //mov reg, ptr[offset] 194 compiler.codeGenerator.op_mov_RM(varSize,reg,0,(int)pRelativeVar->offset,MOD_DISP32); 195 obp-=sizeof(long); 196 pobj_GlobalVarSchedule->add(); 197 obp+=sizeof(long); 191 compiler.codeGenerator.op_mov_RM(varSize,reg,0,(int)pRelativeVar->offset,MOD_DISP32, Schedule::GlobalVar ); 198 192 } 199 193 } … … 201 195 if(pRelativeVar->bOffsetOffset){ 202 196 //add r11,qword ptr[offset] 203 compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_NON,(int)pRelativeVar->offset,MOD_DISP32); 204 obp-=sizeof(long); 205 pobj_GlobalVarSchedule->add(); 206 obp+=sizeof(long); 197 compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_NON,(int)pRelativeVar->offset,MOD_DISP32, Schedule::GlobalVar ); 207 198 } 208 199 else{ 209 200 //mov r11,qword ptr[offset] 210 compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_NON,(int)pRelativeVar->offset,MOD_DISP32); 211 obp-=sizeof(long); 212 pobj_GlobalVarSchedule->add(); 213 obp+=sizeof(long); 201 compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_NON,(int)pRelativeVar->offset,MOD_DISP32, Schedule::GlobalVar ); 214 202 } 215 203 … … 219 207 if(pRelativeVar->bOffsetOffset){ 220 208 //mov reg, ptr[rsp+r11+offset] 221 compiler.codeGenerator.op_mov_RM_ex(varSize,reg,REG_RSP,REG_R11,(int)pRelativeVar->offset,USE_OFFSET); 222 obp-=sizeof(long); 223 AddLocalVarAddrSchedule(); 224 obp+=sizeof(long); 209 compiler.codeGenerator.op_mov_RM_ex(varSize,reg,REG_RSP,REG_R11,(int)pRelativeVar->offset,USE_OFFSET, Schedule::LocalVar ); 225 210 } 226 211 else{ 227 212 //mov reg, ptr[rsp+offset] 228 compiler.codeGenerator.op_mov_RM(varSize,reg,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32); 229 obp-=sizeof(long); 230 AddLocalVarAddrSchedule(); 231 obp+=sizeof(long); 213 compiler.codeGenerator.op_mov_RM(varSize,reg,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar ); 232 214 } 233 215 } … … 235 217 if(pRelativeVar->bOffsetOffset){ 236 218 //add r11,qword ptr[rsp+offset] 237 compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32); 238 obp-=sizeof(long); 239 AddLocalVarAddrSchedule(); 240 obp+=sizeof(long); 219 compiler.codeGenerator.op_add_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar ); 241 220 } 242 221 else{ 243 222 //mov r11,qword ptr[rsp+offset] 244 compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32); 245 obp-=sizeof(long); 246 AddLocalVarAddrSchedule(); 247 obp+=sizeof(long); 223 compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RSP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar ); 248 224 } 249 225
Note:
See TracChangeset
for help on using the changeset viewer.