Changeset 103929 in vbox
- Timestamp:
- Mar 19, 2024 11:43:54 PM (13 months ago)
- svn:sync-xref-src-repo-rev:
- 162303
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/include/iprt/x86.h ¶
r103894 r103929 5215 5215 #define X86_OP_VEX3_BYTE1_X RT_BIT(6) 5216 5216 #define X86_OP_VEX3_BYTE1_R RT_BIT(7) 5217 #define X86_OP_VEX3_BYTE1_MAKE(a_idxMap, a_B, a_X, a_R) \ 5218 ( (uint8_t)(a_idxMap) \ 5219 | ((a_B) ? 0 : X86_OP_VEX3_BYTE1_B) \ 5220 | ((a_X) ? 0 : X86_OP_VEX3_BYTE1_X) \ 5221 | ((a_R) ? 0 : X86_OP_VEX3_BYTE1_R)) 5217 5222 5218 5223 #define X86_OP_VEX3_BYTE2_P_MASK 0x3 … … 5227 5232 #define X86_OP_VEX3_BYTE2_W RT_BIT(7) 5228 5233 5229 #define X86_OP_VEX3_BYTE2_MAKE(a_f64BitOpSz, a_iSrcReg, a_f256BitAvx, a_fPrf) \ 5230 ( ((a_f64BitOpSz) ? X86_OP_VEX3_BYTE2_W : 0) \ 5234 /** @todo r=bird: Is the '& UINT8_C(0xf)' bit needed? You mask it again after 5235 * shifting. */ 5236 #define X86_OP_VEX3_BYTE2_MAKE(a_f64BitOpSize, a_iSrcReg, a_f256BitAvx, a_fPrf) \ 5237 ( ((a_f64BitOpSize) ? X86_OP_VEX3_BYTE2_W : 0) \ 5231 5238 | ((~((uint8_t)(a_iSrcReg) & UINT8_C(0xf)) << X86_OP_VEX3_BYTE2_VVVV_SHIFT) & X86_OP_VEX3_BYTE2_VVVV_MASK) \ 5232 5239 | ((a_f256BitAvx) ? X86_OP_VEX3_BYTE2_L : 0) \ 5233 5240 | ((a_fPrf) & X86_OP_VEX3_BYTE2_P_MASK)) 5234 5241 5235 #define X86_OP_VEX3_BYTE2_MAKE_NO_VVVV(a_f64BitOpS z, a_f256BitAvx, a_fPrf) \5236 ( ((a_f64BitOpS z) ? X86_OP_VEX3_BYTE2_W : 0) \5242 #define X86_OP_VEX3_BYTE2_MAKE_NO_VVVV(a_f64BitOpSize, a_f256BitAvx, a_fPrf) \ 5243 ( ((a_f64BitOpSize) ? X86_OP_VEX3_BYTE2_W : 0) \ 5237 5244 | (X86_OP_VEX3_BYTE2_VVVV_NONE << X86_OP_VEX3_BYTE2_VVVV_SHIFT) \ 5238 5245 | ((a_f256BitAvx) ? X86_OP_VEX3_BYTE2_L : 0) \
Note:
See TracChangeset
for help on using the changeset viewer.