Changeset 106401 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Oct 16, 2024 8:56:01 PM (3 months ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp
r106380 r106401 157 157 * Used by TB code when encountering a non-zero status or rcPassUp after a call. 158 158 */ 159 template 159 template<bool const a_fWithIrqCheck> 160 160 IEM_DECL_NATIVE_HLP_DEF(uintptr_t, iemNativeHlpReturnBreakViaLookup,(PVMCPUCC pVCpu, uint8_t idxTbLookup, 161 161 uint32_t fFlags, RTGCPHYS GCPhysPc)) … … 10067 10067 * @param pTb The threaded translation to recompile to native. 10068 10068 */ 10069 DECLHIDDEN(PIEMTB) iemNativeRecompile(PVMCPUCC pVCpu, PIEMTB pTb) RT_NOEXCEPT10069 IEM_DECL_MSC_GUARD_IGNORE DECLHIDDEN(PIEMTB) iemNativeRecompile(PVMCPUCC pVCpu, PIEMTB pTb) RT_NOEXCEPT 10070 10070 { 10071 10071 #if 0 /* For profiling the native recompiler code. */ -
trunk/src/VBox/VMM/VMMAll/IEMAllThrdRecompiler.cpp
r106329 r106401 2853 2853 * IEMTB_F_INHIBIT_NMI, IEMTB_F_CS_LIM_CHECKS. 2854 2854 */ 2855 static VBOXSTRICTRC iemThreadedCompile(PVMCC pVM, PVMCPUCC pVCpu, RTGCPHYS GCPhysPc, uint32_t fExtraFlags) IEM_NOEXCEPT_MAY_LONGJMP 2855 static IEM_DECL_MSC_GUARD_IGNORE VBOXSTRICTRC 2856 iemThreadedCompile(PVMCC pVM, PVMCPUCC pVCpu, RTGCPHYS GCPhysPc, uint32_t fExtraFlags) IEM_NOEXCEPT_MAY_LONGJMP 2856 2857 { 2857 2858 IEMTLBTRACE_TB_COMPILE(pVCpu, GCPhysPc); … … 3573 3574 * @param pTb The translation block to execute. 3574 3575 */ 3575 static VBOXSTRICTRC iemTbExec(PVMCPUCC pVCpu, PIEMTB pTb) IEM_NOEXCEPT_MAY_LONGJMP3576 static IEM_DECL_MSC_GUARD_IGNORE VBOXSTRICTRC iemTbExec(PVMCPUCC pVCpu, PIEMTB pTb) IEM_NOEXCEPT_MAY_LONGJMP 3576 3577 { 3577 3578 Assert(!(pVCpu->iem.s.GCPhysInstrBuf & (RTGCPHYS)GUEST_PAGE_OFFSET_MASK)); -
trunk/src/VBox/VMM/VMMAll/IEMAllThrdTables.h
r106061 r106401 403 403 return iemThreadedRecompilerMcDeferToCImpl0(pVCpu, a_fFlags, a_fGstShwFlush, a_pfnCImpl) 404 404 405 DECLINLINE(VBOXSTRICTRC)405 IEM_DECL_MSC_GUARD_IGNORE DECLINLINE(VBOXSTRICTRC) 406 406 iemThreadedRecompilerMcDeferToCImpl0(PVMCPUCC pVCpu, uint32_t fFlags, uint64_t fGstShwFlush, PFNIEMCIMPL0 pfnCImpl) 407 407 { -
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.