VirtualBox

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


Ignore:
Timestamp:
Jun 15, 2012 1:25:47 AM (12 years ago)
Author:
vboxsync
Message:

DISOPCODE: s/optype/fOpType/ s/param/fParam/ docs

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

Legend:

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

    r41737 r41738  
    358358            // segment override prefix byte
    359359            case OP_SEG:
    360                 pCpu->idxSegPrefix = (DISSELREG)(paOneByteMap[codebyte].param1 - OP_PARM_REG_SEG_START);
     360                pCpu->idxSegPrefix = (DISSELREG)(paOneByteMap[codebyte].fParam1 - OP_PARM_REG_SEG_START);
    361361                /* Segment prefixes for CS, DS, ES and SS are ignored in long mode. */
    362362                if (   pCpu->uCpuMode != DISCPUMODE_64BIT
     
    414414                /* REX prefix byte */
    415415                pCpu->fPrefix   |= DISPREFIX_REX;
    416                 pCpu->fRexPrefix = DISPREFIX_REX_OP_2_FLAGS(paOneByteMap[codebyte].param1);
     416                pCpu->fRexPrefix = DISPREFIX_REX_OP_2_FLAGS(paOneByteMap[codebyte].fParam1);
    417417                iByte           += sizeof(uint8_t);
    418418
     
    459459     * Note! Multibyte opcodes are always marked harmless until the final byte.
    460460     */
    461     if ((pOp->optype & pCpu->fFilter) == 0)
     461    if ((pOp->fOpType & pCpu->fFilter) == 0)
    462462    {
    463463        fFiltered = true;
     
    471471
    472472    // Should contain the parameter type on input
    473     pCpu->param1.param = pOp->param1;
    474     pCpu->param2.param = pOp->param2;
    475     pCpu->param3.param = pOp->param3;
     473    pCpu->param1.param = pOp->fParam1;
     474    pCpu->param2.param = pOp->fParam2;
     475    pCpu->param3.param = pOp->fParam3;
    476476
    477477    /* Correct the operand size if the instruction is marked as forced or default 64 bits */
    478478    if (pCpu->uCpuMode == DISCPUMODE_64BIT)
    479479    {
    480         if (pOp->optype & DISOPTYPE_FORCED_64_OP_SIZE)
     480        if (pOp->fOpType & DISOPTYPE_FORCED_64_OP_SIZE)
    481481            pCpu->uOpMode = DISCPUMODE_64BIT;
    482482        else
    483         if (    (pOp->optype & DISOPTYPE_DEFAULT_64_OP_SIZE)
     483        if (    (pOp->fOpType & DISOPTYPE_DEFAULT_64_OP_SIZE)
    484484            &&  !(pCpu->fPrefix & DISPREFIX_OPSIZE))
    485485            pCpu->uOpMode = DISCPUMODE_64BIT;
    486486    }
    487487    else
    488     if (pOp->optype & DISOPTYPE_FORCED_32_OP_SIZE_X86)
     488    if (pOp->fOpType & DISOPTYPE_FORCED_32_OP_SIZE_X86)
    489489    {
    490490        /* Forced 32 bits operand size for certain instructions (mov crx, mov drx). */
     
    534534
    535535        // Should contain the parameter type on input
    536         pCpu->param1.param = fpop->param1;
    537         pCpu->param2.param = fpop->param2;
     536        pCpu->param1.param = fpop->fParam1;
     537        pCpu->param2.param = fpop->fParam2;
    538538    }
    539539    else
     
    547547     * @note Multibyte opcodes are always marked harmless until the final byte.
    548548     */
    549     if ((fpop->optype & pCpu->fFilter) == 0)
     549    if ((fpop->fOpType & pCpu->fFilter) == 0)
    550550        pCpu->pfnDisasmFnTable = g_apfnCalcSize;
    551551    else
     
    557557    {
    558558        /* Note: redundant, but just in case this ever changes */
    559         if (fpop->optype & DISOPTYPE_FORCED_64_OP_SIZE)
     559        if (fpop->fOpType & DISOPTYPE_FORCED_64_OP_SIZE)
    560560            pCpu->uOpMode = DISCPUMODE_64BIT;
    561561        else
    562         if (    (fpop->optype & DISOPTYPE_DEFAULT_64_OP_SIZE)
     562        if (    (fpop->fOpType & DISOPTYPE_DEFAULT_64_OP_SIZE)
    563563            &&  !(pCpu->fPrefix & DISPREFIX_OPSIZE))
    564564            pCpu->uOpMode = DISCPUMODE_64BIT;
     
    10771077     * encoding of the MOD field in the MODR/M byte.
    10781078     */
    1079     if (pOp->optype & DISOPTYPE_MOD_FIXED_11)
     1079    if (pOp->fOpType & DISOPTYPE_MOD_FIXED_11)
    10801080        pCpu->ModRM.Bits.Mod = 3;
    10811081
     
    11231123     * encoding of the MOD field in the MODR/M byte.
    11241124     */
    1125     if (pOp->optype & DISOPTYPE_MOD_FIXED_11)
     1125    if (pOp->fOpType & DISOPTYPE_MOD_FIXED_11)
    11261126        pCpu->ModRM.Bits.Mod = 3;
    11271127
     
    15681568            /* Use 64-bit registers. */
    15691569            pParam->base.reg_gen = pParam->param - OP_PARM_REG_GEN32_START;
    1570             if (    (pOp->optype & DISOPTYPE_REXB_EXTENDS_OPREG)
     1570            if (    (pOp->fOpType & DISOPTYPE_REXB_EXTENDS_OPREG)
    15711571                &&  pParam == &pCpu->param1             /* ugly assumption that it only applies to the first parameter */
    15721572                &&  (pCpu->fPrefix & DISPREFIX_REX)
     
    16121612        if (pCpu->uOpMode == DISCPUMODE_64BIT)
    16131613        {
    1614             if (    (pOp->optype & DISOPTYPE_REXB_EXTENDS_OPREG)
     1614            if (    (pOp->fOpType & DISOPTYPE_REXB_EXTENDS_OPREG)
    16151615                &&  pParam == &pCpu->param1             /* ugly assumption that it only applies to the first parameter */
    16161616                &&  (pCpu->fPrefix & DISPREFIX_REX)
  • trunk/src/VBox/Disassembler/DisasmFormatYasm.cpp

    r41737 r41738  
    675675                            if (    pParam->param != OP_PARM_Ev
    676676                                ||  pOp->uOpcode != OP_MOV
    677                                 ||  (   pOp->param1 != OP_PARM_Sw
    678                                      && pOp->param2 != OP_PARM_Sw))
     677                                ||  (   pOp->fParam1 != OP_PARM_Sw
     678                                     && pOp->fParam2 != OP_PARM_Sw))
    679679                                PUT_SIZE_OVERRIDE();
    680680                            PUT_C('[');
     
    792792                            case DISUSE_IMMEDIATE8:
    793793                                if (    (fFlags & DIS_FMT_FLAGS_STRICT)
    794                                     &&  (   (pOp->param1 >= OP_PARM_REG_GEN8_START && pOp->param1 <= OP_PARM_REG_GEN8_END)
    795                                          || (pOp->param2 >= OP_PARM_REG_GEN8_START && pOp->param2 <= OP_PARM_REG_GEN8_END))
     794                                    &&  (   (pOp->fParam1 >= OP_PARM_REG_GEN8_START && pOp->fParam1 <= OP_PARM_REG_GEN8_END)
     795                                         || (pOp->fParam2 >= OP_PARM_REG_GEN8_START && pOp->fParam2 <= OP_PARM_REG_GEN8_END))
    796796                                   )
    797797                                    PUT_SZ("strict byte ");
     
    803803                                    ||  (   (fFlags & DIS_FMT_FLAGS_STRICT)
    804804                                         && (   (int8_t)pParam->parval == (int16_t)pParam->parval
    805                                              || (pOp->param1 >= OP_PARM_REG_GEN16_START && pOp->param1 <= OP_PARM_REG_GEN16_END)
    806                                              || (pOp->param2 >= OP_PARM_REG_GEN16_START && pOp->param2 <= OP_PARM_REG_GEN16_END))
     805                                             || (pOp->fParam1 >= OP_PARM_REG_GEN16_START && pOp->fParam1 <= OP_PARM_REG_GEN16_END)
     806                                             || (pOp->fParam2 >= OP_PARM_REG_GEN16_START && pOp->fParam2 <= OP_PARM_REG_GEN16_END))
    807807                                        )
    808808                                   )
     
    826826                                    ||  (   (fFlags & DIS_FMT_FLAGS_STRICT)
    827827                                         && (   (int8_t)pParam->parval == (int32_t)pParam->parval
    828                                              || (pOp->param1 >= OP_PARM_REG_GEN32_START && pOp->param1 <= OP_PARM_REG_GEN32_END)
    829                                              || (pOp->param2 >= OP_PARM_REG_GEN32_START && pOp->param2 <= OP_PARM_REG_GEN32_END))
     828                                             || (pOp->fParam1 >= OP_PARM_REG_GEN32_START && pOp->fParam1 <= OP_PARM_REG_GEN32_END)
     829                                             || (pOp->fParam2 >= OP_PARM_REG_GEN32_START && pOp->fParam2 <= OP_PARM_REG_GEN32_END))
    830830                                        )
    831831                                    )
     
    13021302    {
    13031303        Assert(pCpu->fPrefix & DISPREFIX_ADDRSIZE);
    1304         if (    pCpu->pCurInstr->param3 == OP_PARM_NONE
    1305             &&  pCpu->pCurInstr->param2 == OP_PARM_NONE
    1306             &&  (   pCpu->pCurInstr->param1 >= OP_PARM_REG_GEN32_START
    1307                  && pCpu->pCurInstr->param1 <= OP_PARM_REG_GEN32_END))
     1304        if (    pCpu->pCurInstr->fParam3 == OP_PARM_NONE
     1305            &&  pCpu->pCurInstr->fParam2 == OP_PARM_NONE
     1306            &&  (   pCpu->pCurInstr->fParam1 >= OP_PARM_REG_GEN32_START
     1307                 && pCpu->pCurInstr->fParam1 <= OP_PARM_REG_GEN32_END))
    13081308            return true;
    13091309    }
     
    13191319
    13201320            case OP_JMP:
    1321                 if (    pCpu->pCurInstr->param1 != OP_PARM_Jb
    1322                     &&  pCpu->pCurInstr->param1 != OP_PARM_Jv)
     1321                if (    pCpu->pCurInstr->fParam1 != OP_PARM_Jb
     1322                    &&  pCpu->pCurInstr->fParam1 != OP_PARM_Jv)
    13231323                    break;
    13241324                /* fall thru */
     
    13521352            case OP_POP:
    13531353            case OP_PUSH:
    1354                 if (    pCpu->pCurInstr->param1 >= OP_PARM_REG_SEG_START
    1355                     &&  pCpu->pCurInstr->param1 <= OP_PARM_REG_SEG_END)
     1354                if (    pCpu->pCurInstr->fParam1 >= OP_PARM_REG_SEG_START
     1355                    &&  pCpu->pCurInstr->fParam1 <= OP_PARM_REG_SEG_END)
    13561356                    return true;
    13571357                if (    (fPrefixes & ~DISPREFIX_OPSIZE)
    1358                     &&  pCpu->pCurInstr->param1 >= OP_PARM_REG_GEN32_START
    1359                     &&  pCpu->pCurInstr->param1 <= OP_PARM_REG_GEN32_END)
     1358                    &&  pCpu->pCurInstr->fParam1 >= OP_PARM_REG_GEN32_START
     1359                    &&  pCpu->pCurInstr->fParam1 <= OP_PARM_REG_GEN32_END)
    13601360                    return true;
    13611361                break;
     
    13731373    /* Implicit 8-bit register instructions doesn't mix with operand size. */
    13741374    if (    (fPrefixes & DISPREFIX_OPSIZE)
    1375         &&  (   (   pCpu->pCurInstr->param1 == OP_PARM_Gb /* r8 */
    1376                  && pCpu->pCurInstr->param2 == OP_PARM_Eb /* r8/mem8 */)
    1377              || (   pCpu->pCurInstr->param2 == OP_PARM_Gb /* r8 */
    1378                  && pCpu->pCurInstr->param1 == OP_PARM_Eb /* r8/mem8 */))
     1375        &&  (   (   pCpu->pCurInstr->fParam1 == OP_PARM_Gb /* r8 */
     1376                 && pCpu->pCurInstr->fParam2 == OP_PARM_Eb /* r8/mem8 */)
     1377             || (   pCpu->pCurInstr->fParam2 == OP_PARM_Gb /* r8 */
     1378                 && pCpu->pCurInstr->fParam1 == OP_PARM_Eb /* r8/mem8 */))
    13791379       )
    13801380    {
     
    14151415            case OP_XOR:
    14161416            case OP_CMP:
    1417                 if (    (    pCpu->pCurInstr->param1 == OP_PARM_Gb /* r8 */
    1418                          && pCpu->pCurInstr->param2 == OP_PARM_Eb /* r8/mem8 */)
    1419                     ||  (    pCpu->pCurInstr->param1 == OP_PARM_Gv /* rX */
    1420                          && pCpu->pCurInstr->param2 == OP_PARM_Ev /* rX/memX */))
     1417                if (    (    pCpu->pCurInstr->fParam1 == OP_PARM_Gb /* r8 */
     1418                         && pCpu->pCurInstr->fParam2 == OP_PARM_Eb /* r8/mem8 */)
     1419                    ||  (    pCpu->pCurInstr->fParam1 == OP_PARM_Gv /* rX */
     1420                         && pCpu->pCurInstr->fParam2 == OP_PARM_Ev /* rX/memX */))
    14211421                    return true;
    14221422
     
    14481448
    14491449    /* shl eax,1 will be assembled to the form without the immediate byte. */
    1450     if (    pCpu->pCurInstr->param2 == OP_PARM_Ib
     1450    if (    pCpu->pCurInstr->fParam2 == OP_PARM_Ib
    14511451        &&  (uint8_t)pCpu->param2.parval == 1)
    14521452    {
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