summaryrefslogtreecommitdiffstats
path: root/sys/arm/include/asmacros.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm/include/asmacros.h')
-rw-r--r--sys/arm/include/asmacros.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/arm/include/asmacros.h b/sys/arm/include/asmacros.h
index f83c14f..18dcef5 100644
--- a/sys/arm/include/asmacros.h
+++ b/sys/arm/include/asmacros.h
@@ -206,7 +206,16 @@
mov r0, r0; /* NOP for previous instruction */ \
add sp, sp, #(4*15); /* Adjust the stack pointer */ \
ldmia sp, {sp, lr, pc}^ /* Restore lr and exit */
-#endif
+#endif
+#if defined(__ARM_EABI__)
+#define UNWINDSVCFRAME \
+ .save {r13-r15}; /* Restore sp, lr, pc */ \
+ .pad #(2*4); /* Skip user sp and lr */ \
+ .save {r0-r12}; /* Restore r0-r12 */ \
+ .pad #(4) /* Skip spsr */
+#else
+#define UNWINDSVCFRAME
+#endif
#define DATA(name) \
.data ; \
OpenPOWER on IntegriCloud