VirtualBox

Changeset 66814 in vbox


Ignore:
Timestamp:
May 5, 2017 7:27:04 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
115235
Message:

IEM: clearly mark operands that are written to.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/disopcode.h

    r66812 r66814  
    10641064
    10651065/* For making IEM / bs3-cpu-generated-1 happy: */
     1066#define OP_PARM_Gv_RO           OP_PARM_Gv              /**< Annotates read only first operand (default is readwrite). */
    10661067#define OP_PARM_M_RO            OP_PARM_M               /**< Annotates read only memory of variable operand size (xrstor). */
    10671068#define OP_PARM_M_RW            OP_PARM_M               /**< Annotates read-write memory of variable operand size (xsave). */
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsOneByte.cpp.h

    r66686 r66814  
    18491849 * @opcode      0x62
    18501850 * @opmnemonic  bound
    1851  * @op1         Gv
     1851 * @op1         Gv_RO
    18521852 * @op2         Ma
    18531853 * @opmincpu    80186
     
    19111911    if (pVCpu->iem.s.enmCpuMode != IEMMODE_64BIT)
    19121912    {
    1913         IEMOP_MNEMONIC2(RM_MEM, BOUND, bound, Gv, Ma, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);
     1913        IEMOP_MNEMONIC2(RM_MEM, BOUND, bound, Gv_RO, Ma, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);
    19141914        IEMOP_HLP_MIN_186();
    19151915        IEM_OPCODE_GET_NEXT_U8(&bRm);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py

    r66812 r66814  
    248248    'Gw':           ( 'IDX_UseModRM',       'reg',    '%Gw',  'Gw',      ),
    249249    'Gv':           ( 'IDX_UseModRM',       'reg',    '%Gv',  'Gv',      ),
     250    'Gv_RO':        ( 'IDX_UseModRM',       'reg',    '%Gv',  'Gv',      ),
    250251    'Pq_WO':        ( 'IDX_UseModRM',       'reg',    '%Pq',  'Pq',      ),
    251252    'Vss':          ( 'IDX_UseModRM',       'reg',    '%Vss', 'Vss',     ),
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c

    r66813 r66814  
    18481848
    18491849
    1850 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Gv_Ma(PBS3CG1STATE pThis, unsigned iEncoding)
     1850static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Gv_RO_Ma(PBS3CG1STATE pThis, unsigned iEncoding)
    18511851{
    18521852    unsigned off;
     
    22902290            return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqZxReg_WO_Nq(pThis, iEncoding);
    22912291
    2292         case BS3CG1ENC_MODRM_Gv_Ma:
    2293             return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Gv_Ma(pThis, iEncoding);
     2292        case BS3CG1ENC_MODRM_Gv_RO_Ma:
     2293            return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Gv_RO_Ma(pThis, iEncoding);
    22942294
    22952295        case BS3CG1ENC_MODRM_Mb_RO:
     
    23902390            break;
    23912391
    2392         case BS3CG1ENC_MODRM_Gv_Ma:
     2392        case BS3CG1ENC_MODRM_Gv_RO_Ma:
    23932393            pThis->iRmOp             = 1;
    23942394            pThis->iRegOp            = 0;
     
    25662566    {
    25672567        case BS3CG1ENC_MODRM_Gb_Eb:
    2568         case BS3CG1ENC_MODRM_Gv_Ma:
     2568        case BS3CG1ENC_MODRM_Gv_RO_Ma:
    25692569        case BS3CG1ENC_FIXED:
    25702570            return BS3CG1ENC_FIXED;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h

    r66812 r66814  
    6060    BS3CG1OP_Gb,
    6161    BS3CG1OP_Gv,
     62    BS3CG1OP_Gv_RO,
    6263    BS3CG1OP_Nq,
    6364    BS3CG1OP_Pq_WO,
     
    121122    BS3CG1ENC_MODRM_Gb_Eb,
    122123    BS3CG1ENC_MODRM_Gv_Ev,
    123     BS3CG1ENC_MODRM_Gv_Ma, /**< bound instruction */
     124    BS3CG1ENC_MODRM_Gv_RO_Ma, /**< bound instruction */
    124125    BS3CG1ENC_MODRM_Pq_WO_Uq,
    125126    BS3CG1ENC_MODRM_Vq_WO_UqHi,
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