From 06f2752448e1413760c3f9a0cb0f45f898338fc6 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Fri, 4 Aug 2023 09:50:05 +0200 Subject: [PATCH] Match IsUnwindable and GetReturnAddressHijackInfo conditions --- .../nativeaot/Runtime/unix/UnixNativeCodeManager.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/coreclr/nativeaot/Runtime/unix/UnixNativeCodeManager.cpp b/src/coreclr/nativeaot/Runtime/unix/UnixNativeCodeManager.cpp index 7b4465966727da..a71ec0a88b5860 100644 --- a/src/coreclr/nativeaot/Runtime/unix/UnixNativeCodeManager.cpp +++ b/src/coreclr/nativeaot/Runtime/unix/UnixNativeCodeManager.cpp @@ -377,8 +377,13 @@ bool UnixNativeCodeManager::IsUnwindable(PTR_VOID pvAddress) pMethodInfo = &methodInfo; #endif - // VirtualUnwind can't unwind epilogues. +#if defined(TARGET_APPLE) && defined(TARGET_ARM64) + // VirtualUnwind can't unwind epilogues and some prologues. return TrailingEpilogueInstructionsCount(pMethodInfo, pvAddress) == 0 && IsInProlog(pMethodInfo, pvAddress) != 1; +#else + // VirtualUnwind can't unwind epilogues. + return TrailingEpilogueInstructionsCount(pMethodInfo, pvAddress) == 0; +#endif } // checks for known prolog instructions generated by ILC and returns