Changeset 106401 in vbox for trunk/src/VBox/VMM/include
- Timestamp:
- Oct 16, 2024 8:56:01 PM (4 months ago)
- svn:sync-xref-src-repo-rev:
- 165219
- Location:
- trunk/src/VBox/VMM/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/IEMInternal.h
r106329 r106401 2977 2977 2978 2978 2979 /** @def IEM_DECL_MSC_GUARD_IGNORE 2980 * Disables control flow guards checks inside a method and any function pointers 2981 * referenced by it. */ 2982 #if defined(_MSC_VER) && !defined(IN_RING0) 2983 # define IEM_DECL_MSC_GUARD_IGNORE __declspec(guard(ignore)) 2984 #else 2985 # define IEM_DECL_MSC_GUARD_IGNORE 2986 #endif 2987 2988 /** @def IEM_DECL_MSC_GUARD_NONE 2989 * Disables control flow guards checks inside a method and but continue track 2990 * function pointers references by it. */ 2991 #if defined(_MSC_VER) && !defined(IN_RING0) 2992 # define IEM_DECL_MSC_GUARD_NONE __declspec(guard(nocf)) 2993 #else 2994 # define IEM_DECL_MSC_GUARD_NONE 2995 #endif 2996 2997 2979 2998 /** @def IEM_DECL_IMPL_TYPE 2980 2999 * For typedef'ing an instruction implementation function. … … 3005 3024 a_RetType (__fastcall a_Name) a_ArgList 3006 3025 # define IEM_DECL_IMPL_DEF(a_RetType, a_Name, a_ArgList) \ 3007 a_RetType __fastcall a_Name a_ArgList RT_NOEXCEPT3026 IEM_DECL_MSC_GUARD_IGNORE a_RetType __fastcall a_Name a_ArgList RT_NOEXCEPT 3008 3027 # define IEM_DECL_IMPL_PROTO(a_RetType, a_Name, a_ArgList) \ 3009 a_RetType __fastcall a_Name a_ArgList RT_NOEXCEPT3028 IEM_DECL_MSC_GUARD_IGNORE a_RetType __fastcall a_Name a_ArgList RT_NOEXCEPT 3010 3029 3011 3030 #elif __cplusplus >= 201700 /* P0012R1 support */ … … 3013 3032 a_RetType (VBOXCALL a_Name) a_ArgList RT_NOEXCEPT 3014 3033 # define IEM_DECL_IMPL_DEF(a_RetType, a_Name, a_ArgList) \ 3015 DECL_HIDDEN_ONLY(a_RetType) VBOXCALL a_Name a_ArgList RT_NOEXCEPT3034 IEM_DECL_MSC_GUARD_IGNORE DECL_HIDDEN_ONLY(a_RetType) VBOXCALL a_Name a_ArgList RT_NOEXCEPT 3016 3035 # define IEM_DECL_IMPL_PROTO(a_RetType, a_Name, a_ArgList) \ 3017 DECL_HIDDEN_ONLY(a_RetType) VBOXCALL a_Name a_ArgList RT_NOEXCEPT3036 IEM_DECL_MSC_GUARD_IGNORE DECL_HIDDEN_ONLY(a_RetType) VBOXCALL a_Name a_ArgList RT_NOEXCEPT 3018 3037 3019 3038 #else … … 3021 3040 a_RetType (VBOXCALL a_Name) a_ArgList 3022 3041 # define IEM_DECL_IMPL_DEF(a_RetType, a_Name, a_ArgList) \ 3023 DECL_HIDDEN_ONLY(a_RetType) VBOXCALL a_Name a_ArgList3042 IEM_DECL_MSC_GUARD_IGNORE DECL_HIDDEN_ONLY(a_RetType) VBOXCALL a_Name a_ArgList 3024 3043 # define IEM_DECL_IMPL_PROTO(a_RetType, a_Name, a_ArgList) \ 3025 DECL_HIDDEN_ONLY(a_RetType) VBOXCALL a_Name a_ArgList3044 IEM_DECL_MSC_GUARD_IGNORE DECL_HIDDEN_ONLY(a_RetType) VBOXCALL a_Name a_ArgList 3026 3045 3027 3046 #endif … … 5394 5413 typedef VBOXSTRICTRC (* PFNIEMOPRM)(PVMCPUCC pVCpu, uint8_t bRm); 5395 5414 # define FNIEMOP_DEF(a_Name) \ 5396 IEM_STATIC VBOXSTRICTRC a_Name(PVMCPUCC pVCpu) IEM_NOEXCEPT_MAY_LONGJMP5415 IEM_STATIC IEM_DECL_MSC_GUARD_IGNORE VBOXSTRICTRC a_Name(PVMCPUCC pVCpu) IEM_NOEXCEPT_MAY_LONGJMP 5397 5416 # define FNIEMOP_DEF_1(a_Name, a_Type0, a_Name0) \ 5398 IEM_STATIC VBOXSTRICTRC a_Name(PVMCPUCC pVCpu, a_Type0 a_Name0) IEM_NOEXCEPT_MAY_LONGJMP5417 IEM_STATIC IEM_DECL_MSC_GUARD_IGNORE VBOXSTRICTRC a_Name(PVMCPUCC pVCpu, a_Type0 a_Name0) IEM_NOEXCEPT_MAY_LONGJMP 5399 5418 # define FNIEMOP_DEF_2(a_Name, a_Type0, a_Name0, a_Type1, a_Name1) \ 5400 IEM_STATIC VBOXSTRICTRC a_Name(PVMCPUCC pVCpu, a_Type0 a_Name0, a_Type1 a_Name1) IEM_NOEXCEPT_MAY_LONGJMP5419 IEM_STATIC IEM_DECL_MSC_GUARD_IGNORE VBOXSTRICTRC a_Name(PVMCPUCC pVCpu, a_Type0 a_Name0, a_Type1 a_Name1) IEM_NOEXCEPT_MAY_LONGJMP 5401 5420 5402 5421 #endif … … 6726 6745 typedef FNIEMTHREADEDFUNC *PFNIEMTHREADEDFUNC; 6727 6746 # define IEM_DECL_IEMTHREADEDFUNC_DEF(a_Name) \ 6728 VBOXSTRICTRC a_Name(PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2) IEM_NOEXCEPT_MAY_LONGJMP6747 IEM_DECL_MSC_GUARD_IGNORE VBOXSTRICTRC a_Name(PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2) IEM_NOEXCEPT_MAY_LONGJMP 6729 6748 # define IEM_DECL_IEMTHREADEDFUNC_PROTO(a_Name) \ 6730 VBOXSTRICTRC a_Name(PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2) IEM_NOEXCEPT_MAY_LONGJMP6749 IEM_DECL_MSC_GUARD_IGNORE VBOXSTRICTRC a_Name(PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2) IEM_NOEXCEPT_MAY_LONGJMP 6731 6750 #endif 6732 6751 -
trunk/src/VBox/VMM/include/IEMN8veRecompiler.h
r106319 r106401 2149 2149 * @see FNIEMNATIVERECOMPFUNC */ 2150 2150 #define IEM_DECL_IEMNATIVERECOMPFUNC_DEF(a_Name) \ 2151 uint32_t VBOXCALL a_Name(PIEMRECOMPILERSTATE pReNative, uint32_t off, PCIEMTHRDEDCALLENTRY pCallEntry) 2151 IEM_DECL_MSC_GUARD_IGNORE uint32_t VBOXCALL \ 2152 a_Name(PIEMRECOMPILERSTATE pReNative, uint32_t off, PCIEMTHRDEDCALLENTRY pCallEntry) 2152 2153 2153 2154 /** Prototypes a native recompiler function for a threaded function. … … 2171 2172 * @see FNIEMNATIVELIVENESSFUNC */ 2172 2173 #define IEM_DECL_IEMNATIVELIVENESSFUNC_DEF(a_Name) \ 2173 DECLCALLBACK(void) a_Name(PCIEMTHRDEDCALLENTRY pCallEntry, PCIEMLIVENESSENTRY pIncoming, PIEMLIVENESSENTRY pOutgoing) 2174 IEM_DECL_MSC_GUARD_IGNORE DECLCALLBACK(void) \ 2175 a_Name(PCIEMTHRDEDCALLENTRY pCallEntry, PCIEMLIVENESSENTRY pIncoming, PIEMLIVENESSENTRY pOutgoing) 2174 2176 2175 2177 /** Prototypes a native recompiler liveness analysis function for a threaded function.
Note:
See TracChangeset
for help on using the changeset viewer.