Changeset 104268 in vbox for trunk/src/VBox/VMM/include
- Timestamp:
- Apr 10, 2024 9:13:40 AM (8 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/IEMInternal.h
r104263 r104268 3858 3858 FNIEMAIMPLF2EFL128 iemAImpl_vtestpd_u128, iemAImpl_vtestpd_u128_fallback; 3859 3859 FNIEMAIMPLF2EFL256 iemAImpl_vtestpd_u256, iemAImpl_vtestpd_u256_fallback; 3860 3861 /**3862 * Function table for media instruction taking two full sized media source3863 * registers, and updating EFLAGS but no additional state (AVX).3864 */3865 typedef struct IEMOPMEDIAF2EFL3866 {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_EX3874 * Declares a s_Host (x86 & amd64 only) and a s_Fallback variable with the3875 * given functions as initializers. For use in AVX functions where a pair of3876 * functions are only used once and the function table need not be public. */3877 #ifndef TST_IEM_CHECK_MC3878 # 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 # else3883 # define IEMOPMEDIAF2EFL_INIT_VARS_EX(a_pfnU128, a_pfnU256, a_pfnFallbackU128, a_pfnFallbackU256) \3884 static IEMOPMEDIAF2EFL const s_Fallback = { a_pfnFallbackU128, a_pfnFallbackU256 }3885 # endif3886 #else3887 # define IEMOPMEDIAF2EFL_INIT_VARS_EX(a_pfnU128, a_pfnU256, a_pfnFallbackU128, a_pfnFallbackU256) (void)03888 #endif3889 /** @def IEMOPMEDIAF2EFL_INIT_VARS3890 * 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))3895 3860 3896 3861 typedef 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.