Changeset 243 in dev for trunk/abdev/BasicCompiler64/Compile_Var.cpp
- Timestamp:
- Jul 27, 2007, 4:20:59 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler64/Compile_Var.cpp
r242 r243 999 999 1000 1000 //mov dword ptr[rsp+offset],value 1001 compiler.codeGenerator.op_mov_MV(sizeof(long),REG_RSP,offset,USE_OFFSET,*(int *)&flt); 1002 obp-=sizeof(long)+sizeof(long); 1003 AddLocalVarAddrSchedule(); 1004 obp+=sizeof(long)+sizeof(long); 1001 compiler.codeGenerator.op_mov_MV(sizeof(long),REG_RSP,offset, Schedule::LocalVar, USE_OFFSET,*(int *)&flt); 1005 1002 } 1006 1003 else if( type.Is64() || type.IsPointer() ){ … … 1029 1026 else{ 1030 1027 //mov qword ptr[rsp+offset],value 1031 compiler.codeGenerator.op_mov_MV(sizeof(_int64),REG_RSP,offset,USE_OFFSET,(int)i64data); 1032 obp-=sizeof(long)+sizeof(long); 1033 AddLocalVarAddrSchedule(); 1034 obp+=sizeof(long)+sizeof(long); 1028 compiler.codeGenerator.op_mov_MV(sizeof(_int64),REG_RSP,offset, Schedule::LocalVar, USE_OFFSET,(int)i64data); 1035 1029 } 1036 1030 } … … 1038 1032 else if( type.IsDWord() || type.IsLong() ){ 1039 1033 //mov dword ptr[rsp+offset],value 1040 compiler.codeGenerator.op_mov_MV(sizeof(long),REG_RSP,offset,USE_OFFSET,(int)i64data); 1041 obp-=sizeof(long)+sizeof(long); 1042 AddLocalVarAddrSchedule(); 1043 obp+=sizeof(long)+sizeof(long); 1034 compiler.codeGenerator.op_mov_MV(sizeof(long),REG_RSP,offset, Schedule::LocalVar,USE_OFFSET,(int)i64data); 1044 1035 } 1045 1036 else if( type.IsWord() || type.IsInteger() ){ 1046 1037 //mov word ptr[rsp+offset],value 1047 compiler.codeGenerator.op_mov_MV(sizeof(short),REG_RSP,offset,USE_OFFSET,(int)i64data); 1048 obp-=sizeof(long)+sizeof(short); 1049 AddLocalVarAddrSchedule(); 1050 obp+=sizeof(long)+sizeof(short); 1038 compiler.codeGenerator.op_mov_MV(sizeof(short),REG_RSP,offset, Schedule::LocalVar,USE_OFFSET,(int)i64data); 1051 1039 } 1052 1040 else if( type.IsSByte() || type.IsByte() || type.IsBoolean() ){ 1053 1041 //mov byte ptr[rsp+offset],value 1054 compiler.codeGenerator.op_mov_MV(sizeof(char),REG_RSP,offset,USE_OFFSET,(int)i64data); 1055 obp-=sizeof(long)+sizeof(char); 1056 AddLocalVarAddrSchedule(); 1057 obp+=sizeof(long)+sizeof(char); 1042 compiler.codeGenerator.op_mov_MV(sizeof(char),REG_RSP,offset, Schedule::LocalVar,USE_OFFSET,(int)i64data); 1058 1043 } 1059 1044 return true;
Note:
See TracChangeset
for help on using the changeset viewer.