Changeset 103512 in vbox for trunk/include/VBox/dis-x86-amd64.h
- Timestamp:
- Feb 22, 2024 1:17:13 AM (15 months ago)
- svn:sync-xref-src-repo-rev:
- 161855
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/dis-x86-amd64.h
r101539 r103512 64 64 /** rep(e) prefix (not a prefix, but we'll treat is as one). */ 65 65 #define DISPREFIX_REP UINT8_C(0x10) 66 /** rep (e)prefix (not a prefix, but we'll treat is as one). */66 /** repne prefix (not a prefix, but we'll treat is as one). */ 67 67 #define DISPREFIX_REPNE UINT8_C(0x20) 68 68 /** REX prefix (64 bits) */ 69 69 #define DISPREFIX_REX UINT8_C(0x40) 70 /** VEX or EVEX prefix (64 bits) */ 71 #define DISPREFIX_VEX UINT8_C(0x80) 70 72 /** @} */ 71 73 72 74 /** @name VEX.Lvvvv prefix destination register flag. 73 * @{ 75 * @todo r=bird: redo this. See comments elsewhere. 76 * @{ 74 77 */ 75 78 #define VEX_LEN256 UINT8_C(0x01) … … 78 81 #define VEX_2B2INT(x) ((((x) >> 2) & 0x1f)) 79 82 #define VEX_HAS_REX_R(x) (!((x) & 0x80)) 80 81 83 #define DISPREFIX_VEX_FLAG_W UINT8_C(0x01) 84 /** @} */ 85 86 /** @name DISPREFIX_VEX_F_XXX - The bVexStuff definitions 87 * @note This is the same layout as byte2 in the VEX3 prefix. 88 * @{ */ 89 /** The VEX prefix mask. */ 90 #define DISPREFIX_VEX_F_PP_MASK UINT8_C(0x03) 91 /** No prefix. */ 92 #define DISPREFIX_VEX_F_PP_NONE UINT8_C(0x00) 93 /** 66h/opsize prefix. */ 94 #define DISPREFIX_VEX_F_PP_66 UINT8_C(0x01) 95 /** f3h/repe prefix. */ 96 #define DISPREFIX_VEX_F_PP_F3 UINT8_C(0x02) 97 /** f2h/repne prefix. */ 98 #define DISPREFIX_VEX_F_PP_F2 UINT8_C(0x03) 99 /** The VEX.L flag. */ 100 #define DISPREFIX_VEX_F_L UINT8_C(0x04) 101 /** The VEX.VVVV mask. */ 102 #define DISPREFIX_VEX_F_VVVV UINT8_C(0x78) 103 /** The VEX.VVVV shift count. */ 104 #define DISPREFIX_VEX_F_VVVV_SHIFT 3 105 /** The VEX.VVVV mask shifted down to bit 0. */ 106 #define DISPREFIX_VEX_F_VVVV_SMASK UINT8_C(0x0f) 107 /** The VEX.W flag. */ 108 #define DISPREFIX_VEX_F_W UINT8_C(0x80) 82 109 /** @} */ 83 110 … … 439 466 uint8_t cbPrefix; 440 467 /** VEX presence flag, destination register and size 441 * @todo r=bird: There is no VEX presence flage here, just ~vvvv and L. */ 468 * @todo r=bird: There is no VEX presence flage here, just ~vvvv and L. 469 * @deprecated DO NOT USE. All info is available in bVexByte2 and 470 * fPrefix/DISPREFIX_VEX. */ 442 471 uint8_t bVexDestReg; 443 /** VEX.W flag*/444 uint8_t bVex WFlag;472 /** DISPREFIX_VEX_F_XXX - This is set for both VEX prefixes. */ 473 uint8_t bVexByte2; 445 474 /** Internal: instruction filter */ 446 475 uint32_t fFilter;
Note:
See TracChangeset
for help on using the changeset viewer.