VirtualBox

Ignore:
Timestamp:
Nov 6, 2023 10:13:31 AM (13 months ago)
Author:
vboxsync
Message:

VMM/IEM: Replaced all IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF use with IEM_MC_CLEAR_HIGH_GREG_U64 and removed the MC, as it forced argument variables to be used after IEM_MC_CALL_XXXX which made recompiling more complicated. bugref:10371

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap2.cpp.h

    r101387 r101850  
    16741674            IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fBmi1, iemAImpl_andn_u32, iemAImpl_andn_u32_fallback),
    16751675                                     pDst, uSrc1, uSrc2, pEFlags);
    1676             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst);
     1676            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm));
    16771677            IEM_MC_ADVANCE_RIP_AND_FINISH();
    16781678            IEM_MC_END();
     
    17191719            IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fBmi1, iemAImpl_andn_u32, iemAImpl_andn_u32_fallback),
    17201720                                     pDst, uSrc1, uSrc2, pEFlags);
    1721             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst);
     1721            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm));
    17221722            IEM_MC_ADVANCE_RIP_AND_FINISH();
    17231723            IEM_MC_END();
     
    17711771            IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fBmi1, iemAImpl_ ## a_Instr ## _u32, \
    17721772                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc, pEFlags); \
    1773             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
     1773            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
    17741774            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    17751775            IEM_MC_END(); \
     
    18121812            IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fBmi1, iemAImpl_ ## a_Instr ## _u32, \
    18131813                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc, pEFlags); \
    1814             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
     1814            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
    18151815            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    18161816            IEM_MC_END(); \
     
    19281928                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), \
    19291929                                     pDst, uSrc1, uSrc2, pEFlags); \
    1930             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
     1930            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm)); \
    19311931            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    19321932            IEM_MC_END(); \
     
    19751975                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), \
    19761976                                     pDst, uSrc1, uSrc2, pEFlags); \
    1977             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
     1977            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm)); \
    19781978            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    19791979            IEM_MC_END(); \
     
    20182018            IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(a_fFeatureMember, iemAImpl_ ## a_Instr ## _u32, \
    20192019                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc1, uSrc2); \
    2020             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
     2020            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm)); \
    20212021            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    20222022            IEM_MC_END(); \
     
    20592059            IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(a_fFeatureMember, iemAImpl_ ## a_Instr ## _u32, \
    20602060                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc1, uSrc2); \
    2061             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
     2061            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm)); \
    20622062            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    20632063            IEM_MC_END(); \
     
    21122112                                                                 iemAImpl_ ## a_Instr ## _u32, \
    21132113                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc1, uSrc2); \
    2114             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
     2114            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm)); \
    21152115            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    21162116            IEM_MC_END(); \
     
    21552155                                                                 iemAImpl_ ## a_Instr ## _u32, \
    21562156                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc1, uSrc2); \
    2157             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
     2157            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm)); \
    21582158            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    21592159            IEM_MC_END(); \
     
    22252225            IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fBmi2, iemAImpl_mulx_u32, iemAImpl_mulx_u32_fallback),
    22262226                                     pDst1, pDst2, uSrc1, uSrc2);
    2227             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst2);
    2228             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst1);
     2227            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_EFFECTIVE_VVVV(pVCpu));
     2228            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm));
    22292229            IEM_MC_ADVANCE_RIP_AND_FINISH();
    22302230            IEM_MC_END();
     
    22712271            IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fBmi2, iemAImpl_mulx_u32, iemAImpl_mulx_u32_fallback),
    22722272                                     pDst1, pDst2, uSrc1, uSrc2);
    2273             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst2);
    2274             IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst1);
     2273            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_EFFECTIVE_VVVV(pVCpu));
     2274            IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm));
    22752275            IEM_MC_ADVANCE_RIP_AND_FINISH();
    22762276            IEM_MC_END();
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