VirtualBox

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


Ignore:
Timestamp:
Jun 13, 2012 9:37:47 AM (12 years ago)
Author:
vboxsync
Message:

OP_PARAMETER::flags -> fUse.

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

Legend:

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

    r41676 r41678  
    616616    if (ppszSIBIndexReg[index])
    617617    {
    618          pParam->flags |= DISUSE_INDEX | regtype;
     618         pParam->fUse |= DISUSE_INDEX | regtype;
    619619         pParam->index.reg_gen = index;
    620620
    621621         if (scale != 0)
    622622         {
    623              pParam->flags |= DISUSE_SCALE;
     623             pParam->fUse |= DISUSE_SCALE;
    624624             pParam->scale  = (1<<scale);
    625625         }
     
    631631        if (pCpu->addrmode == DISCPUMODE_32BIT)
    632632        {
    633             pParam->flags |= DISUSE_DISPLACEMENT32;
     633            pParam->fUse |= DISUSE_DISPLACEMENT32;
    634634            pParam->uDisp.i32 = pCpu->i32SibDisp;
    635635        }
    636636        else
    637637        {   /* sign-extend to 64 bits */
    638             pParam->flags |= DISUSE_DISPLACEMENT64;
     638            pParam->fUse |= DISUSE_DISPLACEMENT64;
    639639            pParam->uDisp.i64 = pCpu->i32SibDisp;
    640640        }
     
    642642    else
    643643    {
    644         pParam->flags |= DISUSE_BASE | regtype;
     644        pParam->fUse |= DISUSE_BASE | regtype;
    645645        pParam->base.reg_gen = base;
    646646    }
     
    735735            {
    736736            case OP_PARM_C: //control register
    737                 pParam->flags |= DISUSE_REG_CR;
     737                pParam->fUse |= DISUSE_REG_CR;
    738738
    739739                if (    pCpu->pCurInstr->opcode == OP_MOV_CR
     
    749749
    750750            case OP_PARM_D: //debug register
    751                 pParam->flags |= DISUSE_REG_DBG;
     751                pParam->fUse |= DISUSE_REG_DBG;
    752752                pParam->base.reg_dbg = reg;
    753753                return 0;
     
    755755            case OP_PARM_P: //MMX register
    756756                reg &= 7;   /* REX.R has no effect here */
    757                 pParam->flags |= DISUSE_REG_MMX;
     757                pParam->fUse |= DISUSE_REG_MMX;
    758758                pParam->base.reg_mmx = reg;
    759759                return 0;
     
    762762                reg &= 7;   /* REX.R has no effect here */
    763763                disasmModRMSReg(pCpu, pOp, reg, pParam);
    764                 pParam->flags |= DISUSE_REG_SEG;
     764                pParam->fUse |= DISUSE_REG_SEG;
    765765                return 0;
    766766
    767767            case OP_PARM_T: //test register
    768768                reg &= 7;   /* REX.R has no effect here */
    769                 pParam->flags |= DISUSE_REG_TEST;
     769                pParam->fUse |= DISUSE_REG_TEST;
    770770                pParam->base.reg_test = reg;
    771771                return 0;
     
    778778
    779779            case OP_PARM_V: //XMM register
    780                 pParam->flags |= DISUSE_REG_XMM;
     780                pParam->fUse |= DISUSE_REG_XMM;
    781781                pParam->base.reg_xmm = reg;
    782782                return 0;
     
    807807                if (pCpu->mode != DISCPUMODE_64BIT)
    808808                {
    809                     pParam->flags |= DISUSE_DISPLACEMENT32;
     809                    pParam->fUse |= DISUSE_DISPLACEMENT32;
    810810                    pParam->uDisp.i32 = pCpu->i32SibDisp;
    811811                }
    812812                else
    813813                {
    814                     pParam->flags |= DISUSE_RIPDISPLACEMENT32;
     814                    pParam->fUse |= DISUSE_RIPDISPLACEMENT32;
    815815                    pParam->uDisp.i32 = pCpu->i32SibDisp;
    816816                }
     
    818818            else
    819819            {   //register address
    820                 pParam->flags |= DISUSE_BASE;
     820                pParam->fUse |= DISUSE_BASE;
    821821                disasmModRMReg(pCpu, pOp, rm, pParam, 1);
    822822            }
     
    829829            else
    830830            {
    831                 pParam->flags |= DISUSE_BASE;
     831                pParam->fUse |= DISUSE_BASE;
    832832                disasmModRMReg(pCpu, pOp, rm, pParam, 1);
    833833            }
    834834            pParam->uDisp.i8 = pCpu->i32SibDisp;
    835             pParam->flags |= DISUSE_DISPLACEMENT8;
     835            pParam->fUse |= DISUSE_DISPLACEMENT8;
    836836            break;
    837837
     
    842842            else
    843843            {
    844                 pParam->flags |= DISUSE_BASE;
     844                pParam->fUse |= DISUSE_BASE;
    845845                disasmModRMReg(pCpu, pOp, rm, pParam, 1);
    846846            }
    847847            pParam->uDisp.i32 = pCpu->i32SibDisp;
    848             pParam->flags |= DISUSE_DISPLACEMENT32;
     848            pParam->fUse |= DISUSE_DISPLACEMENT32;
    849849            break;
    850850
     
    862862            {//16 bits displacement
    863863                pParam->uDisp.i16 = pCpu->i32SibDisp;
    864                 pParam->flags |= DISUSE_DISPLACEMENT16;
     864                pParam->fUse |= DISUSE_DISPLACEMENT16;
    865865            }
    866866            else
    867867            {
    868                 pParam->flags |= DISUSE_BASE;
     868                pParam->fUse |= DISUSE_BASE;
    869869                disasmModRMReg16(pCpu, pOp, rm, pParam);
    870870            }
     
    874874            disasmModRMReg16(pCpu, pOp, rm, pParam);
    875875            pParam->uDisp.i8 = pCpu->i32SibDisp;
    876             pParam->flags |= DISUSE_BASE | DISUSE_DISPLACEMENT8;
     876            pParam->fUse |= DISUSE_BASE | DISUSE_DISPLACEMENT8;
    877877            break;
    878878
     
    880880            disasmModRMReg16(pCpu, pOp, rm, pParam);
    881881            pParam->uDisp.i16 = pCpu->i32SibDisp;
    882             pParam->flags |= DISUSE_BASE | DISUSE_DISPLACEMENT16;
     882            pParam->fUse |= DISUSE_BASE | DISUSE_DISPLACEMENT16;
    883883            break;
    884884
     
    11651165    NOREF(pOp);
    11661166    pParam->parval = DISReadByte(pCpu, uCodePtr);
    1167     pParam->flags |= DISUSE_IMMEDIATE8;
     1167    pParam->fUse |= DISUSE_IMMEDIATE8;
    11681168    pParam->cb     = sizeof(uint8_t);
    11691169    return sizeof(uint8_t);
     
    11841184    {
    11851185        pParam->parval = (uint32_t)(int8_t)DISReadByte(pCpu, uCodePtr);
    1186         pParam->flags |= DISUSE_IMMEDIATE32_SX8;
     1186        pParam->fUse |= DISUSE_IMMEDIATE32_SX8;
    11871187        pParam->cb     = sizeof(uint32_t);
    11881188    }
     
    11911191    {
    11921192        pParam->parval = (uint64_t)(int8_t)DISReadByte(pCpu, uCodePtr);
    1193         pParam->flags |= DISUSE_IMMEDIATE64_SX8;
     1193        pParam->fUse |= DISUSE_IMMEDIATE64_SX8;
    11941194        pParam->cb     = sizeof(uint64_t);
    11951195    }
     
    11971197    {
    11981198        pParam->parval = (uint16_t)(int8_t)DISReadByte(pCpu, uCodePtr);
    1199         pParam->flags |= DISUSE_IMMEDIATE16_SX8;
     1199        pParam->fUse |= DISUSE_IMMEDIATE16_SX8;
    12001200        pParam->cb     = sizeof(uint16_t);
    12011201    }
     
    12151215    NOREF(pOp);
    12161216    pParam->parval = DISReadWord(pCpu, uCodePtr);
    1217     pParam->flags |= DISUSE_IMMEDIATE16;
     1217    pParam->fUse |= DISUSE_IMMEDIATE16;
    12181218    pParam->cb     = sizeof(uint16_t);
    12191219    return sizeof(uint16_t);
     
    12321232    NOREF(pOp);
    12331233    pParam->parval = DISReadDWord(pCpu, uCodePtr);
    1234     pParam->flags |= DISUSE_IMMEDIATE32;
     1234    pParam->fUse |= DISUSE_IMMEDIATE32;
    12351235    pParam->cb     = sizeof(uint32_t);
    12361236    return sizeof(uint32_t);
     
    12491249    NOREF(pOp);
    12501250    pParam->parval = DISReadQWord(pCpu, uCodePtr);
    1251     pParam->flags |= DISUSE_IMMEDIATE64;
     1251    pParam->fUse |= DISUSE_IMMEDIATE64;
    12521252    pParam->cb     = sizeof(uint64_t);
    12531253    return sizeof(uint64_t);
     
    12681268    {
    12691269        pParam->parval = DISReadDWord(pCpu, uCodePtr);
    1270         pParam->flags |= DISUSE_IMMEDIATE32;
     1270        pParam->fUse |= DISUSE_IMMEDIATE32;
    12711271        pParam->cb     = sizeof(uint32_t);
    12721272        return sizeof(uint32_t);
     
    12761276    {
    12771277        pParam->parval = DISReadQWord(pCpu, uCodePtr);
    1278         pParam->flags |= DISUSE_IMMEDIATE64;
     1278        pParam->fUse |= DISUSE_IMMEDIATE64;
    12791279        pParam->cb     = sizeof(uint64_t);
    12801280        return sizeof(uint64_t);
     
    12821282
    12831283    pParam->parval = DISReadWord(pCpu, uCodePtr);
    1284     pParam->flags |= DISUSE_IMMEDIATE16;
     1284    pParam->fUse |= DISUSE_IMMEDIATE16;
    12851285    pParam->cb     = sizeof(uint16_t);
    12861286    return sizeof(uint16_t);
     
    13061306    {
    13071307        pParam->parval = DISReadWord(pCpu, uCodePtr);
    1308         pParam->flags |= DISUSE_IMMEDIATE16;
     1308        pParam->fUse |= DISUSE_IMMEDIATE16;
    13091309        pParam->cb     = sizeof(uint16_t);
    13101310        return sizeof(uint16_t);
     
    13151315    {
    13161316        pParam->parval = (uint64_t)(int32_t)DISReadDWord(pCpu, uCodePtr);
    1317         pParam->flags |= DISUSE_IMMEDIATE64;
     1317        pParam->fUse |= DISUSE_IMMEDIATE64;
    13181318        pParam->cb     = sizeof(uint64_t);
    13191319    }
     
    13211321    {
    13221322        pParam->parval = DISReadDWord(pCpu, uCodePtr);
    1323         pParam->flags |= DISUSE_IMMEDIATE32;
     1323        pParam->fUse |= DISUSE_IMMEDIATE32;
    13241324        pParam->cb     = sizeof(uint32_t);
    13251325    }
     
    13441344    NOREF(pOp);
    13451345    pParam->parval = DISReadByte(pCpu, uCodePtr);
    1346     pParam->flags |= DISUSE_IMMEDIATE8_REL;
     1346    pParam->fUse |= DISUSE_IMMEDIATE8_REL;
    13471347    pParam->cb     = sizeof(uint8_t);
    13481348    return sizeof(char);
     
    13651365    {
    13661366        pParam->parval = DISReadDWord(pCpu, uCodePtr);
    1367         pParam->flags |= DISUSE_IMMEDIATE32_REL;
     1367        pParam->fUse |= DISUSE_IMMEDIATE32_REL;
    13681368        pParam->cb     = sizeof(int32_t);
    13691369        return sizeof(int32_t);
     
    13741374        /* 32 bits relative immediate sign extended to 64 bits. */
    13751375        pParam->parval = (uint64_t)(int32_t)DISReadDWord(pCpu, uCodePtr);
    1376         pParam->flags |= DISUSE_IMMEDIATE64_REL;
     1376        pParam->fUse |= DISUSE_IMMEDIATE64_REL;
    13771377        pParam->cb     = sizeof(int64_t);
    13781378        return sizeof(int32_t);
     
    13801380
    13811381    pParam->parval = DISReadWord(pCpu, uCodePtr);
    1382     pParam->flags |= DISUSE_IMMEDIATE16_REL;
     1382    pParam->fUse |= DISUSE_IMMEDIATE16_REL;
    13831383    pParam->cb     = sizeof(int16_t);
    13841384    return sizeof(int16_t);
     
    14061406            pParam->parval = DISReadDWord(pCpu, uCodePtr);
    14071407            *((uint32_t*)&pParam->parval+1) = DISReadWord(pCpu, uCodePtr+sizeof(uint32_t));
    1408             pParam->flags  |= DISUSE_IMMEDIATE_ADDR_16_32;
     1408            pParam->fUse   |= DISUSE_IMMEDIATE_ADDR_16_32;
    14091409            pParam->cb     = sizeof(uint16_t) + sizeof(uint32_t);
    14101410            return sizeof(uint32_t) + sizeof(uint16_t);
     
    14181418         */
    14191419        pParam->uDisp.i32 = DISReadDWord(pCpu, uCodePtr);
    1420         pParam->flags |= DISUSE_DISPLACEMENT32;
     1420        pParam->fUse |= DISUSE_DISPLACEMENT32;
    14211421        pParam->cb     = sizeof(uint32_t);
    14221422        return sizeof(uint32_t);
     
    14331433         */
    14341434        pParam->uDisp.i64 = DISReadQWord(pCpu, uCodePtr);
    1435         pParam->flags |= DISUSE_DISPLACEMENT64;
     1435        pParam->fUse |= DISUSE_DISPLACEMENT64;
    14361436        pParam->cb     = sizeof(uint64_t);
    14371437        return sizeof(uint64_t);
     
    14411441        /* far 16:16 pointer */
    14421442        pParam->parval = DISReadDWord(pCpu, uCodePtr);
    1443         pParam->flags |= DISUSE_IMMEDIATE_ADDR_16_16;
     1443        pParam->fUse |= DISUSE_IMMEDIATE_ADDR_16_16;
    14441444        pParam->cb     = 2*sizeof(uint16_t);
    14451445        return sizeof(uint32_t);
     
    14531453     */
    14541454    pParam->uDisp.i16 = DISReadWord(pCpu, uCodePtr);
    1455     pParam->flags |= DISUSE_DISPLACEMENT16;
     1455    pParam->fUse |= DISUSE_DISPLACEMENT16;
    14561456    pParam->cb     = sizeof(uint16_t);
    14571457    return sizeof(uint16_t);
     
    15021502        pParam->parval = DISReadDWord(pCpu, uCodePtr);
    15031503        *((uint32_t*)&pParam->parval+1) = DISReadWord(pCpu, uCodePtr+sizeof(uint32_t));
    1504         pParam->flags  |= DISUSE_IMMEDIATE_ADDR_16_32;
     1504        pParam->fUse   |= DISUSE_IMMEDIATE_ADDR_16_32;
    15051505        pParam->cb     = sizeof(uint16_t) + sizeof(uint32_t);
    15061506        return sizeof(uint32_t) + sizeof(uint16_t);
     
    15091509    // far 16:16 pointer
    15101510    pParam->parval = DISReadDWord(pCpu, uCodePtr);
    1511     pParam->flags |= DISUSE_IMMEDIATE_ADDR_16_16;
     1511    pParam->fUse |= DISUSE_IMMEDIATE_ADDR_16_16;
    15121512    pParam->cb     = 2*sizeof(uint16_t);
    15131513    return sizeof(uint32_t);
     
    15601560            /* Use 32-bit registers. */
    15611561            pParam->base.reg_gen = pParam->param - OP_PARM_REG_GEN32_START;
    1562             pParam->flags |= DISUSE_REG_GEN32;
     1562            pParam->fUse |= DISUSE_REG_GEN32;
    15631563            pParam->cb     = 4;
    15641564        }
     
    15741574                pParam->base.reg_gen += 8;
    15751575
    1576             pParam->flags |= DISUSE_REG_GEN64;
     1576            pParam->fUse |= DISUSE_REG_GEN64;
    15771577            pParam->cb     = 8;
    15781578        }
     
    15811581            /* Use 16-bit registers. */
    15821582            pParam->base.reg_gen = pParam->param - OP_PARM_REG_GEN32_START;
    1583             pParam->flags |= DISUSE_REG_GEN16;
     1583            pParam->fUse |= DISUSE_REG_GEN16;
    15841584            pParam->cb     = 2;
    15851585            pParam->param = pParam->param - OP_PARM_REG_GEN32_START + OP_PARM_REG_GEN16_START;
     
    15911591        /* Segment ES..GS registers. */
    15921592        pParam->base.reg_seg = (DIS_SELREG)(pParam->param - OP_PARM_REG_SEG_START);
    1593         pParam->flags |= DISUSE_REG_SEG;
     1593        pParam->fUse |= DISUSE_REG_SEG;
    15941594        pParam->cb     = 2;
    15951595    }
     
    15991599        /* 16-bit AX..DI registers. */
    16001600        pParam->base.reg_gen = pParam->param - OP_PARM_REG_GEN16_START;
    1601         pParam->flags |= DISUSE_REG_GEN16;
     1601        pParam->fUse |= DISUSE_REG_GEN16;
    16021602        pParam->cb     = 2;
    16031603    }
     
    16071607        /* 8-bit AL..DL, AH..DH registers. */
    16081608        pParam->base.reg_gen = pParam->param - OP_PARM_REG_GEN8_START;
    1609         pParam->flags |= DISUSE_REG_GEN8;
     1609        pParam->fUse |= DISUSE_REG_GEN8;
    16101610        pParam->cb     = 1;
    16111611
     
    16241624        /* FPU registers. */
    16251625        pParam->base.reg_fp = pParam->param - OP_PARM_REG_FP_START;
    1626         pParam->flags |= DISUSE_REG_FP;
     1626        pParam->fUse |= DISUSE_REG_FP;
    16271627        pParam->cb     = 10;
    16281628    }
     
    16391639    NOREF(uCodePtr);
    16401640
    1641     pParam->flags |= DISUSE_POINTER_DS_BASED;
     1641    pParam->fUse |= DISUSE_POINTER_DS_BASED;
    16421642    if (pCpu->addrmode == DISCPUMODE_32BIT)
    16431643    {
    16441644        pParam->base.reg_gen = USE_REG_ESI;
    1645         pParam->flags |= DISUSE_REG_GEN32;
     1645        pParam->fUse |= DISUSE_REG_GEN32;
    16461646    }
    16471647    else
     
    16491649    {
    16501650        pParam->base.reg_gen = USE_REG_RSI;
    1651         pParam->flags |= DISUSE_REG_GEN64;
     1651        pParam->fUse |= DISUSE_REG_GEN64;
    16521652    }
    16531653    else
    16541654    {
    16551655        pParam->base.reg_gen = USE_REG_SI;
    1656         pParam->flags |= DISUSE_REG_GEN16;
     1656        pParam->fUse |= DISUSE_REG_GEN16;
    16571657    }
    16581658    return 0;   //no additional opcode bytes
     
    16641664    NOREF(uCodePtr); NOREF(pOp);
    16651665
    1666     pParam->flags |= DISUSE_POINTER_DS_BASED;
     1666    pParam->fUse |= DISUSE_POINTER_DS_BASED;
    16671667    if (pCpu->addrmode == DISCPUMODE_32BIT)
    16681668    {
    16691669        pParam->base.reg_gen = USE_REG_ESI;
    1670         pParam->flags |= DISUSE_REG_GEN32;
     1670        pParam->fUse |= DISUSE_REG_GEN32;
    16711671    }
    16721672    else
     
    16741674    {
    16751675        pParam->base.reg_gen = USE_REG_RSI;
    1676         pParam->flags |= DISUSE_REG_GEN64;
     1676        pParam->fUse |= DISUSE_REG_GEN64;
    16771677    }
    16781678    else
    16791679    {
    16801680        pParam->base.reg_gen = USE_REG_SI;
    1681         pParam->flags |= DISUSE_REG_GEN16;
     1681        pParam->fUse |= DISUSE_REG_GEN16;
    16821682    }
    16831683    return 0;   //no additional opcode bytes
     
    16891689    NOREF(uCodePtr);
    16901690
    1691     pParam->flags |= DISUSE_POINTER_ES_BASED;
     1691    pParam->fUse |= DISUSE_POINTER_ES_BASED;
    16921692    if (pCpu->addrmode == DISCPUMODE_32BIT)
    16931693    {
    16941694        pParam->base.reg_gen = USE_REG_EDI;
    1695         pParam->flags |= DISUSE_REG_GEN32;
     1695        pParam->fUse |= DISUSE_REG_GEN32;
    16961696    }
    16971697    else
     
    16991699    {
    17001700        pParam->base.reg_gen = USE_REG_RDI;
    1701         pParam->flags |= DISUSE_REG_GEN64;
     1701        pParam->fUse |= DISUSE_REG_GEN64;
    17021702    }
    17031703    else
    17041704    {
    17051705        pParam->base.reg_gen = USE_REG_DI;
    1706         pParam->flags |= DISUSE_REG_GEN16;
     1706        pParam->fUse |= DISUSE_REG_GEN16;
    17071707    }
    17081708    return 0;   //no additional opcode bytes
     
    17141714    NOREF(uCodePtr); NOREF(pOp);
    17151715
    1716     pParam->flags |= DISUSE_POINTER_ES_BASED;
     1716    pParam->fUse |= DISUSE_POINTER_ES_BASED;
    17171717    if (pCpu->addrmode == DISCPUMODE_32BIT)
    17181718    {
    17191719        pParam->base.reg_gen = USE_REG_EDI;
    1720         pParam->flags |= DISUSE_REG_GEN32;
     1720        pParam->fUse |= DISUSE_REG_GEN32;
    17211721    }
    17221722    else
     
    17241724    {
    17251725        pParam->base.reg_gen = USE_REG_RDI;
    1726         pParam->flags |= DISUSE_REG_GEN64;
     1726        pParam->fUse |= DISUSE_REG_GEN64;
    17271727    }
    17281728    else
    17291729    {
    17301730        pParam->base.reg_gen = USE_REG_DI;
    1731         pParam->flags |= DISUSE_REG_GEN16;
     1731        pParam->fUse |= DISUSE_REG_GEN16;
    17321732    }
    17331733    return 0;   //no additional opcode bytes
     
    23412341        }
    23422342
    2343         pParam->flags |= DISUSE_REG_GEN8;
     2343        pParam->fUse |= DISUSE_REG_GEN8;
    23442344        pParam->base.reg_gen = idx;
    23452345        break;
     
    23482348        Assert(idx < (pCpu->prefix & DISPREFIX_REX) ? 16 : 8);
    23492349
    2350         pParam->flags |= DISUSE_REG_GEN16;
     2350        pParam->fUse |= DISUSE_REG_GEN16;
    23512351        pParam->base.reg_gen = idx;
    23522352        break;
     
    23552355        Assert(idx < (pCpu->prefix & DISPREFIX_REX) ? 16 : 8);
    23562356
    2357         pParam->flags |= DISUSE_REG_GEN32;
     2357        pParam->fUse |= DISUSE_REG_GEN32;
    23582358        pParam->base.reg_gen = idx;
    23592359        break;
    23602360
    23612361    case OP_PARM_q:
    2362         pParam->flags |= DISUSE_REG_GEN64;
     2362        pParam->fUse |= DISUSE_REG_GEN64;
    23632363        pParam->base.reg_gen = idx;
    23642364        break;
     
    23752375{
    23762376    NOREF(pCpu); NOREF(pOp);
    2377     pParam->flags |= DISUSE_REG_GEN16;
     2377    pParam->fUse |= DISUSE_REG_GEN16;
    23782378    pParam->base.reg_gen = BaseModRMReg16[idx];
    23792379    if (idx < 4)
    23802380    {
    2381         pParam->flags |= DISUSE_INDEX;
     2381        pParam->fUse |= DISUSE_INDEX;
    23822382        pParam->index.reg_gen = IndexModRMReg16[idx];
    23832383    }
     
    23952395    }
    23962396
    2397     pParam->flags |= DISUSE_REG_SEG;
     2397    pParam->fUse |= DISUSE_REG_SEG;
    23982398    pParam->base.reg_seg = (DIS_SELREG)idx;
    23992399}
     
    26552655        case OP_XCHG:
    26562656        case OP_XOR:
    2657             if (pCpu->param1.flags & (DISUSE_BASE | DISUSE_INDEX | DISUSE_DISPLACEMENT64 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT8 | DISUSE_RIPDISPLACEMENT32))
     2657            if (pCpu->param1.fUse & (DISUSE_BASE | DISUSE_INDEX | DISUSE_DISPLACEMENT64 | DISUSE_DISPLACEMENT32
     2658                                     | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT8 | DISUSE_RIPDISPLACEMENT32))
    26582659                return;
    26592660            break;
  • trunk/src/VBox/Disassembler/DisasmFormatYasm.cpp

    r41676 r41678  
    9393static const char *disasmFormatYasmBaseReg(PCDISCPUSTATE pCpu, PCOP_PARAMETER pParam, size_t *pcchReg)
    9494{
    95     switch (pParam->flags & (  DISUSE_REG_GEN8 | DISUSE_REG_GEN16 | DISUSE_REG_GEN32 | DISUSE_REG_GEN64
    96                              | DISUSE_REG_FP   | DISUSE_REG_MMX   | DISUSE_REG_XMM   | DISUSE_REG_CR
    97                              | DISUSE_REG_DBG  | DISUSE_REG_SEG   | DISUSE_REG_TEST))
     95    switch (pParam->fUse & (  DISUSE_REG_GEN8 | DISUSE_REG_GEN16 | DISUSE_REG_GEN32 | DISUSE_REG_GEN64
     96                            | DISUSE_REG_FP   | DISUSE_REG_MMX   | DISUSE_REG_XMM   | DISUSE_REG_CR
     97                            | DISUSE_REG_DBG  | DISUSE_REG_SEG   | DISUSE_REG_TEST))
    9898
    9999    {
     
    187187
    188188        default:
    189             AssertMsgFailed(("%#x\n", pParam->flags));
     189            AssertMsgFailed(("%#x\n", pParam->fUse));
    190190            *pcchReg = 3;
    191191            return "r??";
     
    231231
    232232        default:
    233             AssertMsgFailed(("%#x %#x\n", pParam->flags, pCpu->addrmode));
     233            AssertMsgFailed(("%#x %#x\n", pParam->fUse, pCpu->addrmode));
    234234            *pcchReg = 3;
    235235            return "r??";
     
    591591                        break; \
    592592                    case OP_PARM_p: break; /* see PUT_FAR */ \
    593                     case OP_PARM_s: if (pParam->flags & DISUSE_REG_FP) PUT_SZ("tword "); break; /* ?? */ \
     593                    case OP_PARM_s: if (pParam->fUse & DISUSE_REG_FP) PUT_SZ("tword "); break; /* ?? */ \
    594594                    case OP_PARM_z: break; \
    595595                    case OP_PARM_NONE: \
    596596                        if (    OP_PARM_VTYPE(pParam->param) == OP_PARM_M \
    597                             &&  ((pParam->flags & DISUSE_REG_FP) || pOp->opcode == OP_FLD)) \
     597                            &&  ((pParam->fUse & DISUSE_REG_FP) || pOp->opcode == OP_FLD)) \
    598598                            PUT_SZ("tword "); \
    599599                        break; \
     
    613613         */
    614614        if (    (pCpu->prefix & DISPREFIX_SEG)
    615             &&  !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param1.flags)
    616             &&  !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param2.flags)
    617             &&  !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param3.flags))
     615            &&  !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param1.fUse)
     616            &&  !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param2.fUse)
     617            &&  !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param3.fUse))
    618618        {
    619619            PUT_STR(s_szSegPrefix[pCpu->enmPrefixSeg], 2);
     
    647647                    {
    648648                        pszFmt += RT_C_IS_ALPHA(pszFmt[0]) ? RT_C_IS_ALPHA(pszFmt[1]) ? 2 : 1 : 0;
    649                         Assert(!(pParam->flags & (DISUSE_INDEX | DISUSE_SCALE) /* No SIB here... */));
    650                         Assert(!(pParam->flags & (DISUSE_DISPLACEMENT8 | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT64 | DISUSE_RIPDISPLACEMENT32)));
     649                        Assert(!(pParam->fUse & (DISUSE_INDEX | DISUSE_SCALE) /* No SIB here... */));
     650                        Assert(!(pParam->fUse & (DISUSE_DISPLACEMENT8 | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT64 | DISUSE_RIPDISPLACEMENT32)));
    651651
    652652                        size_t cchReg;
     
    668668
    669669                        PUT_FAR();
    670                         if (DISUSE_IS_EFFECTIVE_ADDR(pParam->flags))
     670                        if (DISUSE_IS_EFFECTIVE_ADDR(pParam->fUse))
    671671                        {
    672672                            /* Work around mov seg,[mem16]  and mov [mem16],seg as these always make a 16-bit mem
     
    680680                        }
    681681                        if (    (fFlags & DIS_FMT_FLAGS_STRICT)
    682                             &&  (pParam->flags & (DISUSE_DISPLACEMENT8 | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT64 | DISUSE_RIPDISPLACEMENT32)))
     682                            &&  (pParam->fUse & (DISUSE_DISPLACEMENT8 | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT64 | DISUSE_RIPDISPLACEMENT32)))
    683683                        {
    684                             if (   (pParam->flags & DISUSE_DISPLACEMENT8)
     684                            if (   (pParam->fUse & DISUSE_DISPLACEMENT8)
    685685                                && !pParam->uDisp.i8)
    686686                                PUT_SZ("byte ");
    687                             else if (   (pParam->flags & DISUSE_DISPLACEMENT16)
     687                            else if (   (pParam->fUse & DISUSE_DISPLACEMENT16)
    688688                                     && (int8_t)pParam->uDisp.i16 == (int16_t)pParam->uDisp.i16)
    689689                                PUT_SZ("word ");
    690                             else if (   (pParam->flags & DISUSE_DISPLACEMENT32)
     690                            else if (   (pParam->fUse & DISUSE_DISPLACEMENT32)
    691691                                     && (int16_t)pParam->uDisp.i32 == (int32_t)pParam->uDisp.i32) //??
    692692                                PUT_SZ("dword ");
    693                             else if (   (pParam->flags & DISUSE_DISPLACEMENT64)
     693                            else if (   (pParam->fUse & DISUSE_DISPLACEMENT64)
    694694                                     && (pCpu->SIB.Bits.Base != 5 || pCpu->ModRM.Bits.Mod != 0)
    695695                                     && (int32_t)pParam->uDisp.i64 == (int64_t)pParam->uDisp.i64) //??
    696696                                PUT_SZ("qword ");
    697697                        }
    698                         if (DISUSE_IS_EFFECTIVE_ADDR(pParam->flags))
     698                        if (DISUSE_IS_EFFECTIVE_ADDR(pParam->fUse))
    699699                            PUT_SEGMENT_OVERRIDE();
    700700
    701                         bool fBase =  (pParam->flags & DISUSE_BASE) /* When exactly is DISUSE_BASE supposed to be set? disasmModRMReg doesn't set it. */
    702                                    || (   (pParam->flags & (DISUSE_REG_GEN8 | DISUSE_REG_GEN16 | DISUSE_REG_GEN32 | DISUSE_REG_GEN64))
    703                                        && !DISUSE_IS_EFFECTIVE_ADDR(pParam->flags));
     701                        bool fBase =  (pParam->fUse & DISUSE_BASE) /* When exactly is DISUSE_BASE supposed to be set? disasmModRMReg doesn't set it. */
     702                                   || (   (pParam->fUse & (DISUSE_REG_GEN8 | DISUSE_REG_GEN16 | DISUSE_REG_GEN32 | DISUSE_REG_GEN64))
     703                                       && !DISUSE_IS_EFFECTIVE_ADDR(pParam->fUse));
    704704                        if (fBase)
    705705                        {
     
    709709                        }
    710710
    711                         if (pParam->flags & DISUSE_INDEX)
     711                        if (pParam->fUse & DISUSE_INDEX)
    712712                        {
    713713                            if (fBase)
     
    718718                            PUT_STR(pszReg, cchReg);
    719719
    720                             if (pParam->flags & DISUSE_SCALE)
     720                            if (pParam->fUse & DISUSE_SCALE)
    721721                            {
    722722                                PUT_C('*');
     
    725725                        }
    726726                        else
    727                             Assert(!(pParam->flags & DISUSE_SCALE));
    728 
    729                         if (pParam->flags & (DISUSE_DISPLACEMENT8 | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT64 | DISUSE_RIPDISPLACEMENT32))
     727                            Assert(!(pParam->fUse & DISUSE_SCALE));
     728
     729                        if (pParam->fUse & (DISUSE_DISPLACEMENT8 | DISUSE_DISPLACEMENT16 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT64 | DISUSE_RIPDISPLACEMENT32))
    730730                        {
    731731                            int64_t off2;
    732                             if (pParam->flags & DISUSE_DISPLACEMENT8)
     732                            if (pParam->fUse & DISUSE_DISPLACEMENT8)
    733733                                off2 = pParam->uDisp.i8;
    734                             else if (pParam->flags & DISUSE_DISPLACEMENT16)
     734                            else if (pParam->fUse & DISUSE_DISPLACEMENT16)
    735735                                off2 = pParam->uDisp.i16;
    736                             else if (pParam->flags & (DISUSE_DISPLACEMENT32 | DISUSE_RIPDISPLACEMENT32))
     736                            else if (pParam->fUse & (DISUSE_DISPLACEMENT32 | DISUSE_RIPDISPLACEMENT32))
    737737                                off2 = pParam->uDisp.i32;
    738                             else if (pParam->flags & DISUSE_DISPLACEMENT64)
     738                            else if (pParam->fUse & DISUSE_DISPLACEMENT64)
    739739                                off2 = pParam->uDisp.i64;
    740740                            else
     
    744744                            }
    745745
    746                             if (fBase || (pParam->flags & DISUSE_INDEX))
     746                            if (fBase || (pParam->fUse & DISUSE_INDEX))
    747747                            {
    748748                                PUT_C(off2 >= 0 ? '+' : '-');
     
    750750                                    off2 = -off2;
    751751                            }
    752                             if (pParam->flags & DISUSE_DISPLACEMENT8)
     752                            if (pParam->fUse & DISUSE_DISPLACEMENT8)
    753753                                PUT_NUM_8( off2);
    754                             else if (pParam->flags & DISUSE_DISPLACEMENT16)
     754                            else if (pParam->fUse & DISUSE_DISPLACEMENT16)
    755755                                PUT_NUM_16(off2);
    756                             else if (pParam->flags & DISUSE_DISPLACEMENT32)
     756                            else if (pParam->fUse & DISUSE_DISPLACEMENT32)
    757757                                PUT_NUM_32(off2);
    758                             else if (pParam->flags & DISUSE_DISPLACEMENT64)
     758                            else if (pParam->fUse & DISUSE_DISPLACEMENT64)
    759759                                PUT_NUM_64(off2);
    760760                            else
     
    765765                        }
    766766
    767                         if (DISUSE_IS_EFFECTIVE_ADDR(pParam->flags))
     767                        if (DISUSE_IS_EFFECTIVE_ADDR(pParam->fUse))
    768768                            PUT_C(']');
    769769                        break;
     
    776776                    case 'I': /* Immediate data (ParseImmByte, ParseImmByteSX, ParseImmV, ParseImmUshort, ParseImmZ). */
    777777                        Assert(*pszFmt == 'b' || *pszFmt == 'v' || *pszFmt == 'w' || *pszFmt == 'z'); pszFmt++;
    778                         switch (pParam->flags & (  DISUSE_IMMEDIATE8 | DISUSE_IMMEDIATE16 | DISUSE_IMMEDIATE32 | DISUSE_IMMEDIATE64
    779                                                  | DISUSE_IMMEDIATE16_SX8 | DISUSE_IMMEDIATE32_SX8 | DISUSE_IMMEDIATE64_SX8))
     778                        switch (pParam->fUse & (  DISUSE_IMMEDIATE8 | DISUSE_IMMEDIATE16 | DISUSE_IMMEDIATE32 | DISUSE_IMMEDIATE64
     779                                                | DISUSE_IMMEDIATE16_SX8 | DISUSE_IMMEDIATE32_SX8 | DISUSE_IMMEDIATE64_SX8))
    780780                        {
    781781                            case DISUSE_IMMEDIATE8:
     
    862862                            fFlags &= ~DIS_FMT_FLAGS_RELATIVE_BRANCH;
    863863
    864                         if (pParam->flags & DISUSE_IMMEDIATE8_REL)
     864                        if (pParam->fUse & DISUSE_IMMEDIATE8_REL)
    865865                        {
    866866                            if (fPrefix)
     
    872872                                PUT_NUM_S8(offDisplacement);
    873873                        }
    874                         else if (pParam->flags & DISUSE_IMMEDIATE16_REL)
     874                        else if (pParam->fUse & DISUSE_IMMEDIATE16_REL)
    875875                        {
    876876                            if (fPrefix)
     
    887887                                PUT_SZ("near ");
    888888                            offDisplacement = (int32_t)pParam->parval;
    889                             Assert(pParam->flags & (DISUSE_IMMEDIATE32_REL|DISUSE_IMMEDIATE64_REL));
     889                            Assert(pParam->fUse & (DISUSE_IMMEDIATE32_REL|DISUSE_IMMEDIATE64_REL));
    890890                            Assert(*pszFmt == 'v'); pszFmt++;
    891891
     
    938938                        PUT_SEGMENT_OVERRIDE();
    939939                        int rc = VERR_SYMBOL_NOT_FOUND;
    940                         switch (pParam->flags & (DISUSE_IMMEDIATE_ADDR_16_16 | DISUSE_IMMEDIATE_ADDR_16_32 | DISUSE_DISPLACEMENT64 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT16))
     940                        switch (pParam->fUse & (DISUSE_IMMEDIATE_ADDR_16_16 | DISUSE_IMMEDIATE_ADDR_16_32 | DISUSE_DISPLACEMENT64 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT16))
    941941                        {
    942942                            case DISUSE_IMMEDIATE_ADDR_16_16:
     
    10021002                        PUT_SEGMENT_OVERRIDE();
    10031003                        int rc = VERR_SYMBOL_NOT_FOUND;
    1004                         switch (pParam->flags & (DISUSE_IMMEDIATE_ADDR_16_16 | DISUSE_IMMEDIATE_ADDR_16_32 | DISUSE_DISPLACEMENT64 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT16))
     1004                        switch (pParam->fUse & (DISUSE_IMMEDIATE_ADDR_16_16 | DISUSE_IMMEDIATE_ADDR_16_32 | DISUSE_DISPLACEMENT64 | DISUSE_DISPLACEMENT32 | DISUSE_DISPLACEMENT16))
    10051005                        {
    10061006                            case DISUSE_IMMEDIATE_ADDR_16_16:
     
    10661066                        PUT_SIZE_OVERRIDE();
    10671067                        PUT_C('[');
    1068                         if (pParam->flags & DISUSE_POINTER_DS_BASED)
     1068                        if (pParam->fUse & DISUSE_POINTER_DS_BASED)
    10691069                            PUT_SZ("ds:");
    10701070                        else
     
    12811281        /* no effective address which it may apply to. */
    12821282        Assert((pCpu->prefix & DISPREFIX_SEG) || pCpu->mode == DISCPUMODE_64BIT);
    1283         if (    !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param1.flags)
    1284             &&  !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param2.flags)
    1285             &&  !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param3.flags))
     1283        if (    !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param1.fUse)
     1284            &&  !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param2.fUse)
     1285            &&  !DISUSE_IS_EFFECTIVE_ADDR(pCpu->param3.fUse))
    12861286            return true;
    12871287    }
  • trunk/src/VBox/Disassembler/DisasmReg.cpp

    r41676 r41678  
    268268    {
    269269        /* Guess segment register by parameter type. */
    270         if (pParam->flags & (DISUSE_REG_GEN32|DISUSE_REG_GEN64|DISUSE_REG_GEN16))
     270        if (pParam->fUse & (DISUSE_REG_GEN32|DISUSE_REG_GEN64|DISUSE_REG_GEN16))
    271271        {
    272272            AssertCompile(USE_REG_ESP == USE_REG_RSP);
     
    509509    memset(pParamVal, 0, sizeof(*pParamVal));
    510510
    511     if (DISUSE_IS_EFFECTIVE_ADDR(pParam->flags))
     511    if (DISUSE_IS_EFFECTIVE_ADDR(pParam->fUse))
    512512    {
    513513        // Effective address
     
    515515        pParamVal->size = pParam->cb;
    516516
    517         if (pParam->flags & DISUSE_BASE)
    518         {
    519             if (pParam->flags & DISUSE_REG_GEN8)
     517        if (pParam->fUse & DISUSE_BASE)
     518        {
     519            if (pParam->fUse & DISUSE_REG_GEN8)
    520520            {
    521521                pParamVal->flags |= PARAM_VAL8;
     
    523523            }
    524524            else
    525             if (pParam->flags & DISUSE_REG_GEN16)
     525            if (pParam->fUse & DISUSE_REG_GEN16)
    526526            {
    527527                pParamVal->flags |= PARAM_VAL16;
     
    529529            }
    530530            else
    531             if (pParam->flags & DISUSE_REG_GEN32)
     531            if (pParam->fUse & DISUSE_REG_GEN32)
    532532            {
    533533                pParamVal->flags |= PARAM_VAL32;
     
    535535            }
    536536            else
    537             if (pParam->flags & DISUSE_REG_GEN64)
     537            if (pParam->fUse & DISUSE_REG_GEN64)
    538538            {
    539539                pParamVal->flags |= PARAM_VAL64;
     
    547547        }
    548548        // Note that scale implies index (SIB byte)
    549         if (pParam->flags & DISUSE_INDEX)
    550         {
    551             if (pParam->flags & DISUSE_REG_GEN16)
     549        if (pParam->fUse & DISUSE_INDEX)
     550        {
     551            if (pParam->fUse & DISUSE_REG_GEN16)
    552552            {
    553553                uint16_t val16;
     
    556556                if (RT_FAILURE(DISFetchReg16(pCtx, pParam->index.reg_gen, &val16))) return VERR_INVALID_PARAMETER;
    557557
    558                 Assert(!(pParam->flags & DISUSE_SCALE));   /* shouldn't be possible in 16 bits mode */
     558                Assert(!(pParam->fUse & DISUSE_SCALE));   /* shouldn't be possible in 16 bits mode */
    559559
    560560                pParamVal->val.val16 += val16;
    561561            }
    562562            else
    563             if (pParam->flags & DISUSE_REG_GEN32)
     563            if (pParam->fUse & DISUSE_REG_GEN32)
    564564            {
    565565                uint32_t val32;
     
    568568                if (RT_FAILURE(DISFetchReg32(pCtx, pParam->index.reg_gen, &val32))) return VERR_INVALID_PARAMETER;
    569569
    570                 if (pParam->flags & DISUSE_SCALE)
     570                if (pParam->fUse & DISUSE_SCALE)
    571571                    val32 *= pParam->scale;
    572572
     
    574574            }
    575575            else
    576             if (pParam->flags & DISUSE_REG_GEN64)
     576            if (pParam->fUse & DISUSE_REG_GEN64)
    577577            {
    578578                uint64_t val64;
     
    581581                if (RT_FAILURE(DISFetchReg64(pCtx, pParam->index.reg_gen, &val64))) return VERR_INVALID_PARAMETER;
    582582
    583                 if (pParam->flags & DISUSE_SCALE)
     583                if (pParam->fUse & DISUSE_SCALE)
    584584                    val64 *= pParam->scale;
    585585
     
    590590        }
    591591
    592         if (pParam->flags & DISUSE_DISPLACEMENT8)
     592        if (pParam->fUse & DISUSE_DISPLACEMENT8)
    593593        {
    594594            if (pCpu->mode == DISCPUMODE_32BIT)
     
    601601        }
    602602        else
    603         if (pParam->flags & DISUSE_DISPLACEMENT16)
     603        if (pParam->fUse & DISUSE_DISPLACEMENT16)
    604604        {
    605605            if (pCpu->mode == DISCPUMODE_32BIT)
     
    612612        }
    613613        else
    614         if (pParam->flags & DISUSE_DISPLACEMENT32)
     614        if (pParam->fUse & DISUSE_DISPLACEMENT32)
    615615        {
    616616            if (pCpu->mode == DISCPUMODE_32BIT)
     
    620620        }
    621621        else
    622         if (pParam->flags & DISUSE_DISPLACEMENT64)
     622        if (pParam->fUse & DISUSE_DISPLACEMENT64)
    623623        {
    624624            Assert(pCpu->mode == DISCPUMODE_64BIT);
     
    626626        }
    627627        else
    628         if (pParam->flags & DISUSE_RIPDISPLACEMENT32)
     628        if (pParam->fUse & DISUSE_RIPDISPLACEMENT32)
    629629        {
    630630            Assert(pCpu->mode == DISCPUMODE_64BIT);
     
    635635    }
    636636
    637     if (pParam->flags & (DISUSE_REG_GEN8|DISUSE_REG_GEN16|DISUSE_REG_GEN32|DISUSE_REG_GEN64|DISUSE_REG_FP|DISUSE_REG_MMX|DISUSE_REG_XMM|DISUSE_REG_CR|DISUSE_REG_DBG|DISUSE_REG_SEG|DISUSE_REG_TEST))
     637    if (pParam->fUse & (DISUSE_REG_GEN8|DISUSE_REG_GEN16|DISUSE_REG_GEN32|DISUSE_REG_GEN64|DISUSE_REG_FP|DISUSE_REG_MMX|DISUSE_REG_XMM|DISUSE_REG_CR|DISUSE_REG_DBG|DISUSE_REG_SEG|DISUSE_REG_TEST))
    638638    {
    639639        if (parmtype == PARAM_DEST)
     
    648648        pParamVal->type = PARMTYPE_IMMEDIATE;
    649649
    650         if (pParam->flags & DISUSE_REG_GEN8)
     650        if (pParam->fUse & DISUSE_REG_GEN8)
    651651        {
    652652            pParamVal->flags |= PARAM_VAL8;
     
    655655        }
    656656        else
    657         if (pParam->flags & DISUSE_REG_GEN16)
     657        if (pParam->fUse & DISUSE_REG_GEN16)
    658658        {
    659659            pParamVal->flags |= PARAM_VAL16;
     
    662662        }
    663663        else
    664         if (pParam->flags & DISUSE_REG_GEN32)
     664        if (pParam->fUse & DISUSE_REG_GEN32)
    665665        {
    666666            pParamVal->flags |= PARAM_VAL32;
     
    669669        }
    670670        else
    671         if (pParam->flags & DISUSE_REG_GEN64)
     671        if (pParam->fUse & DISUSE_REG_GEN64)
    672672        {
    673673            pParamVal->flags |= PARAM_VAL64;
     
    680680            pParamVal->type = PARMTYPE_REGISTER;
    681681        }
    682         Assert(!(pParam->flags & DISUSE_IMMEDIATE));
     682        Assert(!(pParam->fUse & DISUSE_IMMEDIATE));
    683683        return VINF_SUCCESS;
    684684    }
    685685
    686     if (pParam->flags & DISUSE_IMMEDIATE)
     686    if (pParam->fUse & DISUSE_IMMEDIATE)
    687687    {
    688688        pParamVal->type = PARMTYPE_IMMEDIATE;
    689         if (pParam->flags & (DISUSE_IMMEDIATE8|DISUSE_IMMEDIATE8_REL))
     689        if (pParam->fUse & (DISUSE_IMMEDIATE8|DISUSE_IMMEDIATE8_REL))
    690690        {
    691691            pParamVal->flags |= PARAM_VAL8;
     
    702702        }
    703703        else
    704         if (pParam->flags & (DISUSE_IMMEDIATE16|DISUSE_IMMEDIATE16_REL|DISUSE_IMMEDIATE_ADDR_0_16|DISUSE_IMMEDIATE16_SX8))
     704        if (pParam->fUse & (DISUSE_IMMEDIATE16|DISUSE_IMMEDIATE16_REL|DISUSE_IMMEDIATE_ADDR_0_16|DISUSE_IMMEDIATE16_SX8))
    705705        {
    706706            pParamVal->flags |= PARAM_VAL16;
    707707            pParamVal->size   = sizeof(uint16_t);
    708708            pParamVal->val.val16 = (uint16_t)pParam->parval;
    709             AssertMsg(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->flags & DISUSE_IMMEDIATE16_SX8)), ("pParamVal->size %d vs %d EIP=%RX32\n", pParamVal->size, pParam->cb, pCtx->eip) );
    710         }
    711         else
    712         if (pParam->flags & (DISUSE_IMMEDIATE32|DISUSE_IMMEDIATE32_REL|DISUSE_IMMEDIATE_ADDR_0_32|DISUSE_IMMEDIATE32_SX8))
     709            AssertMsg(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->fUse & DISUSE_IMMEDIATE16_SX8)), ("pParamVal->size %d vs %d EIP=%RX32\n", pParamVal->size, pParam->cb, pCtx->eip) );
     710        }
     711        else
     712        if (pParam->fUse & (DISUSE_IMMEDIATE32|DISUSE_IMMEDIATE32_REL|DISUSE_IMMEDIATE_ADDR_0_32|DISUSE_IMMEDIATE32_SX8))
    713713        {
    714714            pParamVal->flags |= PARAM_VAL32;
    715715            pParamVal->size   = sizeof(uint32_t);
    716716            pParamVal->val.val32 = (uint32_t)pParam->parval;
    717             Assert(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->flags & DISUSE_IMMEDIATE32_SX8)) );
    718         }
    719         else
    720         if (pParam->flags & (DISUSE_IMMEDIATE64 | DISUSE_IMMEDIATE64_REL | DISUSE_IMMEDIATE64_SX8))
     717            Assert(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->fUse & DISUSE_IMMEDIATE32_SX8)) );
     718        }
     719        else
     720        if (pParam->fUse & (DISUSE_IMMEDIATE64 | DISUSE_IMMEDIATE64_REL | DISUSE_IMMEDIATE64_SX8))
    721721        {
    722722            pParamVal->flags |= PARAM_VAL64;
    723723            pParamVal->size   = sizeof(uint64_t);
    724724            pParamVal->val.val64 = pParam->parval;
    725             Assert(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->flags & DISUSE_IMMEDIATE64_SX8)) );
    726         }
    727         else
    728         if (pParam->flags & (DISUSE_IMMEDIATE_ADDR_16_16))
     725            Assert(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->fUse & DISUSE_IMMEDIATE64_SX8)) );
     726        }
     727        else
     728        if (pParam->fUse & (DISUSE_IMMEDIATE_ADDR_16_16))
    729729        {
    730730            pParamVal->flags |= PARAM_VALFARPTR16;
     
    735735        }
    736736        else
    737         if (pParam->flags & (DISUSE_IMMEDIATE_ADDR_16_32))
     737        if (pParam->fUse & (DISUSE_IMMEDIATE_ADDR_16_32))
    738738        {
    739739            pParamVal->flags |= PARAM_VALFARPTR32;
     
    767767{
    768768    NOREF(pCpu);
    769     if (pParam->flags & (DISUSE_REG_GEN8|DISUSE_REG_GEN16|DISUSE_REG_GEN32|DISUSE_REG_FP|DISUSE_REG_MMX|DISUSE_REG_XMM|DISUSE_REG_CR|DISUSE_REG_DBG|DISUSE_REG_SEG|DISUSE_REG_TEST))
     769    if (pParam->fUse & (DISUSE_REG_GEN8|DISUSE_REG_GEN16|DISUSE_REG_GEN32|DISUSE_REG_FP|DISUSE_REG_MMX|DISUSE_REG_XMM|DISUSE_REG_CR|DISUSE_REG_DBG|DISUSE_REG_SEG|DISUSE_REG_TEST))
    770770    {
    771         if (pParam->flags & DISUSE_REG_GEN8)
     771        if (pParam->fUse & DISUSE_REG_GEN8)
    772772        {
    773773            uint8_t *pu8Reg;
     
    780780        }
    781781        else
    782         if (pParam->flags & DISUSE_REG_GEN16)
     782        if (pParam->fUse & DISUSE_REG_GEN16)
    783783        {
    784784            uint16_t *pu16Reg;
     
    791791        }
    792792        else
    793         if (pParam->flags & DISUSE_REG_GEN32)
     793        if (pParam->fUse & DISUSE_REG_GEN32)
    794794        {
    795795            uint32_t *pu32Reg;
     
    802802        }
    803803        else
    804         if (pParam->flags & DISUSE_REG_GEN64)
     804        if (pParam->fUse & DISUSE_REG_GEN64)
    805805        {
    806806            uint64_t *pu64Reg;
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