From: Steve MacLean, Qualcomm Datacenter Technologies, Inc Date: Wed, 15 Feb 2017 16:23:33 +0000 (+0000) Subject: [Arm64/Unix] Correct ControlPC when unwinding X-Git-Tag: submit/tizen/20210909.063632~11030^2~8049^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=30ddc3d213b12ff6197b0b1a8f684f7fb518a2c4;p=platform%2Fupstream%2Fdotnet%2Fruntime.git [Arm64/Unix] Correct ControlPC when unwinding Fixes dotnet/coreclr#9585 Commit migrated from https://github.com/dotnet/coreclr/commit/14bda60c5a1ba9e4ee1f7d539bb133c0bcbaaa5e --- diff --git a/src/coreclr/src/vm/exceptionhandling.cpp b/src/coreclr/src/vm/exceptionhandling.cpp index a6c7651..f9be8a0 100644 --- a/src/coreclr/src/vm/exceptionhandling.cpp +++ b/src/coreclr/src/vm/exceptionhandling.cpp @@ -4331,7 +4331,7 @@ VOID UnwindManagedExceptionPass2(PAL_SEHException& ex, CONTEXT* unwindStartConte dispatcherContext.FunctionEntry = codeInfo.GetFunctionEntry(); dispatcherContext.ControlPc = controlPc; dispatcherContext.ImageBase = codeInfo.GetModuleBase(); -#if defined(_TARGET_ARM_) || defined(_TARGET_X86_) +#if defined(_TARGET_ARM_) || defined(_TARGET_ARM64_) || defined(_TARGET_X86_) dispatcherContext.ControlPcIsUnwound = !!(currentFrameContext->ContextFlags & CONTEXT_UNWOUND_TO_CALL); #endif // Check whether we have a function table entry for the current controlPC. @@ -4482,7 +4482,7 @@ VOID DECLSPEC_NORETURN UnwindManagedExceptionPass1(PAL_SEHException& ex, CONTEXT dispatcherContext.FunctionEntry = codeInfo.GetFunctionEntry(); dispatcherContext.ControlPc = controlPc; dispatcherContext.ImageBase = codeInfo.GetModuleBase(); -#if defined(_TARGET_ARM_) || defined(_TARGET_X86_) +#if defined(_TARGET_ARM_) || defined(_TARGET_ARM64_) || defined(_TARGET_X86_) dispatcherContext.ControlPcIsUnwound = !!(frameContext->ContextFlags & CONTEXT_UNWOUND_TO_CALL); #endif