Changeset 62 in dev for BasicCompiler64/Compile_Set_Var.cpp
- Timestamp:
- Feb 22, 2007, 3:57:56 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler64/Compile_Set_Var.cpp
r40 r62 153 153 obp+=sizeof(long); 154 154 } 155 } 156 else if(pRelative->dwKind==VAR_REFGLOBAL){ 157 SetError(300,NULL,cp); 155 158 } 156 159 else if(pRelative->dwKind==VAR_LOCAL){ … … 242 245 } 243 246 } 247 else if(pRelative->dwKind==VAR_REFGLOBAL){ 248 SetError(300,NULL,cp); 249 } 244 250 else if(pRelative->dwKind==VAR_LOCAL){ 245 251 if(pRelative->bOffsetOffset){ … … 367 373 } 368 374 } 375 else if( pRelative->dwKind == VAR_REFGLOBAL ){ 376 if(pRelative->bOffsetOffset){ 377 //add r11,qword ptr[offset] 378 op_add_RM( sizeof(_int64), REG_R11, REG_NON, (int)pRelative->offset, MOD_DISP32 ); 379 obp-=sizeof(long); 380 pobj_GlobalVarSchedule->add(); 381 obp+=sizeof(long); 382 } 383 else{ 384 //mov r11,qword ptr[offset] 385 op_mov_RM(sizeof(_int64),REG_R11,REG_NON,(int)pRelative->offset,MOD_DISP32); 386 obp-=sizeof(long); 387 pobj_GlobalVarSchedule->add(); 388 obp+=sizeof(long); 389 } 390 391 goto directmem; 392 } 369 393 else if(pRelative->dwKind==VAR_LOCAL){ 370 394 if(pRelative->bOffsetOffset){ … … 386 410 if(pRelative->bOffsetOffset){ 387 411 //add r11,qword ptr[rsp+offset] 388 OpBuffer[obp++]=(char)0x4C; 389 OpBuffer[obp++]=(char)0x03; 390 OpBuffer[obp++]=(char)0x9C; 391 OpBuffer[obp++]=(char)0x24; 392 *((long *)(OpBuffer+obp))=(int)pRelative->offset; 412 op_add_RM( sizeof(_int64), REG_R11, REG_RSP, (int)pRelative->offset, MOD_BASE_DISP32 ); 413 obp-=sizeof(long); 393 414 AddLocalVarAddrSchedule(); 394 415 obp+=sizeof(long);
Note:
See TracChangeset
for help on using the changeset viewer.