VirtualBox

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


Ignore:
Timestamp:
Apr 10, 2024 9:13:40 AM (8 months ago)
Author:
vboxsync
Message:

VMM: bugref:9898 Fixed Python generator breakage with r162727 by implementing IEMOP_BODY macro instead of static helper function.

File:
1 edited

Legend:

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

    r104263 r104268  
    38583858FNIEMAIMPLF2EFL128 iemAImpl_vtestpd_u128, iemAImpl_vtestpd_u128_fallback;
    38593859FNIEMAIMPLF2EFL256 iemAImpl_vtestpd_u256, iemAImpl_vtestpd_u256_fallback;
    3860 
    3861 /**
    3862  * Function table for media instruction taking two full sized media source
    3863  * registers, and updating EFLAGS but no additional state (AVX).
    3864  */
    3865 typedef struct IEMOPMEDIAF2EFL
    3866 {
    3867     PFNIEMAIMPLF2EFL128 pfnU128;
    3868     PFNIEMAIMPLF2EFL256 pfnU256;
    3869 } IEMOPMEDIAF2EFL;
    3870 /** Pointer to a media operation function table for 3 full sized ops (AVX). */
    3871 typedef IEMOPMEDIAF2EFL const *PCIEMOPMEDIAF2EFL;
    3872 
    3873 /** @def IEMOPMEDIAF2EFL_INIT_VARS_EX
    3874  * Declares a s_Host (x86 & amd64 only) and a s_Fallback variable with the
    3875  * given functions as initializers.  For use in AVX functions where a pair of
    3876  * functions are only used once and the function table need not be public. */
    3877 #ifndef TST_IEM_CHECK_MC
    3878 # if (defined(RT_ARCH_X86) || defined(RT_ARCH_AMD64)) && !defined(IEM_WITHOUT_ASSEMBLY)
    3879 #  define IEMOPMEDIAF2EFL_INIT_VARS_EX(a_pfnHostU128, a_pfnHostU256, a_pfnFallbackU128, a_pfnFallbackU256) \
    3880     static IEMOPMEDIAF2EFL const s_Host     = { a_pfnHostU128,     a_pfnHostU256 }; \
    3881     static IEMOPMEDIAF2EFL const s_Fallback = { a_pfnFallbackU128, a_pfnFallbackU256 }
    3882 # else
    3883 #  define IEMOPMEDIAF2EFL_INIT_VARS_EX(a_pfnU128, a_pfnU256, a_pfnFallbackU128, a_pfnFallbackU256) \
    3884     static IEMOPMEDIAF2EFL const s_Fallback = { a_pfnFallbackU128, a_pfnFallbackU256 }
    3885 # endif
    3886 #else
    3887 # define IEMOPMEDIAF2EFL_INIT_VARS_EX(a_pfnU128, a_pfnU256, a_pfnFallbackU128, a_pfnFallbackU256) (void)0
    3888 #endif
    3889 /** @def IEMOPMEDIAF2EFL_INIT_VARS
    3890  * Generate AVX function tables for the @a a_InstrNm instruction.
    3891  * @sa IEMOPMEDIAF2EFL_INIT_VARS_EX */
    3892 #define IEMOPMEDIAF2EFL_INIT_VARS(a_InstrNm) \
    3893     IEMOPMEDIAF2EFL_INIT_VARS_EX(RT_CONCAT3(iemAImpl_,a_InstrNm,_u128),           RT_CONCAT3(iemAImpl_,a_InstrNm,_u256), \
    3894                                  RT_CONCAT3(iemAImpl_,a_InstrNm,_u128_fallback),  RT_CONCAT3(iemAImpl_,a_InstrNm,_u256_fallback))
    38953860
    38963861typedef IEM_DECL_IMPL_TYPE(uint32_t, FNIEMAIMPLSSEF2I32U64,(uint32_t uMxCsrIn, int32_t *pi32Dst, const uint64_t *pu64Src)); /* pu64Src is a double precision floating point. */
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