summaryrefslogtreecommitdiff
path: root/src/pal/src/arch
diff options
context:
space:
mode:
authorchunseoklee <chunseoklee@naver.com>2017-08-08 02:51:02 +0900
committerJan Kotas <jkotas@microsoft.com>2017-08-07 10:51:02 -0700
commita9516dacd742ccaeae2820b89ad313a53d22d917 (patch)
treea6cd571dfe6920b372b297c132203f8a3aa30e4c /src/pal/src/arch
parent7e30a5e62e4d75a4310837f2c73ca241f39795e3 (diff)
downloadcoreclr-a9516dacd742ccaeae2820b89ad313a53d22d917.tar.gz
coreclr-a9516dacd742ccaeae2820b89ad313a53d22d917.tar.bz2
coreclr-a9516dacd742ccaeae2820b89ad313a53d22d917.zip
fix callsignalhandlerwrapper(arm) (#13114)
issue: #13099 1. add unwind information 2. add free_stack
Diffstat (limited to 'src/pal/src/arch')
-rw-r--r--src/pal/src/arch/arm/callsignalhandlerwrapper.S7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/pal/src/arch/arm/callsignalhandlerwrapper.S b/src/pal/src/arch/arm/callsignalhandlerwrapper.S
index 266e4fdfe9..a8aa9b4432 100644
--- a/src/pal/src/arch/arm/callsignalhandlerwrapper.S
+++ b/src/pal/src/arch/arm/callsignalhandlerwrapper.S
@@ -18,11 +18,12 @@ C_FUNC(SignalHandlerWorkerReturnOffset\Alignment):
// address set to SignalHandlerWorkerReturn during SIGSEGV handling.
// It enables the unwinder to unwind stack from the handling code to the actual failure site.
NESTED_ENTRY CallSignalHandlerWrapper\Alignment, _TEXT, NoHandler
- sub sp, sp, #(8 + \Alignment) // red zone + alignment
- stmfd sp!, {r7, lr}
+ alloc_stack (8 + \Alignment) // red zone + alignment
+ PROLOG_PUSH "{r7, lr}"
bl EXTERNAL_C_FUNC(signal_handler_worker)
LOCAL_LABEL(SignalHandlerWorkerReturn\Alignment):
- ldmfd sp!, {r7, lr}
+ EPILOG_POP "{r7, lr}"
+ free_stack (8 + \Alignment)
bx lr
NESTED_END CallSignalHandlerWrapper\Alignment, _TEXT