Changeset 2047 in vbox for trunk/src/VBox/VMM/PATM
- Timestamp:
- Apr 12, 2007 1:41:53 PM (18 years ago)
- Location:
- trunk/src/VBox/VMM/PATM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PATM/PATMA.asm
r2046 r2047 2534 2534 2535 2535 2536 ; push ss, check and correct RPL2536 ; check and correct RPL of pushed ss 2537 2537 BEGINPROC PATMMovFromSS 2538 2538 PATMMovFromSS_Start: 2539 push ss2540 2539 push eax 2541 2540 pushfd … … 2549 2548 popfd 2550 2549 pop eax 2551 add esp, 2 ; ss popped off as 16 bits value2552 2550 PATMMovFromSS_Start_End: 2553 2551 ENDPROC PATMMovFromSS -
trunk/src/VBox/VMM/PATM/PATMPatch.cpp
r2046 r2047 1286 1286 1287 1287 Log(("patmPatchGenMovFromSS %VGv\n", pCurInstrGC)); 1288 1289 Assert(pPatch->flags & PATMFL_CODE32); 1288 1290 1289 1291 PATCHGEN_PROLOG(pVM, pPatch); … … 1291 1293 PATCHGEN_EPILOG(pPatch, size); 1292 1294 1293 /* pushes ss, checks and corrects RPL */ 1295 /* push ss */ 1296 PATCHGEN_PROLOG_NODEF(pVM, pPatch); 1297 offset = 0; 1298 if (pCpu->prefix & PREFIX_OPSIZE) 1299 pPB[offset++] = 0x66; /* size override -> 16 bits push */ 1300 pPB[offset++] = 0x16; 1301 PATCHGEN_EPILOG(pPatch, offset); 1302 1303 /* checks and corrects RPL of pushed ss*/ 1294 1304 PATCHGEN_PROLOG_NODEF(pVM, pPatch); 1295 1305 size = patmPatchGenCode(pVM, pPatch, pPB, &PATMMovFromSSRecord, 0, false); … … 1299 1309 PATCHGEN_PROLOG_NODEF(pVM, pPatch); 1300 1310 offset = 0; 1301 if (p Patch->flags & PATMFL_CODE32)1311 if (pCpu->prefix & PREFIX_OPSIZE) 1302 1312 pPB[offset++] = 0x66; /* size override -> 16 bits pop */ 1303 1313 pPB[offset++] = 0x58 + pCpu->param1.base.reg_gen32;
Note:
See TracChangeset
for help on using the changeset viewer.