diff options
author | MyungJoo Ham <myungjoo.ham@gmail.com> | 2016-06-01 19:22:10 +0900 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2016-06-01 03:22:10 -0700 |
commit | 594b424e1328135049cf0515bc5fc58b91f07e2a (patch) | |
tree | e58f5416f9403d34b8ab32adbb31ca73e0d77e03 /src/pal/src/arch | |
parent | 959025a1ec18e6685e27c0a3ea579c78487daa25 (diff) | |
download | coreclr-594b424e1328135049cf0515bc5fc58b91f07e2a.tar.gz coreclr-594b424e1328135049cf0515bc5fc58b91f07e2a.tar.bz2 coreclr-594b424e1328135049cf0515bc5fc58b91f07e2a.zip |
ARM/Linux: Fix Exception Handler PAL Test Fail (#5360)
The return address should be kept intact, not recovered
just yet. It is going to be recovered by libgcc's
rescore_core_regs much later, few instructions before
heading back to "catch".
Fixes #5358
Diffstat (limited to 'src/pal/src/arch')
-rw-r--r-- | src/pal/src/arch/arm/exceptionhelper.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/pal/src/arch/arm/exceptionhelper.S b/src/pal/src/arch/arm/exceptionhelper.S index b7140e8aa4..d7f85e7041 100644 --- a/src/pal/src/arch/arm/exceptionhelper.S +++ b/src/pal/src/arch/arm/exceptionhelper.S @@ -22,12 +22,12 @@ LEAF_ENTRY ThrowExceptionFromContextInternal, _TEXT ldr r10, [r0, #(CONTEXT_R10)] ldr r11, [r0, #(CONTEXT_R11)] ldr sp, [r0, #(CONTEXT_Sp)] - ldr lr, [r0, #(CONTEXT_Lr)] ldr r2, [r0, #(CONTEXT_Pc)] // Store return address to the stack - push {r2} + // Added r7 as a dummy to keep the stack aligned by 8 bytes. + push {r2, r7} // The PAL_SEHException pointer mov r0, r1 |