VirtualBox

Ignore:
Timestamp:
Oct 20, 2014 4:04:09 PM (10 years ago)
Author:
vboxsync
Message:

DIS: #6251: AVX / VEX instructions support (two byte instructions only) and some fixes to the other tables.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Disassembler/DisasmInternal.h

    r53032 r53094  
    7474  IDX_ParseImmAddrF,
    7575  IDX_ParseInvOpModRM,
     76  IDX_ParseVex2b,
     77  IDX_ParseVex3b,
     78  IDX_ParseVexDest,
    7679  IDX_ParseMax
    7780};
     
    113116/** Three byte opcode map with prefixes 0x66 0xF2 (0xF 0x38) */
    114117extern PCDISOPCODE const g_apThreeByteMapX86_66F20F38[16];
     118
     119/** VEX opcodes table defined by [VEX.m-mmmm - 1].
     120  * 0Fh, 0F38h, 0F3Ah correspondingly, VEX.pp = 00b */
     121extern PCDISOPCODE const g_aVexOpcodesMap[3];
     122
     123/** VEX opcodes table defined by [VEX.m-mmmm - 1].
     124  * 0Fh, 0F38h, 0F3Ah correspondingly, VEX.pp = 01b (66h) */
     125extern PCDISOPCODE const g_aVexOpcodesMap_66H[3];
     126
     127/** 0Fh, 0F38h, 0F3Ah correspondingly, VEX.pp = 10b (F3h) */
     128extern PCDISOPCODE const g_aVexOpcodesMap_F3H[3];
     129
     130/** 0Fh, 0F38h, 0F3Ah correspondingly, VEX.pp = 11b (F2h) */
     131extern PCDISOPCODE const g_aVexOpcodesMap_F2H[3];
    115132/** @} */
    116133
     
    174191#ifndef DIS_CORE_ONLY
    175192# define OP(pszOpcode, idxParse1, idxParse2, idxParse3, opcode, param1, param2, param3, optype) \
    176     { pszOpcode, idxParse1, idxParse2, idxParse3, 0, opcode, param1, param2, param3, optype }
     193    { pszOpcode, idxParse1, idxParse2, idxParse3, 0, opcode, param1, param2, param3, 0, 0, optype }
     194# define OPVEX(pszOpcode, idxParse1, idxParse2, idxParse3, idxParse4, opcode, param1, param2, param3, param4, optype) \
     195    { pszOpcode, idxParse1, idxParse2, idxParse3, idxParse4, opcode, param1, param2, param3, param4, 0, optype }
    177196#else
    178197# define OP(pszOpcode, idxParse1, idxParse2, idxParse3, opcode, param1, param2, param3, optype) \
    179     { idxParse1, idxParse2, idxParse3, 0, opcode, param1, param2, param3, optype }
     198    { idxParse1, idxParse2, idxParse3, 0, opcode, param1, param2, param3, 0, 0, optype }
     199# define OPVEX(pszOpcode, idxParse1, idxParse2, idxParse3, idxParse4, opcode, param1, param2, param3, param4, optype) \
     200    { idxParse1, idxParse2, idxParse3, idxParse4, opcode, param1, param2, param3, param4, 0, optype }
    180201#endif
    181202
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