Changeset 253 in dev for trunk/abdev/BasicCompiler32/Compile_Set_Var.cpp
- Timestamp:
- Jul 30, 2007, 4:12:54 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_Set_Var.cpp
r236 r253 120 120 if(pRelativeVar->bOffsetOffset){ 121 121 //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 ); 123 125 } 124 126 else{ 125 127 //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 ); 127 131 } 128 132 } … … 130 134 if(pRelativeVar->bOffsetOffset){ 131 135 //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 ); 133 139 } 134 140 else{ 135 141 //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 ); 137 145 } 138 146 … … 239 247 // 64bitへ 240 248 // st(0) -> edx:eax 241 breakpoint;242 249 243 250 //push … … 338 345 if(pRelative->bOffsetOffset){ 339 346 //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 ); 341 350 } 342 351 else{ 343 352 //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 ); 345 356 } 346 357 } … … 348 359 if(pRelative->bOffsetOffset){ 349 360 //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 ); 351 364 } 352 365 else{ 353 366 //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 ); 355 370 } 356 371
Note:
See TracChangeset
for help on using the changeset viewer.