Changeset 253 in dev for trunk/abdev/BasicCompiler32/Compile_Var.cpp
- Timestamp:
- Jul 30, 2007, 4:12:54 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_Var.cpp
r250 r253 963 963 964 964 //mov dword ptr[ebp+offset+sizeof(long)],eax 965 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset+sizeof(long), MOD_BASE_DISP32, Schedule::LocalVar ); 965 compiler.codeGenerator.localVarPertialSchedules.push_back( 966 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset+sizeof(long), MOD_BASE_DISP32, Schedule::None, true ) 967 ); 966 968 967 969 //mov eax,LOLONG(dbl) … … 969 971 970 972 //mov dword ptr[ebp+offset],eax 971 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::LocalVar ); 973 compiler.codeGenerator.localVarPertialSchedules.push_back( 974 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::None, true ) 975 ); 972 976 } 973 977 else if( type.IsSingle() ){ … … 979 983 980 984 //mov dword ptr[ebp+offset],eax 981 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::LocalVar ); 985 compiler.codeGenerator.localVarPertialSchedules.push_back( 986 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::None, true ) 987 ); 982 988 } 983 989 else if( type.Is64() ){ … … 986 992 987 993 //mov dword ptr[ebp+offset+sizeof(long)],eax 988 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset+sizeof(long), MOD_BASE_DISP32, Schedule::LocalVar ); 994 compiler.codeGenerator.localVarPertialSchedules.push_back( 995 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset+sizeof(long), MOD_BASE_DISP32, Schedule::None, true ) 996 ); 989 997 990 998 //mov eax,LOLONG(i64data) … … 992 1000 993 1001 //mov dword ptr[ebp+offset],eax 994 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::LocalVar ); 1002 compiler.codeGenerator.localVarPertialSchedules.push_back( 1003 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::None, true ) 1004 ); 995 1005 } 996 1006 else if( type.IsDWord() || type.IsLong() || type.IsPointer() ){ … … 1012 1022 1013 1023 //mov dword ptr[ebp+offset],eax 1014 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::LocalVar ); 1024 compiler.codeGenerator.localVarPertialSchedules.push_back( 1025 compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::None, true ) 1026 ); 1015 1027 } 1016 1028 else if( type.IsWord() || type.IsInteger() ){ 1017 1029 //mov word ptr[ebp+offset],InitValue 1018 compiler.codeGenerator.op_mov_MV( sizeof(short), REG_EBP, offset, Schedule::LocalVar, (long)i64data ); 1030 compiler.codeGenerator.localVarPertialSchedules.push_back( 1031 compiler.codeGenerator.op_mov_MV( sizeof(short), REG_EBP, offset, Schedule::None, true, (long)i64data ) 1032 ); 1019 1033 } 1020 1034 else if( type.IsSByte() || type.IsByte() || type.IsBoolean() ){ 1021 1035 //mov byte ptr[ebp+offset],InitValue 1022 compiler.codeGenerator.op_mov_MV( sizeof(char), REG_EBP, offset, Schedule::LocalVar, (long)i64data ); 1036 compiler.codeGenerator.localVarPertialSchedules.push_back( 1037 compiler.codeGenerator.op_mov_MV( sizeof(char), REG_EBP, offset, Schedule::None, true, (long)i64data ) 1038 ); 1023 1039 } 1024 1040 … … 1130 1146 1131 1147 //add eax,offset 1132 compiler.codeGenerator.op_add_RV( REG_EAX, -pVar->GetOffsetAddress(), Schedule::LocalVar ); 1148 compiler.codeGenerator.localVarPertialSchedules.push_back( 1149 compiler.codeGenerator.op_add_RV( REG_EAX, -pVar->GetOffsetAddress(), Schedule::None, true ) 1150 ); 1133 1151 1134 1152 //push eax … … 1193 1211 if(pRelativeVar->bOffsetOffset){ 1194 1212 //add ecx,offset 1195 compiler.codeGenerator.op_add_RV( REG_ECX, pRelativeVar->offset, Schedule::LocalVar ); 1213 compiler.codeGenerator.localVarPertialSchedules.push_back( 1214 compiler.codeGenerator.op_add_RV( REG_ECX, pRelativeVar->offset, Schedule::None, true ) 1215 ); 1196 1216 1197 1217 //lea eax,dword ptr[ebp+ecx] … … 1205 1225 else{ 1206 1226 //lea eax,dword ptr[ecx+offset] 1207 compiler.codeGenerator.op_lea_RM( REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::LocalVar ); 1227 compiler.codeGenerator.localVarPertialSchedules.push_back( 1228 compiler.codeGenerator.op_lea_RM( REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::None, true ) 1229 ); 1208 1230 } 1209 1231 } … … 1214 1236 1215 1237 //add eax,dword ptr[ebp+offset] 1216 compiler.codeGenerator.op_add_RM( sizeof(long), REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::LocalVar ); 1238 compiler.codeGenerator.localVarPertialSchedules.push_back( 1239 compiler.codeGenerator.op_add_RM( sizeof(long), REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::None, true ) 1240 ); 1217 1241 } 1218 1242 else{ 1219 1243 //mov eax,dword ptr[ebp+offset] 1220 compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::LocalVar ); 1244 compiler.codeGenerator.localVarPertialSchedules.push_back( 1245 compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::None, true ) 1246 ); 1221 1247 } 1222 1248 }
Note:
See TracChangeset
for help on using the changeset viewer.