VirtualBox

Changeset 103922 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Mar 19, 2024 4:10:02 PM (11 months ago)
Author:
vboxsync
Message:

VMM/IEM: Fixed the remaining decoding issues with vblendvps/d. bugref:9898

Location:
trunk/src/VBox/VMM/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r103921 r103922  
    49814981#define IEM_GET_EFFECTIVE_VVVV(a_pVCpu) \
    49824982    (IEM_IS_64BIT_CODE(a_pVCpu) ? (a_pVCpu)->iem.s.uVex3rdReg : (a_pVCpu)->iem.s.uVex3rdReg & 7)
     4983
     4984
     4985/**
     4986 * Gets the register (reg) part of a the special 4th register byte used by
     4987 * vblendvps and vblendvpd.
     4988 *
     4989 * For use during decoding.
     4990 */
     4991#define IEM_GET_IMM8_REG(a_pVCpu, a_bRegImm8) \
     4992    (IEM_IS_64BIT_CODE(a_pVCpu) ? (a_bRegImm8) >> 4 : ((a_bRegImm8) >> 4) & 7)
    49834993
    49844994
  • trunk/src/VBox/VMM/include/IEMOpHlp.h

    r100854 r103922  
    526526/**
    527527 * Done decoding VEX instruction, raise \#UD exception if any lock, rex, repz,
     528 * repnz or size prefixes are present, or if VEX.W is one, or if in real or
     529 * v8086 mode, or if the a_fFeature is not present in the guest CPU.
     530 */
     531#define IEMOP_HLP_DONE_VEX_DECODING_W0_EX(a_fFeature) \
     532    do \
     533    { \
     534        if (RT_LIKELY(   !(  pVCpu->iem.s.fPrefixes \
     535                           & (IEM_OP_PRF_LOCK | IEM_OP_PRF_REPZ | IEM_OP_PRF_REPNZ | IEM_OP_PRF_SIZE_OP | IEM_OP_PRF_REX \
     536                              | IEM_OP_PRF_SIZE_REX_W /*VEX.W*/)) \
     537                      && !IEM_IS_REAL_OR_V86_MODE(pVCpu) \
     538                      && IEM_GET_GUEST_CPU_FEATURES(pVCpu)->a_fFeature)) \
     539        { /* likely */ } \
     540        else \
     541            IEMOP_RAISE_INVALID_OPCODE_RET(); \
     542    } while (0)
     543
     544/**
     545 * Done decoding VEX instruction, raise \#UD exception if any lock, rex, repz,
    528546 * repnz or size prefixes are present, or if the VEX.VVVV field doesn't indicate
    529547 * register 0, if in real or v8086 mode, or if the a_fFeature is not present in
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