Changeset 53094 in vbox for trunk/include/VBox/dis.h
- Timestamp:
- Oct 20, 2014 4:04:09 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 96613
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/dis.h
r47412 r53094 54 54 #define DISPREFIX_REX UINT8_C(0x40) 55 55 /** @} */ 56 57 /** @name VEX.Lvvvv prefix destination register flag. 58 * @{ 59 */ 60 #define VEX_LEN256 UINT8_C(0x01) 61 #define VEXREG_IS256B(x) ((x) & VEX_LEN256) 62 /* Convert second byte of VEX prefix to internal format */ 63 #define VEX_2B2INT(x) ((((x) >> 2) & 0x1f)) 64 #define VEX_HAS_REX_R(x) (!((x) & 0x80)) 65 /** @} */ 56 66 57 67 /** @name 64 bits prefix byte flags (DISSTATE::fRexPrefix). … … 130 140 #define DISUSE_REG_MMX RT_BIT_64(8) 131 141 #define DISUSE_REG_XMM RT_BIT_64(9) 132 #define DISUSE_REG_CR RT_BIT_64(10) 133 #define DISUSE_REG_DBG RT_BIT_64(11) 134 #define DISUSE_REG_SEG RT_BIT_64(12) 135 #define DISUSE_REG_TEST RT_BIT_64(13) 136 #define DISUSE_DISPLACEMENT8 RT_BIT_64(14) 137 #define DISUSE_DISPLACEMENT16 RT_BIT_64(15) 138 #define DISUSE_DISPLACEMENT32 RT_BIT_64(16) 139 #define DISUSE_DISPLACEMENT64 RT_BIT_64(17) 140 #define DISUSE_RIPDISPLACEMENT32 RT_BIT_64(18) 141 #define DISUSE_IMMEDIATE8 RT_BIT_64(19) 142 #define DISUSE_IMMEDIATE8_REL RT_BIT_64(20) 143 #define DISUSE_IMMEDIATE16 RT_BIT_64(21) 144 #define DISUSE_IMMEDIATE16_REL RT_BIT_64(22) 145 #define DISUSE_IMMEDIATE32 RT_BIT_64(23) 146 #define DISUSE_IMMEDIATE32_REL RT_BIT_64(24) 147 #define DISUSE_IMMEDIATE64 RT_BIT_64(25) 148 #define DISUSE_IMMEDIATE64_REL RT_BIT_64(26) 149 #define DISUSE_IMMEDIATE_ADDR_0_32 RT_BIT_64(27) 150 #define DISUSE_IMMEDIATE_ADDR_16_32 RT_BIT_64(28) 151 #define DISUSE_IMMEDIATE_ADDR_0_16 RT_BIT_64(29) 152 #define DISUSE_IMMEDIATE_ADDR_16_16 RT_BIT_64(30) 142 #define DISUSE_REG_YMM RT_BIT_64(10) 143 #define DISUSE_REG_CR RT_BIT_64(11) 144 #define DISUSE_REG_DBG RT_BIT_64(12) 145 #define DISUSE_REG_SEG RT_BIT_64(13) 146 #define DISUSE_REG_TEST RT_BIT_64(14) 147 #define DISUSE_DISPLACEMENT8 RT_BIT_64(15) 148 #define DISUSE_DISPLACEMENT16 RT_BIT_64(16) 149 #define DISUSE_DISPLACEMENT32 RT_BIT_64(17) 150 #define DISUSE_DISPLACEMENT64 RT_BIT_64(18) 151 #define DISUSE_RIPDISPLACEMENT32 RT_BIT_64(19) 152 #define DISUSE_IMMEDIATE8 RT_BIT_64(20) 153 #define DISUSE_IMMEDIATE8_REL RT_BIT_64(21) 154 #define DISUSE_IMMEDIATE16 RT_BIT_64(22) 155 #define DISUSE_IMMEDIATE16_REL RT_BIT_64(23) 156 #define DISUSE_IMMEDIATE32 RT_BIT_64(24) 157 #define DISUSE_IMMEDIATE32_REL RT_BIT_64(25) 158 #define DISUSE_IMMEDIATE64 RT_BIT_64(26) 159 #define DISUSE_IMMEDIATE64_REL RT_BIT_64(27) 160 #define DISUSE_IMMEDIATE_ADDR_0_32 RT_BIT_64(28) 161 #define DISUSE_IMMEDIATE_ADDR_16_32 RT_BIT_64(29) 162 #define DISUSE_IMMEDIATE_ADDR_0_16 RT_BIT_64(30) 163 #define DISUSE_IMMEDIATE_ADDR_16_16 RT_BIT_64(31) 153 164 /** DS:ESI */ 154 #define DISUSE_POINTER_DS_BASED RT_BIT_64(3 1)165 #define DISUSE_POINTER_DS_BASED RT_BIT_64(32) 155 166 /** ES:EDI */ 156 #define DISUSE_POINTER_ES_BASED RT_BIT_64(3 2)157 #define DISUSE_IMMEDIATE16_SX8 RT_BIT_64(3 3)158 #define DISUSE_IMMEDIATE32_SX8 RT_BIT_64(3 4)167 #define DISUSE_POINTER_ES_BASED RT_BIT_64(33) 168 #define DISUSE_IMMEDIATE16_SX8 RT_BIT_64(34) 169 #define DISUSE_IMMEDIATE32_SX8 RT_BIT_64(35) 159 170 #define DISUSE_IMMEDIATE64_SX8 RT_BIT_64(36) 160 171 … … 422 433 * set in fUse. 1:1 indexes. */ 423 434 uint8_t idxXmmReg; 435 /** SSE2 register index (DISYREG_XXX), applicable if DISUSE_REG_YMM is 436 * set in fUse. 1:1 indexes. */ 437 uint8_t idxYmmReg; 424 438 /** Segment register index (DISSELREG_XXX), applicable if DISUSE_REG_SEG is 425 439 * set in fUse. */ … … 472 486 /** Parameter \#3 parser index. */ 473 487 uint8_t idxParse3; 474 /** Unused padding. */475 uint8_t uUnused;488 /** Parameter \#4 parser index. */ 489 uint8_t idxParse4; 476 490 /** The opcode identifier. This DIS specific, @see grp_dis_opcodes and 477 491 * VBox/disopcode.h. */ … … 483 497 /** Parameter \#3 info, @see grp_dis_opparam. */ 484 498 uint16_t fParam3; 499 /** Parameter \#4 info, @see grp_dis_opparam. */ 500 uint16_t fParam4; 501 /** padding unused */ 502 uint16_t uPadding; 485 503 /** Operand type flags, DISOPTYPE_XXX. */ 486 504 uint32_t fOpType; … … 570 588 /** The instruction size. */ 571 589 uint8_t cbInstr; 590 /** VEX presence flag, destination register and size */ 591 uint8_t bVexDestReg; 572 592 /** Unused bytes. */ 573 uint8_t abUnused[ 3];593 uint8_t abUnused[2]; 574 594 /** Internal: instruction filter */ 575 595 uint32_t fFilter; … … 607 627 DISOPPARAM Param2; 608 628 DISOPPARAM Param3; 629 DISOPPARAM Param4; 609 630 } DISSTATE; 610 AssertCompileSize(DISSTATE, 0x b8);631 AssertCompileSize(DISSTATE, 0xd8); 611 632 612 633 /** @deprecated Use DISSTATE and change Cpu and DisState to Dis. */
Note:
See TracChangeset
for help on using the changeset viewer.