VirtualBox

Changeset 41734 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Jun 15, 2012 12:20:13 AM (13 years ago)
Author:
vboxsync
Message:

DISCPUSTATE: s/prefix/fPrefix/ and a couple of forgotten opcode uses.

Location:
trunk/src/VBox/VMM
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/EMAll.cpp

    r41732 r41734  
    789789        case OP_LMSW:       return "Lmsw";
    790790        case OP_SMSW:       return "Smsw";
    791         case OP_CMPXCHG:    return pDis->prefix & DISPREFIX_LOCK ? "Lock CmpXchg"   : "CmpXchg";
    792         case OP_CMPXCHG8B:  return pDis->prefix & DISPREFIX_LOCK ? "Lock CmpXchg8b" : "CmpXchg8b";
     791        case OP_CMPXCHG:    return pDis->fPrefix & DISPREFIX_LOCK ? "Lock CmpXchg"   : "CmpXchg";
     792        case OP_CMPXCHG8B:  return pDis->fPrefix & DISPREFIX_LOCK ? "Lock CmpXchg8b" : "CmpXchg8b";
    793793
    794794        default:
     
    16521652
    16531653    /* Don't support any but these three prefix bytes. */
    1654     if ((pDis->prefix & ~(DISPREFIX_ADDRSIZE|DISPREFIX_OPSIZE|DISPREFIX_REP|DISPREFIX_REX)))
     1654    if ((pDis->fPrefix & ~(DISPREFIX_ADDRSIZE|DISPREFIX_OPSIZE|DISPREFIX_REP|DISPREFIX_REX)))
    16551655        return VERR_EM_INTERPRETER;
    16561656
     
    16931693    offIncrement = pRegFrame->eflags.Bits.u1DF ? -(signed)cbSize : (signed)cbSize;
    16941694
    1695     if (!(pDis->prefix & DISPREFIX_REP))
     1695    if (!(pDis->fPrefix & DISPREFIX_REP))
    16961696    {
    16971697        LogFlow(("emInterpretStosWD dest=%04X:%RGv (%RGv) cbSize=%d\n", pRegFrame->es, GCOffset, GCDest, cbSize));
     
    18481848    LogFlow(("%s %RGv rax=%RX64 %RX64\n", emGetMnemonic(pDis), GCPtrPar1, pRegFrame->rax, valpar));
    18491849
    1850     if (pDis->prefix & DISPREFIX_LOCK)
     1850    if (pDis->fPrefix & DISPREFIX_LOCK)
    18511851        eflags = EMEmulateLockCmpXchg(pvParam1, &pRegFrame->rax, valpar, pDis->param2.cb);
    18521852    else
     
    19011901    LogFlow(("%s %RGv=%08x eax=%08x\n", emGetMnemonic(pDis), pvParam1, pRegFrame->eax));
    19021902
    1903     if (pDis->prefix & DISPREFIX_LOCK)
     1903    if (pDis->fPrefix & DISPREFIX_LOCK)
    19041904        eflags = EMEmulateLockCmpXchg8b(pvParam1, &pRegFrame->eax, &pRegFrame->edx, pRegFrame->ebx, pRegFrame->ecx);
    19051905    else
     
    19701970            LogFlow(("XAdd %RGv=%p reg=%08llx\n", GCPtrPar1, pvParam1, *(uint64_t *)pvParamReg2));
    19711971
    1972             if (pDis->prefix & DISPREFIX_LOCK)
     1972            if (pDis->fPrefix & DISPREFIX_LOCK)
    19731973                eflags = EMEmulateLockXAdd(pvParam1, pvParamReg2, cbParamReg2);
    19741974            else
     
    26542654    AssertRCReturn(rc, VERR_EM_INTERPRETER);
    26552655
    2656     if (!(pDis->prefix & DISPREFIX_OPSIZE))
     2656    if (!(pDis->fPrefix & DISPREFIX_OPSIZE))
    26572657        dtr32.uAddr &= 0xffffff; /* 16 bits operand size */
    26582658
     
    30303030    /* Note: The Intel manual claims there's a REX version of RDMSR that's slightly
    30313031             different, so we play safe by completely disassembling the instruction. */
    3032     Assert(!(pDis->prefix & DISPREFIX_REX));
     3032    Assert(!(pDis->fPrefix & DISPREFIX_REX));
    30333033    NOREF(pDis); NOREF(pvFault); NOREF(pcbSize);
    30343034    return EMInterpretRdmsr(pVM, pVCpu, pRegFrame);
     
    31043104
    31053105#ifdef IN_RC
    3106     if (    (pDis->prefix & (DISPREFIX_REPNE | DISPREFIX_REP))
    3107         ||  (   (pDis->prefix & DISPREFIX_LOCK)
     3106    if (    (pDis->fPrefix & (DISPREFIX_REPNE | DISPREFIX_REP))
     3107        ||  (   (pDis->fPrefix & DISPREFIX_LOCK)
    31083108             && pDis->pCurInstr->opcode != OP_CMPXCHG
    31093109             && pDis->pCurInstr->opcode != OP_CMPXCHG8B
     
    31163116       )
    31173117#else
    3118     if (    (pDis->prefix & DISPREFIX_REPNE)
    3119         ||  (   (pDis->prefix & DISPREFIX_REP)
     3118    if (    (pDis->fPrefix & DISPREFIX_REPNE)
     3119        ||  (   (pDis->fPrefix & DISPREFIX_REP)
    31203120             && pDis->pCurInstr->opcode != OP_STOSWD
    31213121            )
    3122         ||  (   (pDis->prefix & DISPREFIX_LOCK)
     3122        ||  (   (pDis->fPrefix & DISPREFIX_LOCK)
    31233123             && pDis->pCurInstr->opcode != OP_OR
    31243124             && pDis->pCurInstr->opcode != OP_AND
     
    32283228# define INTERPRET_CASE_EX_LOCK_PARAM3(opcode, Instr, InstrFn, pfnEmulate, pfnEmulateLock) \
    32293229        case opcode:\
    3230             if (pDis->prefix & DISPREFIX_LOCK) \
     3230            if (pDis->fPrefix & DISPREFIX_LOCK) \
    32313231                rc = emInterpretLock##InstrFn(pVM, pVCpu, pDis, pRegFrame, pvFault, pcbSize, pfnEmulateLock); \
    32323232            else \
  • trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp

    r41727 r41734  
    670670     * We do not support segment prefixes or REPNE.
    671671     */
    672     if (pCpu->prefix & (DISPREFIX_SEG | DISPREFIX_REPNE))
     672    if (pCpu->fPrefix & (DISPREFIX_SEG | DISPREFIX_REPNE))
    673673        return VINF_IOM_R3_MMIO_READ_WRITE; /** @todo -> interpret whatever. */
    674674
     
    679679     */
    680680    uint32_t cTransfers = 1;
    681     if (pCpu->prefix & DISPREFIX_REP)
     681    if (pCpu->fPrefix & DISPREFIX_REP)
    682682    {
    683683#ifndef IN_RC
     
    767767#endif
    768768            /* Update ecx. */
    769             if (pCpu->prefix & DISPREFIX_REP)
     769            if (pCpu->fPrefix & DISPREFIX_REP)
    770770                pRegFrame->ecx = cTransfers;
    771771        }
     
    875875
    876876        /* Update ecx on exit. */
    877         if (pCpu->prefix & DISPREFIX_REP)
     877        if (pCpu->fPrefix & DISPREFIX_REP)
    878878            pRegFrame->ecx = cTransfers;
    879879    }
     
    928928     * We do not support segment prefixes or REPNE..
    929929     */
    930     if (pCpu->prefix & (DISPREFIX_SEG | DISPREFIX_REPNE))
     930    if (pCpu->fPrefix & (DISPREFIX_SEG | DISPREFIX_REPNE))
    931931        return VINF_IOM_R3_MMIO_READ_WRITE; /** @todo -> REM instead of HC */
    932932
     
    936936    uint64_t const fAddrMask = iomDisModeToMask((DISCPUMODE)pCpu->addrmode);
    937937    RTGCUINTREG cTransfers = 1;
    938     if (pCpu->prefix & DISPREFIX_REP)
     938    if (pCpu->fPrefix & DISPREFIX_REP)
    939939    {
    940940#ifndef IN_RC
     
    983983                pRegFrame->rdi = ((pRegFrame->rdi + (cTransfers << SIZE_2_SHIFT(cb))) & fAddrMask)
    984984                               | (pRegFrame->rdi & ~fAddrMask);
    985                 if (pCpu->prefix & DISPREFIX_REP)
     985                if (pCpu->fPrefix & DISPREFIX_REP)
    986986                    pRegFrame->rcx &= ~fAddrMask;
    987987            }
     
    998998                pRegFrame->rdi = ((pRegFrame->rdi - (cTransfers << SIZE_2_SHIFT(cb))) & fAddrMask)
    999999                               | (pRegFrame->rdi & ~fAddrMask);
    1000                 if (pCpu->prefix & DISPREFIX_REP)
     1000                if (pCpu->fPrefix & DISPREFIX_REP)
    10011001                    pRegFrame->rcx &= ~fAddrMask;
    10021002            }
     
    10251025
    10261026        /* Update rcx on exit. */
    1027         if (pCpu->prefix & DISPREFIX_REP)
     1027        if (pCpu->fPrefix & DISPREFIX_REP)
    10281028            pRegFrame->rcx = (cTransfers & fAddrMask)
    10291029                           | (pRegFrame->rcx & ~fAddrMask);
     
    10621062     * We do not support segment prefixes or REP*.
    10631063     */
    1064     if (pCpu->prefix & (DISPREFIX_SEG | DISPREFIX_REP | DISPREFIX_REPNE))
     1064    if (pCpu->fPrefix & (DISPREFIX_SEG | DISPREFIX_REP | DISPREFIX_REPNE))
    10651065        return VINF_IOM_R3_MMIO_READ_WRITE; /** @todo -> REM instead of HC */
    10661066
     
    21562156    }
    21572157
    2158     return IOMInterpretINSEx(pVM, pRegFrame, Port, pCpu->prefix, (DISCPUMODE)pCpu->addrmode, cb);
     2158    return IOMInterpretINSEx(pVM, pRegFrame, Port, pCpu->fPrefix, (DISCPUMODE)pCpu->addrmode, cb);
    21592159}
    21602160
     
    23252325    }
    23262326
    2327     return IOMInterpretOUTSEx(pVM, pRegFrame, Port, pCpu->prefix, (DISCPUMODE)pCpu->addrmode, cb);
     2327    return IOMInterpretOUTSEx(pVM, pRegFrame, Port, pCpu->fPrefix, (DISCPUMODE)pCpu->addrmode, cb);
    23282328}
    23292329
  • trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp

    r41733 r41734  
    108108            if (     RT_SUCCESS(rc)
    109109                &&   pDis->mode == DISCPUMODE_32BIT  /** @todo why does this matter? */
    110                 &&  !(pDis->prefix & (DISPREFIX_REPNE | DISPREFIX_REP | DISPREFIX_SEG)))
     110                &&  !(pDis->fPrefix & (DISPREFIX_REPNE | DISPREFIX_REP | DISPREFIX_SEG)))
    111111            {
    112112                switch (pDis->bOpCode)
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r41732 r41734  
    793793        case OP_MOVSWD:
    794794        case OP_STOSWD:
    795             if (    pDis->prefix == (DISPREFIX_REP|DISPREFIX_REX)
     795            if (    pDis->fPrefix == (DISPREFIX_REP|DISPREFIX_REX)
    796796                &&  pRegFrame->rcx >= 0x40
    797797               )
     
    11551155         * Simple instructions, no REP prefix.
    11561156         */
    1157         if (!(pDis->prefix & (DISPREFIX_REP | DISPREFIX_REPNE)))
     1157        if (!(pDis->fPrefix & (DISPREFIX_REP | DISPREFIX_REPNE)))
    11581158        {
    11591159            rc = pgmPoolAccessHandlerSimple(pVM, pVCpu, pPool, pPage, pDis, pRegFrame, GCPhysFault, pvFault, &fReused);
     
    12041204
    12051205            if (    pDis->mode == DISCPUMODE_32BIT
    1206                 &&  pDis->prefix == DISPREFIX_REP
     1206                &&  pDis->fPrefix == DISPREFIX_REP
    12071207                &&  pRegFrame->ecx <= 0x20
    12081208                &&  pRegFrame->ecx * 4 <= PAGE_SIZE - ((uintptr_t)pvFault & PAGE_OFFSET_MASK)
     
    12161216            else
    12171217            if (    pDis->mode == DISCPUMODE_64BIT
    1218                 &&  pDis->prefix == (DISPREFIX_REP | DISPREFIX_REX)
     1218                &&  pDis->fPrefix == (DISPREFIX_REP | DISPREFIX_REX)
    12191219                &&  pRegFrame->rcx <= 0x20
    12201220                &&  pRegFrame->rcx * 8 <= PAGE_SIZE - ((uintptr_t)pvFault & PAGE_OFFSET_MASK)
     
    12381238        STAM_COUNTER_INC(&pPool->CTX_MID_Z(StatMonitor,RepPrefix));
    12391239        Log4(("pgmPoolAccessHandler: eax=%#x ecx=%#x edi=%#x esi=%#x rip=%RGv opcode=%d prefix=%#x\n",
    1240               pRegFrame->eax, pRegFrame->ecx, pRegFrame->edi, pRegFrame->esi, (RTGCPTR)pRegFrame->rip, pDis->pCurInstr->opcode, pDis->prefix));
     1240              pRegFrame->eax, pRegFrame->ecx, pRegFrame->edi, pRegFrame->esi, (RTGCPTR)pRegFrame->rip, pDis->pCurInstr->opcode, pDis->fPrefix));
    12411241        fNotReusedNotForking = true;
    12421242    }
  • trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp

    r41732 r41734  
    24182418                    Log2(("IOMInterpretOUTSEx %RGv %x size=%d\n", (RTGCPTR)pCtx->rip, IoExitInfo.n.u16Port, uIOSize));
    24192419                    STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitIOStringWrite);
    2420                     rc = IOMInterpretOUTSEx(pVM, CPUMCTX2CORE(pCtx), IoExitInfo.n.u16Port, pDis->prefix, (DISCPUMODE)pDis->addrmode, uIOSize);
     2420                    rc = IOMInterpretOUTSEx(pVM, CPUMCTX2CORE(pCtx), IoExitInfo.n.u16Port, pDis->fPrefix, (DISCPUMODE)pDis->addrmode, uIOSize);
    24212421                }
    24222422                else
     
    24242424                    Log2(("IOMInterpretINSEx  %RGv %x size=%d\n", (RTGCPTR)pCtx->rip, IoExitInfo.n.u16Port, uIOSize));
    24252425                    STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitIOStringRead);
    2426                     rc = IOMInterpretINSEx(pVM, CPUMCTX2CORE(pCtx), IoExitInfo.n.u16Port, pDis->prefix, (DISCPUMODE)pDis->addrmode, uIOSize);
     2426                    rc = IOMInterpretINSEx(pVM, CPUMCTX2CORE(pCtx), IoExitInfo.n.u16Port, pDis->fPrefix, (DISCPUMODE)pDis->addrmode, uIOSize);
    24272427                }
    24282428            }
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r41732 r41734  
    35853585                        X86EFLAGS eflags;
    35863586
    3587                         if (pDis->prefix & DISPREFIX_OPSIZE)
     3587                        if (pDis->fPrefix & DISPREFIX_OPSIZE)
    35883588                        {
    35893589                            cbParm = 4;
     
    36273627                        X86EFLAGS eflags;
    36283628
    3629                         if (pDis->prefix & DISPREFIX_OPSIZE)
     3629                        if (pDis->fPrefix & DISPREFIX_OPSIZE)
    36303630                        {
    36313631                            cbParm = 4;
     
    36693669                        uint16_t  aIretFrame[3];
    36703670
    3671                         if (pDis->prefix & (DISPREFIX_OPSIZE | DISPREFIX_ADDRSIZE))
     3671                        if (pDis->fPrefix & (DISPREFIX_OPSIZE | DISPREFIX_ADDRSIZE))
    36723672                        {
    36733673                            rc = VERR_EM_INTERPRETER;
     
    43214321                    Log2(("IOMInterpretOUTSEx %RGv %x size=%d\n", (RTGCPTR)pCtx->rip, uPort, cbSize));
    43224322                    STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitIOStringWrite);
    4323                     rc = IOMInterpretOUTSEx(pVM, CPUMCTX2CORE(pCtx), uPort, pDis->prefix, (DISCPUMODE)pDis->addrmode, cbSize);
     4323                    rc = IOMInterpretOUTSEx(pVM, CPUMCTX2CORE(pCtx), uPort, pDis->fPrefix, (DISCPUMODE)pDis->addrmode, cbSize);
    43244324                }
    43254325                else
     
    43274327                    Log2(("IOMInterpretINSEx  %RGv %x size=%d\n", (RTGCPTR)pCtx->rip, uPort, cbSize));
    43284328                    STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitIOStringRead);
    4329                     rc = IOMInterpretINSEx(pVM, CPUMCTX2CORE(pCtx), uPort, pDis->prefix, (DISCPUMODE)pDis->addrmode, cbSize);
     4329                    rc = IOMInterpretINSEx(pVM, CPUMCTX2CORE(pCtx), uPort, pDis->fPrefix, (DISCPUMODE)pDis->addrmode, cbSize);
    43304330                }
    43314331            }
  • trunk/src/VBox/VMM/VMMR3/EMHwaccm.cpp

    r41732 r41734  
    307307        rcStrict = VINF_EM_RAW_EMULATE_INSTR;
    308308
    309         if (!(Cpu.prefix & (DISPREFIX_REP | DISPREFIX_REPNE)))
     309        if (!(Cpu.fPrefix & (DISPREFIX_REP | DISPREFIX_REPNE)))
    310310        {
    311311            switch (Cpu.pCurInstr->opcode)
     
    326326            }
    327327        }
    328         else if (Cpu.prefix & DISPREFIX_REP)
     328        else if (Cpu.fPrefix & DISPREFIX_REP)
    329329        {
    330330            switch (Cpu.pCurInstr->opcode)
  • trunk/src/VBox/VMM/VMMR3/EMRaw.cpp

    r41732 r41734  
    428428        VBOXSTRICTRC rcStrict = VINF_EM_RAW_EMULATE_INSTR;
    429429
    430         if (!(Cpu.prefix & (DISPREFIX_REP | DISPREFIX_REPNE)))
     430        if (!(Cpu.fPrefix & (DISPREFIX_REP | DISPREFIX_REPNE)))
    431431        {
    432432            switch (Cpu.pCurInstr->opcode)
     
    447447            }
    448448        }
    449         else if (Cpu.prefix & DISPREFIX_REP)
     449        else if (Cpu.fPrefix & DISPREFIX_REP)
    450450        {
    451451            switch (Cpu.pCurInstr->opcode)
  • trunk/src/VBox/VMM/VMMR3/PATM.cpp

    r41732 r41734  
    16541654         */
    16551655        Log(("patmRecompileCallback: jump to code we've recompiled before %RRv!\n", pCurInstrGC));
    1656         return patmPatchGenRelJump(pVM, pPatch, pCurInstrGC, OP_JMP, !!(pCpu->prefix & DISPREFIX_OPSIZE));
     1656        return patmPatchGenRelJump(pVM, pPatch, pCurInstrGC, OP_JMP, !!(pCpu->fPrefix & DISPREFIX_OPSIZE));
    16571657    }
    16581658
     
    17131713        }
    17141714        else
    1715             rc = patmPatchGenRelJump(pVM, pPatch, pTargetGC, pCpu->pCurInstr->opcode, !!(pCpu->prefix & DISPREFIX_OPSIZE));
     1715            rc = patmPatchGenRelJump(pVM, pPatch, pTargetGC, pCpu->pCurInstr->opcode, !!(pCpu->fPrefix & DISPREFIX_OPSIZE));
    17161716
    17171717        if (RT_SUCCESS(rc))
     
    18551855            fGenerateJmpBack = false;
    18561856
    1857         rc = patmPatchGenPopf(pVM, pPatch, pCurInstrGC + pCpu->cbInstr, !!(pCpu->prefix & DISPREFIX_OPSIZE), fGenerateJmpBack);
     1857        rc = patmPatchGenPopf(pVM, pPatch, pCurInstrGC + pCpu->cbInstr, !!(pCpu->fPrefix & DISPREFIX_OPSIZE), fGenerateJmpBack);
    18581858        if (RT_SUCCESS(rc))
    18591859        {
     
    18731873
    18741874    case OP_PUSHF:
    1875         rc = patmPatchGenPushf(pVM, pPatch, !!(pCpu->prefix & DISPREFIX_OPSIZE));
     1875        rc = patmPatchGenPushf(pVM, pPatch, !!(pCpu->fPrefix & DISPREFIX_OPSIZE));
    18761876        if (RT_SUCCESS(rc))
    18771877            rc = VWRN_CONTINUE_RECOMPILE;
     
    18901890    case OP_IRET:
    18911891        Log(("IRET at %RRv\n", pCurInstrGC));
    1892         rc = patmPatchGenIret(pVM, pPatch, pCurInstrGC, !!(pCpu->prefix & DISPREFIX_OPSIZE));
     1892        rc = patmPatchGenIret(pVM, pPatch, pCurInstrGC, !!(pCpu->fPrefix & DISPREFIX_OPSIZE));
    18931893        if (RT_SUCCESS(rc))
    18941894        {
  • trunk/src/VBox/VMM/VMMR3/PATMPatch.cpp

    r41732 r41734  
    702702        offset = 0;
    703703        /* include prefix byte to make sure we don't use the incorrect selector register. */
    704         if (pCpu->prefix & DISPREFIX_SEG)
     704        if (pCpu->fPrefix & DISPREFIX_SEG)
    705705            pPB[offset++] = DISQuerySegPrefixByte(pCpu);
    706706        pPB[offset++] = 0xFF;              // push r/m32
    707707        pPB[offset++] = MAKE_MODRM(pCpu->ModRM.Bits.Mod, 6 /* group 5 */, pCpu->ModRM.Bits.Rm);
    708708        i = 2;  /* standard offset of modrm bytes */
    709         if (pCpu->prefix & DISPREFIX_OPSIZE)
     709        if (pCpu->fPrefix & DISPREFIX_OPSIZE)
    710710            i++;    //skip operand prefix
    711         if (pCpu->prefix & DISPREFIX_SEG)
     711        if (pCpu->fPrefix & DISPREFIX_SEG)
    712712            i++;    //skip segment prefix
    713713
     
    798798    offset = 0;
    799799    /* include prefix byte to make sure we don't use the incorrect selector register. */
    800     if (pCpu->prefix & DISPREFIX_SEG)
     800    if (pCpu->fPrefix & DISPREFIX_SEG)
    801801        pPB[offset++] = DISQuerySegPrefixByte(pCpu);
    802802
     
    804804    pPB[offset++] = MAKE_MODRM(pCpu->ModRM.Bits.Mod, 6 /* group 5 */, pCpu->ModRM.Bits.Rm);
    805805    i = 2;  /* standard offset of modrm bytes */
    806     if (pCpu->prefix & DISPREFIX_OPSIZE)
     806    if (pCpu->fPrefix & DISPREFIX_OPSIZE)
    807807        i++;    //skip operand prefix
    808     if (pCpu->prefix & DISPREFIX_SEG)
     808    if (pCpu->fPrefix & DISPREFIX_SEG)
    809809        i++;    //skip segment prefix
    810810
     
    12771277    PATCHGEN_PROLOG_NODEF(pVM, pPatch);
    12781278    offset = 0;
    1279     if (pCpu->prefix & DISPREFIX_OPSIZE)
     1279    if (pCpu->fPrefix & DISPREFIX_OPSIZE)
    12801280        pPB[offset++] = 0x66;       /* size override -> 16 bits push */
    12811281    pPB[offset++] = 0x16;
     
    12901290    PATCHGEN_PROLOG_NODEF(pVM, pPatch);
    12911291    offset = 0;
    1292     if (pCpu->prefix & DISPREFIX_OPSIZE)
     1292    if (pCpu->fPrefix & DISPREFIX_OPSIZE)
    12931293        pPB[offset++] = 0x66; /* size override -> 16 bits pop */
    12941294    pPB[offset++] = 0x58 + pCpu->param1.base.reg_gen;
     
    13211321
    13221322    /** @todo segment prefix (untested) */
    1323     Assert(pCpu->prefix == DISPREFIX_NONE || pCpu->prefix == DISPREFIX_OPSIZE);
     1323    Assert(pCpu->fPrefix == DISPREFIX_NONE || pCpu->fPrefix == DISPREFIX_OPSIZE);
    13241324
    13251325    PATCHGEN_PROLOG(pVM, pPatch);
     
    13301330        // 8B 15 [32 bits addr]   mov edx, CPUMCTX.tr/ldtr
    13311331
    1332         if (pCpu->prefix == DISPREFIX_OPSIZE)
     1332        if (pCpu->fPrefix == DISPREFIX_OPSIZE)
    13331333            pPB[offset++] = 0x66;
    13341334
     
    13611361        pPB[offset++] = 0x52;              // push      edx
    13621362
    1363         if (pCpu->prefix == DISPREFIX_SEG)
     1363        if (pCpu->fPrefix == DISPREFIX_SEG)
    13641364        {
    13651365            pPB[offset++] = DISQuerySegPrefixByte(pCpu);
     
    13701370
    13711371        i = 3;  /* standard offset of modrm bytes */
    1372         if (pCpu->prefix == DISPREFIX_OPSIZE)
     1372        if (pCpu->fPrefix == DISPREFIX_OPSIZE)
    13731373            i++;    //skip operand prefix
    1374         if (pCpu->prefix == DISPREFIX_SEG)
     1374        if (pCpu->fPrefix == DISPREFIX_SEG)
    13751375            i++;    //skip segment prefix
    13761376
     
    14211421
    14221422    /* @todo segment prefix (untested) */
    1423     Assert(pCpu->prefix == DISPREFIX_NONE);
     1423    Assert(pCpu->fPrefix == DISPREFIX_NONE);
    14241424
    14251425    // sgdt %Ms
     
    14561456    pPB[offset++] = 0x52;              // push      edx
    14571457
    1458     if (pCpu->prefix == DISPREFIX_SEG)
     1458    if (pCpu->fPrefix == DISPREFIX_SEG)
    14591459    {
    14601460        pPB[offset++] = DISQuerySegPrefixByte(pCpu);
     
    14651465
    14661466    i = 3;  /* standard offset of modrm bytes */
    1467     if (pCpu->prefix == DISPREFIX_OPSIZE)
     1467    if (pCpu->fPrefix == DISPREFIX_OPSIZE)
    14681468        i++;    //skip operand prefix
    1469     if (pCpu->prefix == DISPREFIX_SEG)
     1469    if (pCpu->fPrefix == DISPREFIX_SEG)
    14701470        i++;    //skip segment prefix
    14711471    rc = patmPatchReadBytes(pVM, &pPB[offset], (RTRCPTR)((RTGCUINTPTR32)pCurInstrGC + i), pCpu->cbInstr - i);
  • trunk/src/VBox/VMM/VMMRC/TRPMRCHandlers.cpp

    r41732 r41734  
    542542         * Speed up dtrace and don't entrust invalid lock sequences to the recompiler.
    543543         */
    544         else if (Cpu.prefix & DISPREFIX_LOCK)
     544        else if (Cpu.fPrefix & DISPREFIX_LOCK)
    545545        {
    546546            Log(("TRPMGCTrap06Handler: pc=%08x op=%d\n", pRegFrame->eip, Cpu.pCurInstr->opcode));
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette