summaryrefslogtreecommitdiff
path: root/src/pal/src/arch
diff options
context:
space:
mode:
authorMyungJoo Ham <myungjoo.ham@gmail.com>2016-06-01 19:22:10 +0900
committerJan Kotas <jkotas@microsoft.com>2016-06-01 03:22:10 -0700
commit594b424e1328135049cf0515bc5fc58b91f07e2a (patch)
treee58f5416f9403d34b8ab32adbb31ca73e0d77e03 /src/pal/src/arch
parent959025a1ec18e6685e27c0a3ea579c78487daa25 (diff)
downloadcoreclr-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.S4
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