Changeset 253 in dev for trunk/abdev/BasicCompiler32/Compile_Calc_PushVar.cpp
- Timestamp:
- Jul 30, 2007, 4:12:54 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_Calc_PushVar.cpp
r231 r253 26 26 if(pRelativeVar->bOffsetOffset){ 27 27 //fld ptr[ebp+ecx+offset] 28 compiler.codeGenerator.op_fld_base_offset_ex(type,REG_EBP,REG_ECX,(int)pRelativeVar->offset,USE_OFFSET, Schedule::LocalVar ); 28 compiler.codeGenerator.localVarPertialSchedules.push_back( 29 compiler.codeGenerator.op_fld_base_offset_ex(type,REG_EBP,REG_ECX,(int)pRelativeVar->offset,USE_OFFSET, Schedule::None, true ) 30 ); 29 31 } 30 32 else{ 31 33 //fld ptr[ebp+offset] 32 compiler.codeGenerator.op_fld_base_offset(type,REG_EBP,(int)pRelativeVar->offset, Schedule::LocalVar ); 34 compiler.codeGenerator.localVarPertialSchedules.push_back( 35 compiler.codeGenerator.op_fld_base_offset(type,REG_EBP,(int)pRelativeVar->offset, Schedule::None, true ) 36 ); 33 37 } 34 38 } … … 36 40 if(pRelativeVar->bOffsetOffset){ 37 41 //add ecx,qword ptr[ebp+offset] 38 compiler.codeGenerator.op_add_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar ); 42 compiler.codeGenerator.localVarPertialSchedules.push_back( 43 compiler.codeGenerator.op_add_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true ) 44 ); 39 45 } 40 46 else{ 41 47 //mov ecx,qword ptr[ebp+offset] 42 compiler.codeGenerator.op_mov_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar ); 48 compiler.codeGenerator.localVarPertialSchedules.push_back( 49 compiler.codeGenerator.op_mov_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true ) 50 ); 43 51 } 44 52 … … 102 110 if(pRelativeVar->bOffsetOffset){ 103 111 //mov reg, ptr[ebp+ecx+offset] 104 compiler.codeGenerator.op_mov_RM_ex(varSize,reg,REG_EBP,REG_ECX,(int)pRelativeVar->offset + offsetOf64Head,USE_OFFSET, Schedule::LocalVar ); 112 compiler.codeGenerator.localVarPertialSchedules.push_back( 113 compiler.codeGenerator.op_mov_RM_ex(varSize,reg,REG_EBP,REG_ECX,(int)pRelativeVar->offset + offsetOf64Head,USE_OFFSET, Schedule::None, true ) 114 ); 105 115 } 106 116 else{ 107 117 //mov reg, ptr[ebp+offset] 108 compiler.codeGenerator.op_mov_RM(varSize,reg,REG_EBP,(int)pRelativeVar->offset + offsetOf64Head,MOD_BASE_DISP32, Schedule::LocalVar ); 118 compiler.codeGenerator.localVarPertialSchedules.push_back( 119 compiler.codeGenerator.op_mov_RM(varSize,reg,REG_EBP,(int)pRelativeVar->offset + offsetOf64Head,MOD_BASE_DISP32, Schedule::None, true ) 120 ); 109 121 } 110 122 } … … 112 124 if(pRelativeVar->bOffsetOffset){ 113 125 //add ecx,qword ptr[ebp+offset] 114 compiler.codeGenerator.op_add_RM(varSize,REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar ); 126 compiler.codeGenerator.localVarPertialSchedules.push_back( 127 compiler.codeGenerator.op_add_RM(varSize,REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true ) 128 ); 115 129 } 116 130 else{ 117 131 //mov ecx,qword ptr[ebp+offset] 118 compiler.codeGenerator.op_mov_RM(varSize,REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar ); 132 compiler.codeGenerator.localVarPertialSchedules.push_back( 133 compiler.codeGenerator.op_mov_RM(varSize,REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::None, true ) 134 ); 119 135 } 120 136 … … 162 178 if(pRelativeVar->bOffsetOffset){ 163 179 //add ecx,offset 164 compiler.codeGenerator.op_add_RV( REG_ECX, pRelativeVar->offset, Schedule::LocalVar ); 180 compiler.codeGenerator.localVarPertialSchedules.push_back( 181 compiler.codeGenerator.op_add_RV( REG_ECX, pRelativeVar->offset, Schedule::None, true ) 182 ); 165 183 166 184 //push dword ptr[ebp+ecx] … … 174 192 else{ 175 193 //push dword ptr[ebp+offset] 176 compiler.codeGenerator.op_push_M( REG_EBP, pRelativeVar->offset, Schedule::LocalVar ); 194 compiler.codeGenerator.localVarPertialSchedules.push_back( 195 compiler.codeGenerator.op_push_M( REG_EBP, pRelativeVar->offset, Schedule::None, true ) 196 ); 177 197 } 178 198 } 179 199 else if(pRelativeVar->dwKind==VAR_REFLOCAL){ 180 200 //mov eax,dword ptr[ebp+offset] 181 compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::LocalVar ); 201 compiler.codeGenerator.localVarPertialSchedules.push_back( 202 compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::None, true ) 203 ); 182 204 183 205 if(pRelativeVar->bOffsetOffset){
Note:
See TracChangeset
for help on using the changeset viewer.