Changeset 41678 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Jun 13, 2012 9:37:47 AM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 78485
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/EMAll.cpp
r41676 r41678 1049 1049 /* pop [esp+xx] uses esp after the actual pop! */ 1050 1050 AssertCompile(USE_REG_ESP == USE_REG_SP); 1051 if ( (pDis->param1.f lags& DISUSE_BASE)1052 && (pDis->param1.f lags& (DISUSE_REG_GEN16|DISUSE_REG_GEN32))1051 if ( (pDis->param1.fUse & DISUSE_BASE) 1052 && (pDis->param1.fUse & (DISUSE_REG_GEN16|DISUSE_REG_GEN32)) 1053 1053 && pDis->param1.base.reg_gen == USE_REG_ESP 1054 1054 ) … … 1536 1536 { 1537 1537 case PARMTYPE_IMMEDIATE: 1538 if(!(param1.flags & (PARAM_VAL32|PARAM_VAL64)))1538 if(!(param1.flags & (PARAM_VAL32|PARAM_VAL64))) 1539 1539 return VERR_EM_INTERPRETER; 1540 1540 /* fallthru */ … … 2062 2062 case PARMTYPE_IMMEDIATE: 2063 2063 case PARMTYPE_ADDRESS: 2064 if(!(param1.flags & (PARAM_VAL32|PARAM_VAL64)))2064 if(!(param1.flags & (PARAM_VAL32|PARAM_VAL64))) 2065 2065 return VERR_EM_INTERPRETER; 2066 2066 addr = (RTGCPTR)param1.val.val64; … … 2397 2397 case PARMTYPE_IMMEDIATE: 2398 2398 case PARMTYPE_ADDRESS: 2399 if(!(param1.flags & PARAM_VAL16))2399 if(!(param1.flags & PARAM_VAL16)) 2400 2400 return VERR_EM_INTERPRETER; 2401 2401 val = param1.val.val32; … … 2468 2468 { 2469 2469 NOREF(pvFault); NOREF(pcbSize); 2470 if ((pDis->param1.f lags == DISUSE_REG_GEN32 || pDis->param1.flags == DISUSE_REG_GEN64) && pDis->param2.flags== DISUSE_REG_CR)2470 if ((pDis->param1.fUse == DISUSE_REG_GEN32 || pDis->param1.fUse == DISUSE_REG_GEN64) && pDis->param2.fUse == DISUSE_REG_CR) 2471 2471 return EMInterpretCRxRead(pVM, pVCpu, pRegFrame, pDis->param1.base.reg_gen, pDis->param2.base.reg_ctrl); 2472 2472 2473 if (pDis->param1.f lags == DISUSE_REG_CR && (pDis->param2.flags == DISUSE_REG_GEN32 || pDis->param2.flags== DISUSE_REG_GEN64))2473 if (pDis->param1.fUse == DISUSE_REG_CR && (pDis->param2.fUse == DISUSE_REG_GEN32 || pDis->param2.fUse == DISUSE_REG_GEN64)) 2474 2474 return EMInterpretCRxWrite(pVM, pVCpu, pRegFrame, pDis->param1.base.reg_ctrl, pDis->param2.base.reg_gen); 2475 2475 … … 2558 2558 NOREF(pvFault); NOREF(pcbSize); 2559 2559 2560 if((pDis->param1.f lags == DISUSE_REG_GEN32 || pDis->param1.flags == DISUSE_REG_GEN64) && pDis->param2.flags== DISUSE_REG_DBG)2560 if((pDis->param1.fUse == DISUSE_REG_GEN32 || pDis->param1.fUse == DISUSE_REG_GEN64) && pDis->param2.fUse == DISUSE_REG_DBG) 2561 2561 { 2562 2562 rc = EMInterpretDRxRead(pVM, pVCpu, pRegFrame, pDis->param1.base.reg_gen, pDis->param2.base.reg_dbg); 2563 2563 } 2564 2564 else 2565 if(pDis->param1.f lags == DISUSE_REG_DBG && (pDis->param2.flags == DISUSE_REG_GEN32 || pDis->param2.flags== DISUSE_REG_GEN64))2565 if(pDis->param1.fUse == DISUSE_REG_DBG && (pDis->param2.fUse == DISUSE_REG_GEN32 || pDis->param2.fUse == DISUSE_REG_GEN64)) 2566 2566 { 2567 2567 rc = EMInterpretDRxWrite(pVM, pVCpu, pRegFrame, pDis->param1.base.reg_dbg, pDis->param2.base.reg_gen); … … 2593 2593 2594 2594 case PARMTYPE_IMMEDIATE: 2595 if(!(param1.flags & PARAM_VAL16))2595 if(!(param1.flags & PARAM_VAL16)) 2596 2596 return VERR_EM_INTERPRETER; 2597 2597 sel = (RTSEL)param1.val.val16; -
trunk/src/VBox/VMM/VMMAll/IOMAll.cpp
r41676 r41678 68 68 { 69 69 NOREF(pCpu); 70 if (pParam->f lags& (DISUSE_BASE | DISUSE_INDEX | DISUSE_SCALE | DISUSE_DISPLACEMENT8 | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT32))70 if (pParam->fUse & (DISUSE_BASE | DISUSE_INDEX | DISUSE_SCALE | DISUSE_DISPLACEMENT8 | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT32)) 71 71 { 72 72 *pcbSize = 0; … … 76 76 77 77 /* divide and conquer */ 78 if (pParam->f lags& (DISUSE_REG_GEN64 | DISUSE_REG_GEN32 | DISUSE_REG_GEN16 | DISUSE_REG_GEN8))79 { 80 if (pParam->f lags& DISUSE_REG_GEN32)78 if (pParam->fUse & (DISUSE_REG_GEN64 | DISUSE_REG_GEN32 | DISUSE_REG_GEN16 | DISUSE_REG_GEN8)) 79 { 80 if (pParam->fUse & DISUSE_REG_GEN32) 81 81 { 82 82 *pcbSize = 4; … … 85 85 } 86 86 87 if (pParam->f lags& DISUSE_REG_GEN16)87 if (pParam->fUse & DISUSE_REG_GEN16) 88 88 { 89 89 *pcbSize = 2; … … 92 92 } 93 93 94 if (pParam->f lags& DISUSE_REG_GEN8)94 if (pParam->fUse & DISUSE_REG_GEN8) 95 95 { 96 96 *pcbSize = 1; … … 99 99 } 100 100 101 Assert(pParam->f lags& DISUSE_REG_GEN64);101 Assert(pParam->fUse & DISUSE_REG_GEN64); 102 102 *pcbSize = 8; 103 103 DISFetchReg64(pRegFrame, pParam->base.reg_gen, pu64Data); … … 106 106 else 107 107 { 108 if (pParam->f lags& (DISUSE_IMMEDIATE64 | DISUSE_IMMEDIATE64_SX8))108 if (pParam->fUse & (DISUSE_IMMEDIATE64 | DISUSE_IMMEDIATE64_SX8)) 109 109 { 110 110 *pcbSize = 8; … … 113 113 } 114 114 115 if (pParam->f lags& (DISUSE_IMMEDIATE32 | DISUSE_IMMEDIATE32_SX8))115 if (pParam->fUse & (DISUSE_IMMEDIATE32 | DISUSE_IMMEDIATE32_SX8)) 116 116 { 117 117 *pcbSize = 4; … … 120 120 } 121 121 122 if (pParam->f lags& (DISUSE_IMMEDIATE16 | DISUSE_IMMEDIATE16_SX8))122 if (pParam->fUse & (DISUSE_IMMEDIATE16 | DISUSE_IMMEDIATE16_SX8)) 123 123 { 124 124 *pcbSize = 2; … … 127 127 } 128 128 129 if (pParam->f lags& DISUSE_IMMEDIATE8)129 if (pParam->fUse & DISUSE_IMMEDIATE8) 130 130 { 131 131 *pcbSize = 1; … … 134 134 } 135 135 136 if (pParam->f lags& DISUSE_REG_SEG)136 if (pParam->fUse & DISUSE_REG_SEG) 137 137 { 138 138 *pcbSize = 2; … … 162 162 { 163 163 NOREF(pCpu); 164 if (pParam->f lags& (DISUSE_BASE | DISUSE_INDEX | DISUSE_SCALE | DISUSE_DISPLACEMENT8 | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT64 | DISUSE_IMMEDIATE8 | DISUSE_IMMEDIATE16 | DISUSE_IMMEDIATE32 | DISUSE_IMMEDIATE32_SX8 | DISUSE_IMMEDIATE16_SX8))164 if (pParam->fUse & (DISUSE_BASE | DISUSE_INDEX | DISUSE_SCALE | DISUSE_DISPLACEMENT8 | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT64 | DISUSE_IMMEDIATE8 | DISUSE_IMMEDIATE16 | DISUSE_IMMEDIATE32 | DISUSE_IMMEDIATE32_SX8 | DISUSE_IMMEDIATE16_SX8)) 165 165 { 166 166 return false; 167 167 } 168 168 169 if (pParam->f lags& DISUSE_REG_GEN32)169 if (pParam->fUse & DISUSE_REG_GEN32) 170 170 { 171 171 DISWriteReg32(pRegFrame, pParam->base.reg_gen, (uint32_t)u64Data); … … 173 173 } 174 174 175 if (pParam->f lags& DISUSE_REG_GEN64)175 if (pParam->fUse & DISUSE_REG_GEN64) 176 176 { 177 177 DISWriteReg64(pRegFrame, pParam->base.reg_gen, u64Data); … … 179 179 } 180 180 181 if (pParam->f lags& DISUSE_REG_GEN16)181 if (pParam->fUse & DISUSE_REG_GEN16) 182 182 { 183 183 DISWriteReg16(pRegFrame, pParam->base.reg_gen, (uint16_t)u64Data); … … 185 185 } 186 186 187 if (pParam->f lags& DISUSE_REG_GEN8)187 if (pParam->fUse & DISUSE_REG_GEN8) 188 188 { 189 189 DISWriteReg8(pRegFrame, pParam->base.reg_gen, (uint8_t)u64Data); … … 191 191 } 192 192 193 if (pParam->f lags& DISUSE_REG_SEG)193 if (pParam->fUse & DISUSE_REG_SEG) 194 194 { 195 195 DISWriteRegSeg(pRegFrame, pParam->base.reg_seg, (RTSEL)u64Data); -
trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp
r41676 r41678 1535 1535 { 1536 1536 STAM_PROFILE_START(&pVM->iom.s.StatRZInstMov, b); 1537 AssertMsg(uErrorCode == UINT32_MAX || DISUSE_IS_EFFECTIVE_ADDR(pDis->param1.f lags) == !!(uErrorCode & X86_TRAP_PF_RW), ("flags1=%#llx/%RTbool flags2=%#llx/%RTbool ErrCd=%#x\n", pDis->param1.flags, DISUSE_IS_EFFECTIVE_ADDR(pDis->param1.flags), pDis->param2.flags, DISUSE_IS_EFFECTIVE_ADDR(pDis->param2.flags), uErrorCode));1537 AssertMsg(uErrorCode == UINT32_MAX || DISUSE_IS_EFFECTIVE_ADDR(pDis->param1.fUse) == !!(uErrorCode & X86_TRAP_PF_RW), ("flags1=%#llx/%RTbool flags2=%#llx/%RTbool ErrCd=%#x\n", pDis->param1.fUse, DISUSE_IS_EFFECTIVE_ADDR(pDis->param1.fUse), pDis->param2.fUse, DISUSE_IS_EFFECTIVE_ADDR(pDis->param2.fUse), uErrorCode)); 1538 1538 if (uErrorCode != UINT32_MAX /* EPT+MMIO optimization */ 1539 1539 ? uErrorCode & X86_TRAP_PF_RW 1540 : DISUSE_IS_EFFECTIVE_ADDR(pDis->param1.f lags))1540 : DISUSE_IS_EFFECTIVE_ADDR(pDis->param1.fUse)) 1541 1541 rc = iomInterpretMOVxXWrite(pVM, pCtxCore, pDis, pRange, GCPhysFault); 1542 1542 else -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r41676 r41678 761 761 #endif 762 762 763 LogFlow(("Reused instr %RGv %d at %RGv param1.f lags=%x param1.reg=%d\n", pRegFrame->rip, pDis->pCurInstr->opcode, pvFault, pDis->param1.flags, pDis->param1.base.reg_gen));763 LogFlow(("Reused instr %RGv %d at %RGv param1.fUse=%llx param1.reg=%d\n", pRegFrame->rip, pDis->pCurInstr->opcode, pvFault, pDis->param1.fUse, pDis->param1.base.reg_gen)); 764 764 765 765 /* Non-supervisor mode write means it's used for something else. */ … … 804 804 return false; 805 805 } 806 if ( ( (pDis->param1.f lags& DISUSE_REG_GEN32)807 || (pDis->param1.f lags& DISUSE_REG_GEN64))806 if ( ( (pDis->param1.fUse & DISUSE_REG_GEN32) 807 || (pDis->param1.fUse & DISUSE_REG_GEN64)) 808 808 && (pDis->param1.base.reg_gen == USE_REG_ESP)) 809 809 { -
trunk/src/VBox/VMM/VMMR3/CSAM.cpp
r41676 r41678 800 800 { 801 801 case OP_INT: 802 Assert(pCpu->param1.f lags& DISUSE_IMMEDIATE8);802 Assert(pCpu->param1.fUse & DISUSE_IMMEDIATE8); 803 803 if (pCpu->param1.parval == 3) 804 804 { … … 1097 1097 * Any register is allowed as long as source and destination are identical. 1098 1098 */ 1099 if ( cpu.param1.f lags!= DISUSE_REG_GEN321099 if ( cpu.param1.fUse != DISUSE_REG_GEN32 1100 1100 || ( cpu.param2.flags != DISUSE_REG_GEN32 1101 1101 && ( !(cpu.param2.flags & DISUSE_REG_GEN32) … … 1115 1115 { 1116 1116 if ( (pCurInstrGC & 0x3) != 0 1117 || cpu.param1.f lags!= DISUSE_REG_GEN321117 || cpu.param1.fUse != DISUSE_REG_GEN32 1118 1118 || cpu.param1.base.reg_gen32 != USE_REG_EBP 1119 1119 ) … … 1141 1141 { 1142 1142 if ( (pCurInstrGC & 0x3) != 0 1143 || cpu.param1.f lags!= DISUSE_REG_GEN321143 || cpu.param1.fUse != DISUSE_REG_GEN32 1144 1144 || cpu.param1.base.reg_gen32 != USE_REG_ESP 1145 1145 ) … … 1328 1328 // For our first attempt, we'll handle only simple relative jumps and calls (immediate offset coded in instruction) 1329 1329 if ( ((cpu.pCurInstr->optype & DISOPTYPE_CONTROLFLOW) && (OP_PARM_VTYPE(cpu.pCurInstr->param1) == OP_PARM_J)) 1330 || (cpu.pCurInstr->opcode == OP_CALL && cpu.param1.f lags== DISUSE_DISPLACEMENT32)) /* simple indirect call (call dword ptr [address]) */1330 || (cpu.pCurInstr->opcode == OP_CALL && cpu.param1.fUse == DISUSE_DISPLACEMENT32)) /* simple indirect call (call dword ptr [address]) */ 1331 1331 { 1332 1332 /* We need to parse 'call dword ptr [address]' type of calls to catch cpuid instructions in some recent Linux distributions (e.g. OpenSuse 10.3) */ 1333 1333 if ( cpu.pCurInstr->opcode == OP_CALL 1334 && cpu.param1.f lags== DISUSE_DISPLACEMENT32)1334 && cpu.param1.fUse == DISUSE_DISPLACEMENT32) 1335 1335 { 1336 1336 addr = 0; … … 1342 1342 if (addr == 0) 1343 1343 { 1344 Log(("We don't support far jumps here!! (%08X)\n", cpu.param1.f lags));1344 Log(("We don't support far jumps here!! (%08X)\n", cpu.param1.fUse)); 1345 1345 rc = VINF_SUCCESS; 1346 1346 break; … … 1399 1399 else 1400 1400 if ( cpu.pCurInstr->opcode == OP_JMP 1401 && (cpu.param1.f lags& (DISUSE_DISPLACEMENT32|DISUSE_INDEX|DISUSE_SCALE)) == (DISUSE_DISPLACEMENT32|DISUSE_INDEX|DISUSE_SCALE)1401 && (cpu.param1.fUse & (DISUSE_DISPLACEMENT32|DISUSE_INDEX|DISUSE_SCALE)) == (DISUSE_DISPLACEMENT32|DISUSE_INDEX|DISUSE_SCALE) 1402 1402 ) 1403 1403 { -
trunk/src/VBox/VMM/VMMR3/EMRaw.cpp
r41676 r41678 990 990 991 991 case OP_MOV_CR: 992 if (Cpu.param1.f lags& DISUSE_REG_GEN32)992 if (Cpu.param1.fUse & DISUSE_REG_GEN32) 993 993 { 994 994 //read 995 Assert(Cpu.param2.f lags& DISUSE_REG_CR);995 Assert(Cpu.param2.fUse & DISUSE_REG_CR); 996 996 Assert(Cpu.param2.base.reg_ctrl <= USE_REG_CR4); 997 997 STAM_COUNTER_INC(&pStats->StatMovReadCR[Cpu.param2.base.reg_ctrl]); … … 1000 1000 { 1001 1001 //write 1002 Assert(Cpu.param1.f lags& DISUSE_REG_CR);1002 Assert(Cpu.param1.fUse & DISUSE_REG_CR); 1003 1003 Assert(Cpu.param1.base.reg_ctrl <= USE_REG_CR4); 1004 1004 STAM_COUNTER_INC(&pStats->StatMovWriteCR[Cpu.param1.base.reg_ctrl]); … … 1100 1100 1101 1101 if ( Cpu.pCurInstr->opcode == OP_MOV_CR 1102 && Cpu.param1.f lags== DISUSE_REG_CR /* write */1102 && Cpu.param1.fUse == DISUSE_REG_CR /* write */ 1103 1103 ) 1104 1104 { -
trunk/src/VBox/VMM/VMMR3/HWACCM.cpp
r41676 r41678 1833 1833 pPatch->cbOp = cbOp; 1834 1834 1835 if (pDis->param1.f lags== DISUSE_DISPLACEMENT32)1835 if (pDis->param1.fUse == DISUSE_DISPLACEMENT32) 1836 1836 { 1837 1837 /* write. */ 1838 if (pDis->param2.f lags== DISUSE_REG_GEN32)1838 if (pDis->param2.fUse == DISUSE_REG_GEN32) 1839 1839 { 1840 1840 pPatch->enmType = HWACCMTPRINSTR_WRITE_REG; … … 1843 1843 else 1844 1844 { 1845 Assert(pDis->param2.f lags== DISUSE_IMMEDIATE32);1845 Assert(pDis->param2.fUse == DISUSE_IMMEDIATE32); 1846 1846 pPatch->enmType = HWACCMTPRINSTR_WRITE_IMM; 1847 1847 pPatch->uSrcOperand = pDis->param2.parval; … … 1860 1860 1861 1861 /* read */ 1862 Assert(pDis->param1.f lags== DISUSE_REG_GEN32);1862 Assert(pDis->param1.fUse == DISUSE_REG_GEN32); 1863 1863 1864 1864 /* Found: … … 1872 1872 if ( rc == VINF_SUCCESS 1873 1873 && pDis->pCurInstr->opcode == OP_SHR 1874 && pDis->param1.f lags== DISUSE_REG_GEN321874 && pDis->param1.fUse == DISUSE_REG_GEN32 1875 1875 && pDis->param1.base.reg_gen == uMmioReg 1876 && pDis->param2.f lags== DISUSE_IMMEDIATE81876 && pDis->param2.fUse == DISUSE_IMMEDIATE8 1877 1877 && pDis->param2.parval == 4 1878 1878 && oldcbOp + cbOp < sizeof(pVM->hwaccm.s.aPatches[idx].aOpcode)) … … 2008 2008 pPatch->enmType = HWACCMTPRINSTR_JUMP_REPLACEMENT; 2009 2009 2010 if (pDis->param1.f lags== DISUSE_DISPLACEMENT32)2010 if (pDis->param1.fUse == DISUSE_DISPLACEMENT32) 2011 2011 { 2012 2012 /* … … 2028 2028 * 2029 2029 */ 2030 bool fUsesEax = (pDis->param2.f lags== 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 == USE_REG_EAX); 2031 2031 2032 2032 aPatch[off++] = 0x51; /* push ecx */ … … 2036 2036 aPatch[off++] = 0x31; /* xor edx, edx */ 2037 2037 aPatch[off++] = 0xD2; 2038 if (pDis->param2.f lags== DISUSE_REG_GEN32)2038 if (pDis->param2.fUse == DISUSE_REG_GEN32) 2039 2039 { 2040 2040 if (!fUsesEax) … … 2046 2046 else 2047 2047 { 2048 Assert(pDis->param2.f lags== DISUSE_IMMEDIATE32);2048 Assert(pDis->param2.fUse == DISUSE_IMMEDIATE32); 2049 2049 aPatch[off++] = 0xB8; /* mov eax, immediate */ 2050 2050 *(uint32_t *)&aPatch[off] = pDis->param2.parval; … … 2079 2079 * 2080 2080 */ 2081 Assert(pDis->param1.f lags== DISUSE_REG_GEN32);2081 Assert(pDis->param1.fUse == DISUSE_REG_GEN32); 2082 2082 2083 2083 if (pDis->param1.base.reg_gen != USE_REG_ECX) -
trunk/src/VBox/VMM/VMMR3/PATM.cpp
r41676 r41678 7 7 8 8 /* 9 * Copyright (C) 2006-20 07Oracle Corporation9 * Copyright (C) 2006-2012 Oracle Corporation 10 10 * 11 11 * This file is part of VirtualBox Open Source Edition (OSE), as … … 1701 1701 if (pTargetGC == 0) 1702 1702 { 1703 Log(("We don't support far jumps here!! (%08X)\n", pCpu->param1.f lags));1703 Log(("We don't support far jumps here!! (%08X)\n", pCpu->param1.fUse)); 1704 1704 return VERR_PATCHING_REFUSED; 1705 1705 } … … 1748 1748 { 1749 1749 /* mov ss, src? */ 1750 if ( (pCpu->param1.f lags& DISUSE_REG_SEG)1750 if ( (pCpu->param1.fUse & DISUSE_REG_SEG) 1751 1751 && (pCpu->param1.base.reg_seg == DIS_SELREG_SS)) 1752 1752 { … … 1757 1757 #if 0 /* necessary for Haiku */ 1758 1758 else 1759 if ( (pCpu->param2.f lags& DISUSE_REG_SEG)1759 if ( (pCpu->param2.fUse & DISUSE_REG_SEG) 1760 1760 && (pCpu->param2.base.reg_seg == USE_REG_SS) 1761 && (pCpu->param1.f lags& (DISUSE_REG_GEN32|DISUSE_REG_GEN16))) /** @todo memory operand must in theory be handled too */1761 && (pCpu->param1.fUse & (DISUSE_REG_GEN32|DISUSE_REG_GEN16))) /** @todo memory operand must in theory be handled too */ 1762 1762 { 1763 1763 /* mov GPR, ss */ … … 2243 2243 if (pTargetGC == 0) 2244 2244 { 2245 Log(("We don't support far jumps here!! (%08X)\n", cpu.param1.f lags));2245 Log(("We don't support far jumps here!! (%08X)\n", cpu.param1.fUse)); 2246 2246 rc = VERR_PATCHING_REFUSED; 2247 2247 break; … … 2462 2462 if (addr == 0) 2463 2463 { 2464 Log(("We don't support far jumps here!! (%08X)\n", cpu.param1.f lags));2464 Log(("We don't support far jumps here!! (%08X)\n", cpu.param1.fUse)); 2465 2465 rc = VERR_PATCHING_REFUSED; 2466 2466 break; … … 3588 3588 if (pTargetGC == 0) 3589 3589 { 3590 Log(("We don't support far jumps here!! (%08X)\n", pCpu->param1.f lags));3590 Log(("We don't support far jumps here!! (%08X)\n", pCpu->param1.fUse)); 3591 3591 rc = VERR_PATCHING_REFUSED; 3592 3592 goto failure; … … 3680 3680 goto failure; 3681 3681 3682 if (pCpu->param2.f lags!= DISUSE_DISPLACEMENT32)3682 if (pCpu->param2.fUse != DISUSE_DISPLACEMENT32) 3683 3683 goto failure; 3684 3684 … … 3759 3759 if (opsize > MAX_INSTR_SIZE) 3760 3760 return VERR_PATCHING_REFUSED; 3761 if (cpu.param2.f lags!= DISUSE_DISPLACEMENT32)3761 if (cpu.param2.fUse != DISUSE_DISPLACEMENT32) 3762 3762 return VERR_PATCHING_REFUSED; 3763 3763 … … 3921 3921 case OP_JMP: 3922 3922 Assert(pPatch->flags & PATMFL_JUMP_CONFLICT); 3923 Assert(pCpu->param1.f lags& DISUSE_IMMEDIATE32_REL);3924 if (!(pCpu->param1.f lags& DISUSE_IMMEDIATE32_REL))3923 Assert(pCpu->param1.fUse & DISUSE_IMMEDIATE32_REL); 3924 if (!(pCpu->param1.fUse & DISUSE_IMMEDIATE32_REL)) 3925 3925 goto failure; 3926 3926 … … 5206 5206 && (pConflictPatch->flags & PATMFL_CODE32) 5207 5207 && (cpu.pCurInstr->opcode == OP_JMP || (cpu.pCurInstr->optype & DISOPTYPE_COND_CONTROLFLOW)) 5208 && (cpu.param1.f lags& DISUSE_IMMEDIATE32_REL))5208 && (cpu.param1.fUse & DISUSE_IMMEDIATE32_REL)) 5209 5209 { 5210 5210 /* Hint patches must be enabled first. */ -
trunk/src/VBox/VMM/VMMR3/PATMPatch.cpp
r41676 r41678 1163 1163 // mov DRx, GPR 1164 1164 pPB[0] = 0x89; //mov disp32, GPR 1165 Assert(pCpu->param1.f lags& DISUSE_REG_DBG);1166 Assert(pCpu->param2.f lags& DISUSE_REG_GEN32);1165 Assert(pCpu->param1.fUse & DISUSE_REG_DBG); 1166 Assert(pCpu->param2.fUse & DISUSE_REG_GEN32); 1167 1167 1168 1168 dbgreg = pCpu->param1.base.reg_dbg; … … 1172 1172 { 1173 1173 // mov GPR, DRx 1174 Assert(pCpu->param1.f lags& DISUSE_REG_GEN32);1175 Assert(pCpu->param2.f lags& DISUSE_REG_DBG);1174 Assert(pCpu->param1.fUse & DISUSE_REG_GEN32); 1175 Assert(pCpu->param2.fUse & DISUSE_REG_DBG); 1176 1176 1177 1177 pPB[0] = 0x8B; // mov GPR, disp32 … … 1215 1215 ctrlreg = pCpu->param1.base.reg_ctrl; 1216 1216 reg = pCpu->param2.base.reg_gen; 1217 Assert(pCpu->param1.f lags& DISUSE_REG_CR);1218 Assert(pCpu->param2.f lags& DISUSE_REG_GEN32);1217 Assert(pCpu->param1.fUse & DISUSE_REG_CR); 1218 Assert(pCpu->param2.fUse & DISUSE_REG_GEN32); 1219 1219 } 1220 1220 else 1221 1221 { 1222 1222 // mov GPR, DRx 1223 Assert(pCpu->param1.f lags& DISUSE_REG_GEN32);1224 Assert(pCpu->param2.f lags& DISUSE_REG_CR);1223 Assert(pCpu->param1.fUse & DISUSE_REG_GEN32); 1224 Assert(pCpu->param2.fUse & DISUSE_REG_CR); 1225 1225 1226 1226 pPB[0] = 0x8B; // mov GPR, disp32 … … 1324 1324 PATCHGEN_PROLOG(pVM, pPatch); 1325 1325 1326 if (pCpu->param1.f lags == DISUSE_REG_GEN32 || pCpu->param1.flags== DISUSE_REG_GEN16)1326 if (pCpu->param1.fUse == DISUSE_REG_GEN32 || pCpu->param1.fUse == DISUSE_REG_GEN16) 1327 1327 { 1328 1328 /* Register operand */ -
trunk/src/VBox/VMM/VMMRC/TRPMRCHandlers.cpp
r41676 r41678 738 738 * Little hack to make the code below not fail 739 739 */ 740 pCpu->param1.f lags= DISUSE_IMMEDIATE8;740 pCpu->param1.fUse = DISUSE_IMMEDIATE8; 741 741 pCpu->param1.parval = 3; 742 742 /* fallthru */ 743 743 case OP_INT: 744 744 { 745 Assert(pCpu->param1.f lags& DISUSE_IMMEDIATE8);745 Assert(pCpu->param1.fUse & DISUSE_IMMEDIATE8); 746 746 Assert(!(PATMIsPatchGCAddr(pVM, PC))); 747 747 if (pCpu->param1.parval == 3) … … 840 840 * Little hack to make the code below not fail 841 841 */ 842 pCpu->param1.f lags= DISUSE_IMMEDIATE8;842 pCpu->param1.fUse = DISUSE_IMMEDIATE8; 843 843 pCpu->param1.parval = 3; 844 844 /* fall thru */ 845 845 case OP_INT: 846 846 { 847 Assert(pCpu->param1.f lags& DISUSE_IMMEDIATE8);847 Assert(pCpu->param1.fUse & DISUSE_IMMEDIATE8); 848 848 rc = TRPMForwardTrap(pVCpu, pRegFrame, (uint32_t)pCpu->param1.parval, pCpu->opsize, TRPM_TRAP_NO_ERRORCODE, TRPM_SOFTWARE_INT, 0xd); 849 849 if (RT_SUCCESS(rc) && rc != VINF_EM_RAW_GUEST_TRAP) -
trunk/src/VBox/VMM/include/CSAMInternal.h
r41676 r41678 251 251 { 252 252 uint32_t disp; 253 if (pCpu->param1.f lags& DISUSE_IMMEDIATE8_REL)253 if (pCpu->param1.fUse & DISUSE_IMMEDIATE8_REL) 254 254 { 255 255 disp = (int32_t)(char)pCpu->param1.parval; 256 256 } 257 257 else 258 if (pCpu->param1.f lags& DISUSE_IMMEDIATE16_REL)258 if (pCpu->param1.fUse & DISUSE_IMMEDIATE16_REL) 259 259 { 260 260 disp = (int32_t)(uint16_t)pCpu->param1.parval; 261 261 } 262 262 else 263 if (pCpu->param1.f lags& DISUSE_IMMEDIATE32_REL)263 if (pCpu->param1.fUse & DISUSE_IMMEDIATE32_REL) 264 264 { 265 265 disp = (int32_t)pCpu->param1.parval; … … 267 267 else 268 268 { 269 Log(("We don't support far jumps here!! (%08X)\n", pCpu->param1.f lags));269 Log(("We don't support far jumps here!! (%08X)\n", pCpu->param1.fUse)); 270 270 return 0; 271 271 } -
trunk/src/VBox/VMM/include/PATMInternal.h
r41676 r41678 761 761 { 762 762 uint32_t disp; 763 if (pCpu->param1.f lags& DISUSE_IMMEDIATE8_REL)763 if (pCpu->param1.fUse & DISUSE_IMMEDIATE8_REL) 764 764 { 765 765 disp = (int32_t)(char)pCpu->param1.parval; 766 766 } 767 767 else 768 if (pCpu->param1.f lags& DISUSE_IMMEDIATE16_REL)768 if (pCpu->param1.fUse & DISUSE_IMMEDIATE16_REL) 769 769 { 770 770 disp = (int32_t)(uint16_t)pCpu->param1.parval; 771 771 } 772 772 else 773 if (pCpu->param1.f lags& DISUSE_IMMEDIATE32_REL)773 if (pCpu->param1.fUse & DISUSE_IMMEDIATE32_REL) 774 774 { 775 775 disp = (int32_t)pCpu->param1.parval; … … 777 777 else 778 778 { 779 Log(("We don't support far jumps here!! (%08X)\n", pCpu->param1.f lags));779 Log(("We don't support far jumps here!! (%08X)\n", pCpu->param1.fUse)); 780 780 return 0; 781 781 }
Note:
See TracChangeset
for help on using the changeset viewer.