VirtualBox

Changeset 103929 in vbox


Ignore:
Timestamp:
Mar 19, 2024 11:43:54 PM (13 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
162303
Message:

iprt/x86.h: Added X86_OP_VEX3_BYTE1_MAKE(). bugref:9898

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/include/iprt/x86.h

    r103894 r103929  
    52155215#define X86_OP_VEX3_BYTE1_X             RT_BIT(6)
    52165216#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))
    52175222
    52185223#define X86_OP_VEX3_BYTE2_P_MASK        0x3
     
    52275232#define X86_OP_VEX3_BYTE2_W             RT_BIT(7)
    52285233
    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) \
    52315238     | ((~((uint8_t)(a_iSrcReg) & UINT8_C(0xf)) << X86_OP_VEX3_BYTE2_VVVV_SHIFT) & X86_OP_VEX3_BYTE2_VVVV_MASK) \
    52325239     | ((a_f256BitAvx) ? X86_OP_VEX3_BYTE2_L : 0) \
    52335240     | ((a_fPrf) & X86_OP_VEX3_BYTE2_P_MASK))
    52345241
    5235 #define X86_OP_VEX3_BYTE2_MAKE_NO_VVVV(a_f64BitOpSz, a_f256BitAvx, a_fPrf) \
    5236     (  ((a_f64BitOpSz) ? 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) \
    52375244     | (X86_OP_VEX3_BYTE2_VVVV_NONE << X86_OP_VEX3_BYTE2_VVVV_SHIFT) \
    52385245     | ((a_f256BitAvx) ? X86_OP_VEX3_BYTE2_L : 0) \
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