VirtualBox

Changeset 41736 in vbox for trunk/src/VBox/Disassembler


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

DISCPUMODE: s/mode/uCpuMode/ - found and removed a bunch of uncessary cpu mode setting before calilng the API.

Location:
trunk/src/VBox/Disassembler
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Disassembler/DisasmCore.cpp

    r41735 r41736  
    291291    RT_BZERO(pCpu, RT_OFFSETOF(DISCPUSTATE, pvUser2));
    292292
    293     pCpu->mode              = enmCpuMode;
     293    pCpu->uCpuMode          = enmCpuMode;
    294294    if (enmCpuMode == DISCPUMODE_64BIT)
    295295    {
     
    360360                pCpu->idxSegPrefix = (DISSELREG)(paOneByteMap[codebyte].param1 - OP_PARM_REG_SEG_START);
    361361                /* Segment prefixes for CS, DS, ES and SS are ignored in long mode. */
    362                 if (   pCpu->mode != DISCPUMODE_64BIT
     362                if (   pCpu->uCpuMode != DISCPUMODE_64BIT
    363363                    || pCpu->idxSegPrefix >= DISSELREG_FS)
    364364                {
     
    377377            case OP_ADDRSIZE:
    378378                pCpu->fPrefix |= DISPREFIX_ADDRSIZE;
    379                 if (pCpu->mode == DISCPUMODE_16BIT)
     379                if (pCpu->uCpuMode == DISCPUMODE_16BIT)
    380380                    pCpu->uAddrMode = DISCPUMODE_32BIT;
    381381                else
    382                 if (pCpu->mode == DISCPUMODE_32BIT)
     382                if (pCpu->uCpuMode == DISCPUMODE_32BIT)
    383383                    pCpu->uAddrMode = DISCPUMODE_16BIT;
    384384                else
     
    391391            case OP_OPSIZE:
    392392                pCpu->fPrefix |= DISPREFIX_OPSIZE;
    393                 if (pCpu->mode == DISCPUMODE_16BIT)
     393                if (pCpu->uCpuMode == DISCPUMODE_16BIT)
    394394                    pCpu->uOpMode = DISCPUMODE_32BIT;
    395395                else
     
    411411
    412412            case OP_REX:
    413                 Assert(pCpu->mode == DISCPUMODE_64BIT);
     413                Assert(pCpu->uCpuMode == DISCPUMODE_64BIT);
    414414                /* REX prefix byte */
    415415                pCpu->fPrefix   |= DISPREFIX_REX;
     
    476476
    477477    /* Correct the operand size if the instruction is marked as forced or default 64 bits */
    478     if (pCpu->mode == DISCPUMODE_64BIT)
     478    if (pCpu->uCpuMode == DISCPUMODE_64BIT)
    479479    {
    480480        if (pOp->optype & DISOPTYPE_FORCED_64_OP_SIZE)
     
    489489    {
    490490        /* Forced 32 bits operand size for certain instructions (mov crx, mov drx). */
    491         Assert(pCpu->mode != DISCPUMODE_64BIT);
     491        Assert(pCpu->uCpuMode != DISCPUMODE_64BIT);
    492492        pCpu->uOpMode = DISCPUMODE_32BIT;
    493493    }
     
    554554
    555555    /* Correct the operand size if the instruction is marked as forced or default 64 bits */
    556     if (pCpu->mode == DISCPUMODE_64BIT)
     556    if (pCpu->uCpuMode == DISCPUMODE_64BIT)
    557557    {
    558558        /* Note: redundant, but just in case this ever changes */
     
    805805            {
    806806                /* 32 bits displacement */
    807                 if (pCpu->mode != DISCPUMODE_64BIT)
     807                if (pCpu->uCpuMode != DISCPUMODE_64BIT)
    808808                {
    809809                    pParam->fUse |= DISUSE_DISPLACEMENT32;
     
    10821082    if (pCpu->fPrefix & DISPREFIX_REX)
    10831083    {
    1084         Assert(pCpu->mode == DISCPUMODE_64BIT);
     1084        Assert(pCpu->uCpuMode == DISCPUMODE_64BIT);
    10851085
    10861086        /* REX.R extends the Reg field. */
     
    11281128    if (pCpu->fPrefix & DISPREFIX_REX)
    11291129    {
    1130         Assert(pCpu->mode == DISCPUMODE_64BIT);
     1130        Assert(pCpu->uCpuMode == DISCPUMODE_64BIT);
    11311131
    11321132        /* REX.R extends the Reg field. */
     
    17611761                /* Cancel prefix changes. */
    17621762                pCpu->fPrefix &= ~DISPREFIX_OPSIZE;
    1763                 pCpu->uOpMode  = pCpu->mode;
     1763                pCpu->uOpMode  = pCpu->uCpuMode;
    17641764            }
    17651765            break;
     
    18281828                /* Cancel prefix changes. */
    18291829                pCpu->fPrefix &= ~DISPREFIX_OPSIZE;
    1830                 pCpu->uOpMode  = pCpu->mode;
     1830                pCpu->uOpMode  = pCpu->uCpuMode;
    18311831            }
    18321832        }
     
    18791879            /* Cancel prefix changes. */
    18801880            pCpu->fPrefix &= ~DISPREFIX_OPSIZE;
    1881             pCpu->uOpMode  = pCpu->mode;
     1881            pCpu->uOpMode  = pCpu->uCpuMode;
    18821882        }
    18831883    }
  • trunk/src/VBox/Disassembler/DisasmFormatYasm.cpp

    r41735 r41736  
    800800
    801801                            case DISUSE_IMMEDIATE16:
    802                                 if (    pCpu->mode != pCpu->uOpMode
     802                                if (    pCpu->uCpuMode != pCpu->uOpMode
    803803                                    ||  (   (fFlags & DIS_FMT_FLAGS_STRICT)
    804804                                         && (   (int8_t)pParam->parval == (int16_t)pParam->parval
     
    823823
    824824                            case DISUSE_IMMEDIATE32:
    825                                 if (    pCpu->uOpMode != (pCpu->mode == DISCPUMODE_16BIT ? DISCPUMODE_16BIT : DISCPUMODE_32BIT) /* not perfect */
     825                                if (    pCpu->uOpMode != (pCpu->uCpuMode == DISCPUMODE_16BIT ? DISCPUMODE_16BIT : DISCPUMODE_32BIT) /* not perfect */
    826826                                    ||  (   (fFlags & DIS_FMT_FLAGS_STRICT)
    827827                                         && (   (int8_t)pParam->parval == (int32_t)pParam->parval
     
    908908
    909909                        RTUINTPTR uTrgAddr = pCpu->uInstrAddr + pCpu->cbInstr + offDisplacement;
    910                         if (pCpu->mode == DISCPUMODE_16BIT)
     910                        if (pCpu->uCpuMode == DISCPUMODE_16BIT)
    911911                            PUT_NUM_16(uTrgAddr);
    912                         else if (pCpu->mode == DISCPUMODE_32BIT)
     912                        else if (pCpu->uCpuMode == DISCPUMODE_32BIT)
    913913                            PUT_NUM_32(uTrgAddr);
    914914                        else
     
    12731273            case 0x40: case 0x41: case 0x42: case 0x43: case 0x44: case 0x45: case 0x46: case 0x47:
    12741274            case 0x48: case 0x49: case 0x4a: case 0x4b: case 0x4c: case 0x4d: case 0x4e: case 0x4f:
    1275                 f = pCpu->mode == DISCPUMODE_64BIT ? DISPREFIX_REX : 0;
     1275                f = pCpu->uCpuMode == DISCPUMODE_64BIT ? DISPREFIX_REX : 0;
    12761276                break;
    12771277
     
    12911291    {
    12921292        /* no effective address which it may apply to. */
    1293         Assert((pCpu->fPrefix & DISPREFIX_SEG) || pCpu->mode == DISCPUMODE_64BIT);
     1293        Assert((pCpu->fPrefix & DISPREFIX_SEG) || pCpu->uCpuMode == DISCPUMODE_64BIT);
    12941294        if (    !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param1.fUse)
    12951295            &&  !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param2.fUse)
     
    15171517    if (    pCpu->pCurInstr->opcode == OP_MOVZX
    15181518        &&  pCpu->bOpCode == 0xB7
    1519         &&  (pCpu->mode == DISCPUMODE_16BIT) != !!(fPrefixes & DISPREFIX_OPSIZE))
     1519        &&  (pCpu->uCpuMode == DISCPUMODE_16BIT) != !!(fPrefixes & DISPREFIX_OPSIZE))
    15201520        return true;
    15211521
  • trunk/src/VBox/Disassembler/DisasmReg.cpp

    r41735 r41736  
    587587        if (pParam->fUse & DISUSE_DISPLACEMENT8)
    588588        {
    589             if (pCpu->mode == DISCPUMODE_32BIT)
     589            if (pCpu->uCpuMode == DISCPUMODE_32BIT)
    590590                pParamVal->val.val32 += (int32_t)pParam->uDisp.i8;
    591591            else
    592             if (pCpu->mode == DISCPUMODE_64BIT)
     592            if (pCpu->uCpuMode == DISCPUMODE_64BIT)
    593593                pParamVal->val.val64 += (int64_t)pParam->uDisp.i8;
    594594            else
     
    598598        if (pParam->fUse & DISUSE_DISPLACEMENT16)
    599599        {
    600             if (pCpu->mode == DISCPUMODE_32BIT)
     600            if (pCpu->uCpuMode == DISCPUMODE_32BIT)
    601601                pParamVal->val.val32 += (int32_t)pParam->uDisp.i16;
    602602            else
    603             if (pCpu->mode == DISCPUMODE_64BIT)
     603            if (pCpu->uCpuMode == DISCPUMODE_64BIT)
    604604                pParamVal->val.val64 += (int64_t)pParam->uDisp.i16;
    605605            else
     
    609609        if (pParam->fUse & DISUSE_DISPLACEMENT32)
    610610        {
    611             if (pCpu->mode == DISCPUMODE_32BIT)
     611            if (pCpu->uCpuMode == DISCPUMODE_32BIT)
    612612                pParamVal->val.val32 += pParam->uDisp.i32;
    613613            else
     
    617617        if (pParam->fUse & DISUSE_DISPLACEMENT64)
    618618        {
    619             Assert(pCpu->mode == DISCPUMODE_64BIT);
     619            Assert(pCpu->uCpuMode == DISCPUMODE_64BIT);
    620620            pParamVal->val.val64 += pParam->uDisp.i64;
    621621        }
     
    623623        if (pParam->fUse & DISUSE_RIPDISPLACEMENT32)
    624624        {
    625             Assert(pCpu->mode == DISCPUMODE_64BIT);
     625            Assert(pCpu->uCpuMode == DISCPUMODE_64BIT);
    626626            /* Relative to the RIP of the next instruction. */
    627627            pParamVal->val.val64 += pParam->uDisp.i32 + pCtx->rip + pCpu->cbInstr;
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