VirtualBox

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


Ignore:
Timestamp:
Jun 15, 2012 2:29:09 AM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
78552
Message:

DISOPPARAM: s/base.reg_*/Base.idx*Reg/ + docs

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

Legend:

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

    r41739 r41744  
    879879                {
    880880                case 1: //special case for AH etc
    881                         rc = DISWriteReg8(pRegFrame, pDis->Param1.base.reg_gen,  (uint8_t )valpar2); break;
    882                 case 2: rc = DISWriteReg16(pRegFrame, pDis->Param1.base.reg_gen, (uint16_t)valpar2); break;
    883                 case 4: rc = DISWriteReg32(pRegFrame, pDis->Param1.base.reg_gen, (uint32_t)valpar2); break;
    884                 case 8: rc = DISWriteReg64(pRegFrame, pDis->Param1.base.reg_gen, valpar2); break;
     881                        rc = DISWriteReg8(pRegFrame, pDis->Param1.Base.idxGenReg,  (uint8_t )valpar2); break;
     882                case 2: rc = DISWriteReg16(pRegFrame, pDis->Param1.Base.idxGenReg, (uint16_t)valpar2); break;
     883                case 4: rc = DISWriteReg32(pRegFrame, pDis->Param1.Base.idxGenReg, (uint32_t)valpar2); break;
     884                case 8: rc = DISWriteReg64(pRegFrame, pDis->Param1.Base.idxGenReg, valpar2); break;
    885885                default: AssertFailedReturn(VERR_EM_INTERPRETER);
    886886                }
     
    905905                {
    906906                case 1: //special case for AH etc
    907                         rc = DISWriteReg8(pRegFrame, pDis->Param2.base.reg_gen,  (uint8_t )valpar1);    break;
    908                 case 2: rc = DISWriteReg16(pRegFrame, pDis->Param2.base.reg_gen, (uint16_t)valpar1);    break;
    909                 case 4: rc = DISWriteReg32(pRegFrame, pDis->Param2.base.reg_gen, (uint32_t)valpar1);    break;
    910                 case 8: rc = DISWriteReg64(pRegFrame, pDis->Param2.base.reg_gen, valpar1);              break;
     907                        rc = DISWriteReg8(pRegFrame, pDis->Param2.Base.idxGenReg,  (uint8_t )valpar1);    break;
     908                case 2: rc = DISWriteReg16(pRegFrame, pDis->Param2.Base.idxGenReg, (uint16_t)valpar1);    break;
     909                case 4: rc = DISWriteReg32(pRegFrame, pDis->Param2.Base.idxGenReg, (uint32_t)valpar1);    break;
     910                case 8: rc = DISWriteReg64(pRegFrame, pDis->Param2.Base.idxGenReg, valpar1);              break;
    911911                default: AssertFailedReturn(VERR_EM_INTERPRETER);
    912912                }
     
    10511051                if (    (pDis->Param1.fUse & DISUSE_BASE)
    10521052                    &&  (pDis->Param1.fUse & (DISUSE_REG_GEN16|DISUSE_REG_GEN32))
    1053                     &&  pDis->Param1.base.reg_gen == DISGREG_ESP
     1053                    &&  pDis->Param1.Base.idxGenReg == DISGREG_ESP
    10541054                   )
    10551055                   pParam1 = (RTGCPTR)((RTGCUINTPTR)pParam1 + param1.size);
     
    16091609                switch(param1.size)
    16101610                {
    1611                 case 1: rc = DISWriteReg8(pRegFrame, pDis->Param1.base.reg_gen,  (uint8_t) val64); break;
    1612                 case 2: rc = DISWriteReg16(pRegFrame, pDis->Param1.base.reg_gen, (uint16_t)val64); break;
    1613                 case 4: rc = DISWriteReg32(pRegFrame, pDis->Param1.base.reg_gen, (uint32_t)val64); break;
    1614                 case 8: rc = DISWriteReg64(pRegFrame, pDis->Param1.base.reg_gen, val64); break;
     1611                case 1: rc = DISWriteReg8(pRegFrame, pDis->Param1.Base.idxGenReg,  (uint8_t) val64); break;
     1612                case 2: rc = DISWriteReg16(pRegFrame, pDis->Param1.Base.idxGenReg, (uint16_t)val64); break;
     1613                case 4: rc = DISWriteReg32(pRegFrame, pDis->Param1.Base.idxGenReg, (uint32_t)val64); break;
     1614                case 8: rc = DISWriteReg64(pRegFrame, pDis->Param1.Base.idxGenReg, val64); break;
    16151615                default:
    16161616                    return VERR_EM_INTERPRETER;
     
    24282428        if(param1.size != sizeof(uint16_t))
    24292429            return VERR_EM_INTERPRETER;
    2430         LogFlow(("emInterpretSmsw %d <- cr0 (%x)\n", pDis->Param1.base.reg_gen, cr0));
    2431         rc = DISWriteReg16(pRegFrame, pDis->Param1.base.reg_gen, cr0);
     2430        LogFlow(("emInterpretSmsw %d <- cr0 (%x)\n", pDis->Param1.Base.idxGenReg, cr0));
     2431        rc = DISWriteReg16(pRegFrame, pDis->Param1.Base.idxGenReg, cr0);
    24322432        break;
    24332433
     
    24692469    NOREF(pvFault); NOREF(pcbSize);
    24702470    if ((pDis->Param1.fUse == DISUSE_REG_GEN32 || pDis->Param1.fUse == DISUSE_REG_GEN64) && pDis->Param2.fUse == DISUSE_REG_CR)
    2471         return EMInterpretCRxRead(pVM, pVCpu, pRegFrame, pDis->Param1.base.reg_gen, pDis->Param2.base.reg_ctrl);
     2471        return EMInterpretCRxRead(pVM, pVCpu, pRegFrame, pDis->Param1.Base.idxGenReg, pDis->Param2.Base.idxCtrlReg);
    24722472
    24732473    if (pDis->Param1.fUse == DISUSE_REG_CR && (pDis->Param2.fUse == DISUSE_REG_GEN32 || pDis->Param2.fUse == DISUSE_REG_GEN64))
    2474         return EMInterpretCRxWrite(pVM, pVCpu, pRegFrame, pDis->Param1.base.reg_ctrl, pDis->Param2.base.reg_gen);
     2474        return EMInterpretCRxWrite(pVM, pVCpu, pRegFrame, pDis->Param1.Base.idxCtrlReg, pDis->Param2.Base.idxGenReg);
    24752475
    24762476    AssertMsgFailedReturn(("Unexpected control register move\n"), VERR_EM_INTERPRETER);
     
    25602560    if((pDis->Param1.fUse == DISUSE_REG_GEN32 || pDis->Param1.fUse == DISUSE_REG_GEN64) && pDis->Param2.fUse == DISUSE_REG_DBG)
    25612561    {
    2562         rc = EMInterpretDRxRead(pVM, pVCpu, pRegFrame, pDis->Param1.base.reg_gen, pDis->Param2.base.reg_dbg);
     2562        rc = EMInterpretDRxRead(pVM, pVCpu, pRegFrame, pDis->Param1.Base.idxGenReg, pDis->Param2.Base.idxDbgReg);
    25632563    }
    25642564    else
    25652565    if(pDis->Param1.fUse == DISUSE_REG_DBG && (pDis->Param2.fUse == DISUSE_REG_GEN32 || pDis->Param2.fUse == DISUSE_REG_GEN64))
    25662566    {
    2567         rc = EMInterpretDRxWrite(pVM, pVCpu, pRegFrame, pDis->Param1.base.reg_dbg, pDis->Param2.base.reg_gen);
     2567        rc = EMInterpretDRxWrite(pVM, pVCpu, pRegFrame, pDis->Param1.Base.idxDbgReg, pDis->Param2.Base.idxGenReg);
    25682568    }
    25692569    else
  • trunk/src/VBox/VMM/VMMAll/IOMAll.cpp

    r41741 r41744  
    8181        {
    8282            *pcbSize  = 4;
    83             DISFetchReg32(pRegFrame, pParam->base.reg_gen, (uint32_t *)pu64Data);
     83            DISFetchReg32(pRegFrame, pParam->Base.idxGenReg, (uint32_t *)pu64Data);
    8484            return true;
    8585        }
     
    8888        {
    8989            *pcbSize  = 2;
    90             DISFetchReg16(pRegFrame, pParam->base.reg_gen, (uint16_t *)pu64Data);
     90            DISFetchReg16(pRegFrame, pParam->Base.idxGenReg, (uint16_t *)pu64Data);
    9191            return true;
    9292        }
     
    9595        {
    9696            *pcbSize  = 1;
    97             DISFetchReg8(pRegFrame, pParam->base.reg_gen, (uint8_t *)pu64Data);
     97            DISFetchReg8(pRegFrame, pParam->Base.idxGenReg, (uint8_t *)pu64Data);
    9898            return true;
    9999        }
     
    101101        Assert(pParam->fUse & DISUSE_REG_GEN64);
    102102        *pcbSize  = 8;
    103         DISFetchReg64(pRegFrame, pParam->base.reg_gen, pu64Data);
     103        DISFetchReg64(pRegFrame, pParam->Base.idxGenReg, pu64Data);
    104104        return true;
    105105    }
     
    137137        {
    138138            *pcbSize  = 2;
    139             DISFetchRegSeg(pRegFrame, (DISSELREG)pParam->base.reg_seg, (RTSEL *)pu64Data);
     139            DISFetchRegSeg(pRegFrame, (DISSELREG)pParam->Base.idxSegReg, (RTSEL *)pu64Data);
    140140            return true;
    141141        } /* Else - error. */
     
    169169    if (pParam->fUse & DISUSE_REG_GEN32)
    170170    {
    171         DISWriteReg32(pRegFrame, pParam->base.reg_gen, (uint32_t)u64Data);
     171        DISWriteReg32(pRegFrame, pParam->Base.idxGenReg, (uint32_t)u64Data);
    172172        return true;
    173173    }
     
    175175    if (pParam->fUse & DISUSE_REG_GEN64)
    176176    {
    177         DISWriteReg64(pRegFrame, pParam->base.reg_gen, u64Data);
     177        DISWriteReg64(pRegFrame, pParam->Base.idxGenReg, u64Data);
    178178        return true;
    179179    }
     
    181181    if (pParam->fUse & DISUSE_REG_GEN16)
    182182    {
    183         DISWriteReg16(pRegFrame, pParam->base.reg_gen, (uint16_t)u64Data);
     183        DISWriteReg16(pRegFrame, pParam->Base.idxGenReg, (uint16_t)u64Data);
    184184        return true;
    185185    }
     
    187187    if (pParam->fUse & DISUSE_REG_GEN8)
    188188    {
    189         DISWriteReg8(pRegFrame, pParam->base.reg_gen, (uint8_t)u64Data);
     189        DISWriteReg8(pRegFrame, pParam->Base.idxGenReg, (uint8_t)u64Data);
    190190        return true;
    191191    }
     
    193193    if (pParam->fUse & DISUSE_REG_SEG)
    194194    {
    195         DISWriteRegSeg(pRegFrame, (DISSELREG)pParam->base.reg_seg, (RTSEL)u64Data);
     195        DISWriteRegSeg(pRegFrame, (DISSELREG)pParam->Base.idxSegReg, (RTSEL)u64Data);
    196196        return true;
    197197    }
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r41739 r41744  
    761761#endif
    762762
    763     LogFlow(("Reused instr %RGv %d at %RGv param1.fUse=%llx param1.reg=%d\n", pRegFrame->rip, pDis->pCurInstr->uOpcode, pvFault, pDis->Param1.fUse,  pDis->Param1.base.reg_gen));
     763    LogFlow(("Reused instr %RGv %d at %RGv param1.fUse=%llx param1.reg=%d\n", pRegFrame->rip, pDis->pCurInstr->uOpcode, pvFault, pDis->Param1.fUse,  pDis->Param1.Base.idxGenReg));
    764764
    765765    /* Non-supervisor mode write means it's used for something else. */
     
    806806    if (    (    (pDis->Param1.fUse & DISUSE_REG_GEN32)
    807807             ||  (pDis->Param1.fUse & DISUSE_REG_GEN64))
    808         &&  (pDis->Param1.base.reg_gen == DISGREG_ESP))
     808        &&  (pDis->Param1.Base.idxGenReg == DISGREG_ESP))
    809809    {
    810810        Log4(("pgmPoolMonitorIsReused: ESP\n"));
  • trunk/src/VBox/VMM/VMMR3/EMRaw.cpp

    r41739 r41744  
    994994                    //read
    995995                    Assert(Cpu.Param2.fUse & DISUSE_REG_CR);
    996                     Assert(Cpu.Param2.base.reg_ctrl <= DISCREG_CR4);
    997                     STAM_COUNTER_INC(&pStats->StatMovReadCR[Cpu.Param2.base.reg_ctrl]);
     996                    Assert(Cpu.Param2.Base.idxCtrlReg <= DISCREG_CR4);
     997                    STAM_COUNTER_INC(&pStats->StatMovReadCR[Cpu.Param2.Base.idxCtrlReg]);
    998998                }
    999999                else
     
    10011001                    //write
    10021002                    Assert(Cpu.Param1.fUse & DISUSE_REG_CR);
    1003                     Assert(Cpu.Param1.base.reg_ctrl <= DISCREG_CR4);
    1004                     STAM_COUNTER_INC(&pStats->StatMovWriteCR[Cpu.Param1.base.reg_ctrl]);
     1003                    Assert(Cpu.Param1.Base.idxCtrlReg <= DISCREG_CR4);
     1004                    STAM_COUNTER_INC(&pStats->StatMovWriteCR[Cpu.Param1.Base.idxCtrlReg]);
    10051005                }
    10061006                break;
  • trunk/src/VBox/VMM/VMMR3/HWACCM.cpp

    r41741 r41744  
    18391839            {
    18401840                pPatch->enmType     = HWACCMTPRINSTR_WRITE_REG;
    1841                 pPatch->uSrcOperand = pDis->Param2.base.reg_gen;
     1841                pPatch->uSrcOperand = pDis->Param2.Base.idxGenReg;
    18421842            }
    18431843            else
     
    18571857            RTGCPTR  oldrip   = pCtx->rip;
    18581858            uint32_t oldcbOp  = cbOp;
    1859             uint32_t uMmioReg = pDis->Param1.base.reg_gen;
     1859            uint32_t uMmioReg = pDis->Param1.Base.idxGenReg;
    18601860
    18611861            /* read */
     
    18731873                &&  pDis->pCurInstr->uOpcode == OP_SHR
    18741874                &&  pDis->Param1.fUse == DISUSE_REG_GEN32
    1875                 &&  pDis->Param1.base.reg_gen == uMmioReg
     1875                &&  pDis->Param1.Base.idxGenReg == uMmioReg
    18761876                &&  pDis->Param2.fUse == DISUSE_IMMEDIATE8
    18771877                &&  pDis->Param2.uValue == 4
     
    18901890                szInstr[1] = 0x0F;
    18911891                szInstr[2] = 0x20;
    1892                 szInstr[3] = 0xC0 | pDis->Param1.base.reg_gen;
     1892                szInstr[3] = 0xC0 | pDis->Param1.Base.idxGenReg;
    18931893                for (unsigned i = 4; i < pPatch->cbOp; i++)
    18941894                    szInstr[i] = 0x90;  /* nop */
     
    19061906            {
    19071907                pPatch->enmType     = HWACCMTPRINSTR_READ;
    1908                 pPatch->uDstOperand = pDis->Param1.base.reg_gen;
     1908                pPatch->uDstOperand = pDis->Param1.Base.idxGenReg;
    19091909
    19101910                rc = PGMPhysSimpleWriteGCPtr(pVCpu, pCtx->rip, aVMMCall, sizeof(aVMMCall));
     
    20282028                *
    20292029                */
    2030             bool fUsesEax = (pDis->Param2.fUse == DISUSE_REG_GEN32 && pDis->Param2.base.reg_gen == DISGREG_EAX);
     2030            bool fUsesEax = (pDis->Param2.fUse == DISUSE_REG_GEN32 && pDis->Param2.Base.idxGenReg == DISGREG_EAX);
    20312031
    20322032            aPatch[off++] = 0x51;    /* push ecx */
     
    20412041                {
    20422042                    aPatch[off++] = 0x89;    /* mov eax, src_reg */
    2043                     aPatch[off++] = MAKE_MODRM(3, pDis->Param2.base.reg_gen, DISGREG_EAX);
     2043                    aPatch[off++] = MAKE_MODRM(3, pDis->Param2.Base.idxGenReg, DISGREG_EAX);
    20442044                }
    20452045            }
     
    20812081            Assert(pDis->Param1.fUse == DISUSE_REG_GEN32);
    20822082
    2083             if (pDis->Param1.base.reg_gen != DISGREG_ECX)
     2083            if (pDis->Param1.Base.idxGenReg != DISGREG_ECX)
    20842084                aPatch[off++] = 0x51;    /* push ecx */
    2085             if (pDis->Param1.base.reg_gen != DISGREG_EDX )
     2085            if (pDis->Param1.Base.idxGenReg != DISGREG_EDX )
    20862086                aPatch[off++] = 0x52;    /* push edx */
    2087             if (pDis->Param1.base.reg_gen != DISGREG_EAX)
     2087            if (pDis->Param1.Base.idxGenReg != DISGREG_EAX)
    20882088                aPatch[off++] = 0x50;    /* push eax */
    20892089
     
    20982098            aPatch[off++] = 0x32;
    20992099
    2100             if (pDis->Param1.base.reg_gen != DISGREG_EAX)
     2100            if (pDis->Param1.Base.idxGenReg != DISGREG_EAX)
    21012101            {
    21022102                aPatch[off++] = 0x89;    /* mov dst_reg, eax */
    2103                 aPatch[off++] = MAKE_MODRM(3, DISGREG_EAX, pDis->Param1.base.reg_gen);
     2103                aPatch[off++] = MAKE_MODRM(3, DISGREG_EAX, pDis->Param1.Base.idxGenReg);
    21042104            }
    21052105
    2106             if (pDis->Param1.base.reg_gen != DISGREG_EAX)
     2106            if (pDis->Param1.Base.idxGenReg != DISGREG_EAX)
    21072107                aPatch[off++] = 0x58;    /* pop eax */
    2108             if (pDis->Param1.base.reg_gen != DISGREG_EDX )
     2108            if (pDis->Param1.Base.idxGenReg != DISGREG_EDX )
    21092109                aPatch[off++] = 0x5A;    /* pop edx */
    2110             if (pDis->Param1.base.reg_gen != DISGREG_ECX)
     2110            if (pDis->Param1.Base.idxGenReg != DISGREG_ECX)
    21112111                aPatch[off++] = 0x59;    /* pop ecx */
    21122112        }
  • trunk/src/VBox/VMM/VMMR3/PATM.cpp

    r41741 r41744  
    17491749            /* mov ss, src? */
    17501750            if (    (pCpu->Param1.fUse & DISUSE_REG_SEG)
    1751                 &&  (pCpu->Param1.base.reg_seg == DISSELREG_SS))
     1751                &&  (pCpu->Param1.Base.idxSegReg == DISSELREG_SS))
    17521752            {
    17531753                Log(("Force recompilation of next instruction for OP_MOV at %RRv\n", pCurInstrGC));
     
    17581758            else
    17591759            if (    (pCpu->Param2.fUse & DISUSE_REG_SEG)
    1760                 &&  (pCpu->Param2.base.reg_seg == USE_REG_SS)
     1760                &&  (pCpu->Param2.Base.idxSegReg == USE_REG_SS)
    17611761                &&  (pCpu->Param1.fUse & (DISUSE_REG_GEN32|DISUSE_REG_GEN16)))     /** @todo memory operand must in theory be handled too */
    17621762            {
  • trunk/src/VBox/VMM/VMMR3/PATMPatch.cpp

    r41741 r41744  
    11671167        Assert(pCpu->Param2.fUse & DISUSE_REG_GEN32);
    11681168
    1169         dbgreg = pCpu->Param1.base.reg_dbg;
    1170         reg    = pCpu->Param2.base.reg_gen;
     1169        dbgreg = pCpu->Param1.Base.idxDbgReg;
     1170        reg    = pCpu->Param2.Base.idxGenReg;
    11711171    }
    11721172    else
     
    11771177
    11781178        pPB[0] = 0x8B;      // mov GPR, disp32
    1179         reg    = pCpu->Param1.base.reg_gen;
    1180         dbgreg = pCpu->Param2.base.reg_dbg;
     1179        reg    = pCpu->Param1.Base.idxGenReg;
     1180        dbgreg = pCpu->Param2.Base.idxDbgReg;
    11811181    }
    11821182
     
    12141214        // mov CRx, GPR
    12151215        pPB[0] = 0x89;      //mov disp32, GPR
    1216         ctrlreg = pCpu->Param1.base.reg_ctrl;
    1217         reg     = pCpu->Param2.base.reg_gen;
     1216        ctrlreg = pCpu->Param1.Base.idxCtrlReg;
     1217        reg     = pCpu->Param2.Base.idxGenReg;
    12181218        Assert(pCpu->Param1.fUse & DISUSE_REG_CR);
    12191219        Assert(pCpu->Param2.fUse & DISUSE_REG_GEN32);
     
    12261226
    12271227        pPB[0]  = 0x8B;      // mov GPR, disp32
    1228         reg     = pCpu->Param1.base.reg_gen;
    1229         ctrlreg = pCpu->Param2.base.reg_ctrl;
     1228        reg     = pCpu->Param1.Base.idxGenReg;
     1229        ctrlreg = pCpu->Param2.Base.idxCtrlReg;
    12301230    }
    12311231
     
    12921292    if (pCpu->fPrefix & DISPREFIX_OPSIZE)
    12931293        pPB[offset++] = 0x66; /* size override -> 16 bits pop */
    1294     pPB[offset++] = 0x58 + pCpu->Param1.base.reg_gen;
     1294    pPB[offset++] = 0x58 + pCpu->Param1.Base.idxGenReg;
    12951295    PATCHGEN_EPILOG(pPatch, offset);
    12961296
     
    13351335        pPB[offset++] = 0x8B;              // mov       destreg, CPUMCTX.tr/ldtr
    13361336        /* Modify REG part according to destination of original instruction */
    1337         pPB[offset++] = MAKE_MODRM(0, pCpu->Param1.base.reg_gen, 5);
     1337        pPB[offset++] = MAKE_MODRM(0, pCpu->Param1.Base.idxGenReg, 5);
    13381338        if (pCpu->pCurInstr->uOpcode == OP_STR)
    13391339        {
Note: See TracChangeset for help on using the changeset viewer.

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