Changeset 41727 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Jun 14, 2012 10:49:03 PM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 78535
- Location:
- trunk/src/VBox/VMM/VMMR3
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/CSAM.cpp
r41678 r41727 2263 2263 Assert(SELMGetCpuModeFromSelector(VMMGetCpu0(pVM), pCtxCore->eflags, pCtxCore->cs, &pCtxCore->csHid) == DISCPUMODE_32BIT); 2264 2264 2265 pInstrGC = SELMToFlat(pVM, DIS _SELREG_CS, pCtxCore, pInstrGC);2265 pInstrGC = SELMToFlat(pVM, DISSELREG_CS, pCtxCore, pInstrGC); 2266 2266 return CSAMR3CheckCode(pVM, pInstrGC); 2267 2267 } -
trunk/src/VBox/VMM/VMMR3/DBGFDisas.cpp
r41675 r41727 283 283 284 284 if ( DIS_FMT_SEL_IS_REG(u32Sel) 285 ? DIS_FMT_SEL_GET_REG(u32Sel) == DIS _SELREG_CS285 ? DIS_FMT_SEL_GET_REG(u32Sel) == DISSELREG_CS 286 286 : pSelInfo->Sel == DIS_FMT_SEL_GET_VALUE(u32Sel)) 287 287 { -
trunk/src/VBox/VMM/VMMR3/EMHwaccm.cpp
r41675 r41727 408 408 /* Prefetch pages for EIP and ESP. */ 409 409 /** @todo This is rather expensive. Should investigate if it really helps at all. */ 410 rc = PGMPrefetchPage(pVCpu, SELMToFlat(pVM, DIS _SELREG_CS, CPUMCTX2CORE(pCtx), pCtx->rip));410 rc = PGMPrefetchPage(pVCpu, SELMToFlat(pVM, DISSELREG_CS, CPUMCTX2CORE(pCtx), pCtx->rip)); 411 411 if (rc == VINF_SUCCESS) 412 rc = PGMPrefetchPage(pVCpu, SELMToFlat(pVM, DIS _SELREG_SS, CPUMCTX2CORE(pCtx), pCtx->rsp));412 rc = PGMPrefetchPage(pVCpu, SELMToFlat(pVM, DISSELREG_SS, CPUMCTX2CORE(pCtx), pCtx->rsp)); 413 413 if (rc != VINF_SUCCESS) 414 414 { -
trunk/src/VBox/VMM/VMMR3/EMRaw.cpp
r41678 r41727 683 683 if (pCtx->SysEnter.cs != 0) 684 684 { 685 rc = PATMR3InstallPatch(pVM, SELMToFlat(pVM, DIS _SELREG_CS, CPUMCTX2CORE(pCtx), pCtx->eip),685 rc = PATMR3InstallPatch(pVM, SELMToFlat(pVM, DISSELREG_CS, CPUMCTX2CORE(pCtx), pCtx->eip), 686 686 (SELMGetCpuModeFromSelector(pVCpu, pCtx->eflags, pCtx->cs, &pCtx->csHid) == DISCPUMODE_32BIT) ? PATMFL_CODE32 : 0); 687 687 if (RT_SUCCESS(rc)) … … 933 933 && !PATMIsPatchGCAddr(pVM, pCtx->eip)) 934 934 { 935 int rc = PATMR3InstallPatch(pVM, SELMToFlat(pVM, DIS _SELREG_CS, CPUMCTX2CORE(pCtx), pCtx->eip),935 int rc = PATMR3InstallPatch(pVM, SELMToFlat(pVM, DISSELREG_CS, CPUMCTX2CORE(pCtx), pCtx->eip), 936 936 (SELMGetCpuModeFromSelector(pVCpu, pCtx->eflags, pCtx->cs, &pCtx->csHid) == DISCPUMODE_32BIT) ? PATMFL_CODE32 : 0); 937 937 if (RT_SUCCESS(rc)) … … 1277 1277 /* Prefetch pages for EIP and ESP. */ 1278 1278 /** @todo This is rather expensive. Should investigate if it really helps at all. */ 1279 rc = PGMPrefetchPage(pVCpu, SELMToFlat(pVM, DIS _SELREG_CS, CPUMCTX2CORE(pCtx), pCtx->rip));1279 rc = PGMPrefetchPage(pVCpu, SELMToFlat(pVM, DISSELREG_CS, CPUMCTX2CORE(pCtx), pCtx->rip)); 1280 1280 if (rc == VINF_SUCCESS) 1281 rc = PGMPrefetchPage(pVCpu, SELMToFlat(pVM, DIS _SELREG_SS, CPUMCTX2CORE(pCtx), pCtx->rsp));1281 rc = PGMPrefetchPage(pVCpu, SELMToFlat(pVM, DISSELREG_SS, CPUMCTX2CORE(pCtx), pCtx->rsp)); 1282 1282 if (rc != VINF_SUCCESS) 1283 1283 { -
trunk/src/VBox/VMM/VMMR3/HWACCM.cpp
r41678 r41727 2028 2028 * 2029 2029 */ 2030 bool fUsesEax = (pDis->param2.fUse == DISUSE_REG_GEN32 && pDis->param2.base.reg_gen == USE_REG_EAX);2030 bool fUsesEax = (pDis->param2.fUse == DISUSE_REG_GEN32 && pDis->param2.base.reg_gen == DISGREG_EAX); 2031 2031 2032 2032 aPatch[off++] = 0x51; /* push ecx */ … … 2041 2041 { 2042 2042 aPatch[off++] = 0x89; /* mov eax, src_reg */ 2043 aPatch[off++] = MAKE_MODRM(3, pDis->param2.base.reg_gen, USE_REG_EAX);2043 aPatch[off++] = MAKE_MODRM(3, pDis->param2.base.reg_gen, DISGREG_EAX); 2044 2044 } 2045 2045 } … … 2081 2081 Assert(pDis->param1.fUse == DISUSE_REG_GEN32); 2082 2082 2083 if (pDis->param1.base.reg_gen != USE_REG_ECX)2083 if (pDis->param1.base.reg_gen != DISGREG_ECX) 2084 2084 aPatch[off++] = 0x51; /* push ecx */ 2085 if (pDis->param1.base.reg_gen != USE_REG_EDX)2085 if (pDis->param1.base.reg_gen != DISGREG_EDX ) 2086 2086 aPatch[off++] = 0x52; /* push edx */ 2087 if (pDis->param1.base.reg_gen != USE_REG_EAX)2087 if (pDis->param1.base.reg_gen != DISGREG_EAX) 2088 2088 aPatch[off++] = 0x50; /* push eax */ 2089 2089 … … 2098 2098 aPatch[off++] = 0x32; 2099 2099 2100 if (pDis->param1.base.reg_gen != USE_REG_EAX)2100 if (pDis->param1.base.reg_gen != DISGREG_EAX) 2101 2101 { 2102 2102 aPatch[off++] = 0x89; /* mov dst_reg, eax */ 2103 aPatch[off++] = MAKE_MODRM(3, USE_REG_EAX, pDis->param1.base.reg_gen);2103 aPatch[off++] = MAKE_MODRM(3, DISGREG_EAX, pDis->param1.base.reg_gen); 2104 2104 } 2105 2105 2106 if (pDis->param1.base.reg_gen != USE_REG_EAX)2106 if (pDis->param1.base.reg_gen != DISGREG_EAX) 2107 2107 aPatch[off++] = 0x58; /* pop eax */ 2108 if (pDis->param1.base.reg_gen != USE_REG_EDX)2108 if (pDis->param1.base.reg_gen != DISGREG_EDX ) 2109 2109 aPatch[off++] = 0x5A; /* pop edx */ 2110 if (pDis->param1.base.reg_gen != USE_REG_ECX)2110 if (pDis->param1.base.reg_gen != DISGREG_ECX) 2111 2111 aPatch[off++] = 0x59; /* pop ecx */ 2112 2112 } -
trunk/src/VBox/VMM/VMMR3/PATM.cpp
r41681 r41727 1749 1749 /* mov ss, src? */ 1750 1750 if ( (pCpu->param1.fUse & DISUSE_REG_SEG) 1751 && (pCpu->param1.base.reg_seg == DIS _SELREG_SS))1751 && (pCpu->param1.base.reg_seg == DISSELREG_SS)) 1752 1752 { 1753 1753 Log(("Force recompilation of next instruction for OP_MOV at %RRv\n", pCurInstrGC)); … … 3486 3486 3487 3487 pBranchTarget = pCtx->edx; 3488 pBranchTarget = SELMToFlat(pVM, DIS _SELREG_CS, CPUMCTX2CORE(pCtx), pBranchTarget);3488 pBranchTarget = SELMToFlat(pVM, DISSELREG_CS, CPUMCTX2CORE(pCtx), pBranchTarget); 3489 3489 3490 3490 /* First we check if the duplicate function target lies in some existing function patch already. Will save some space. */ … … 4068 4068 if (CPUMGetGuestCPL(pVCpu, CPUMCTX2CORE(pCtx)) == 0) 4069 4069 { 4070 RTRCPTR pInstrGCFlat = SELMToFlat(pVM, DIS _SELREG_CS, CPUMCTX2CORE(pCtx), pInstrGC);4070 RTRCPTR pInstrGCFlat = SELMToFlat(pVM, DISSELREG_CS, CPUMCTX2CORE(pCtx), pInstrGC); 4071 4071 if (pInstrGCFlat != pInstrGC) 4072 4072 { … … 6308 6308 6309 6309 /* continue at the original instruction */ 6310 *ppNewEip = pNewEip - SELMToFlat(pVM, DIS _SELREG_CS, CPUMCTX2CORE(pCtx), 0);6310 *ppNewEip = pNewEip - SELMToFlat(pVM, DISSELREG_CS, CPUMCTX2CORE(pCtx), 0); 6311 6311 STAM_PROFILE_ADV_STOP(&pVM->patm.s.StatHandleTrap, a); 6312 6312 return VINF_SUCCESS; … … 6343 6343 6344 6344 /* continue at the original instruction */ 6345 *ppNewEip = pNewEip - SELMToFlat(pVM, DIS _SELREG_CS, CPUMCTX2CORE(pCtx), 0);6345 *ppNewEip = pNewEip - SELMToFlat(pVM, DISSELREG_CS, CPUMCTX2CORE(pCtx), 0); 6346 6346 STAM_PROFILE_ADV_STOP(&pVM->patm.s.StatHandleTrap, a); 6347 6347 return VINF_SUCCESS; … … 6392 6392 } 6393 6393 6394 *ppNewEip = pNewEip - SELMToFlat(pVM, DIS _SELREG_CS, CPUMCTX2CORE(pCtx), 0);6394 *ppNewEip = pNewEip - SELMToFlat(pVM, DISSELREG_CS, CPUMCTX2CORE(pCtx), 0); 6395 6395 STAM_PROFILE_ADV_STOP(&pVM->patm.s.StatHandleTrap, a); 6396 6396 return rc; … … 6429 6429 6430 6430 /* Return original address, correct by subtracting the CS base address. */ 6431 *ppNewEip = pNewEip - SELMToFlat(pVM, DIS _SELREG_CS, CPUMCTX2CORE(pCtx), 0);6431 *ppNewEip = pNewEip - SELMToFlat(pVM, DISSELREG_CS, CPUMCTX2CORE(pCtx), 0); 6432 6432 6433 6433 /* Reset the PATM stack. */ -
trunk/src/VBox/VMM/VMMR3/PATMPatch.cpp
r41692 r41727 424 424 rc = patmPatchReadBytes(pVM, pPB, pCurInstrGC, cbInstrShutUpGcc); 425 425 AssertRC(rc); 426 PATCHGEN_EPILOG(pPatch, cbInstrShutUpGcc); 426 PATCHGEN_EPILOG(pPatch, cbInstrShutUpGcc); 427 427 return rc; 428 428 } … … 1367 1367 pPB[offset++] = 0x8D; // lea edx, dword ptr [dest] 1368 1368 // duplicate and modify modrm byte and additional bytes if present (e.g. direct address) 1369 pPB[offset++] = MAKE_MODRM(pCpu->ModRM.Bits.Mod, USE_REG_EDX, pCpu->ModRM.Bits.Rm);1369 pPB[offset++] = MAKE_MODRM(pCpu->ModRM.Bits.Mod, DISGREG_EDX , pCpu->ModRM.Bits.Rm); 1370 1370 1371 1371 i = 3; /* standard offset of modrm bytes */ … … 1462 1462 pPB[offset++] = 0x8D; // lea edx, dword ptr [dest] 1463 1463 // duplicate and modify modrm byte and additional bytes if present (e.g. direct address) 1464 pPB[offset++] = MAKE_MODRM(pCpu->ModRM.Bits.Mod, USE_REG_EDX, pCpu->ModRM.Bits.Rm);1464 pPB[offset++] = MAKE_MODRM(pCpu->ModRM.Bits.Mod, DISGREG_EDX , pCpu->ModRM.Bits.Rm); 1465 1465 1466 1466 i = 3; /* standard offset of modrm bytes */
Note:
See TracChangeset
for help on using the changeset viewer.