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