ARM/Linux: Mark r0-r3 Saved
authorMyungJoo Ham <myungjoo.ham@samsung.com>
Fri, 15 Apr 2016 04:28:29 +0000 (13:28 +0900)
committerMyungJoo Ham <myungjoo.ham@samsung.com>
Fri, 15 Apr 2016 04:28:29 +0000 (13:28 +0900)
Without this, exception handlers (try-catch) that
try to get SP of ThePreStub's caller (managed frame) mislocate
the caller's SP by 4 words (0x10) and get lost while
traversing managed frames.

Fix dotnet/coreclr#4107

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/f97d3b2c2ff27f421c3b0bb5565f262314fe8880

src/coreclr/src/pal/inc/unixasmmacrosarm.inc

index 006c23a..169a5a7 100644 (file)
@@ -85,6 +85,7 @@ C_FUNC(\Name\()_End):
 
 .macro PUSH_ARGUMENT_REGISTERS
         push {r0-r3}
+        .save {r0-r3}
 .endm
 
 .macro pop_register Reg