From 1362a2aa4e6e433f7846c8512cab5a21dd5de46d Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 15 Mar 2013 09:32:16 -0700 Subject: ARM: sfi_sp assembler macro --- ports/sysdeps/arm/__longjmp.S | 2 +- ports/sysdeps/arm/sysdep.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'ports/sysdeps/arm') diff --git a/ports/sysdeps/arm/__longjmp.S b/ports/sysdeps/arm/__longjmp.S index 2936a441d0..8de9fa1c7b 100644 --- a/ports/sysdeps/arm/__longjmp.S +++ b/ports/sysdeps/arm/__longjmp.S @@ -36,7 +36,7 @@ ENTRY (__longjmp) cfi_undefined (r4) CHECK_SP (r4) #endif - sfi_breg ip, \ + sfi_sp sfi_breg ip, \ ldmia \B!, JMP_BUF_REGLIST cfi_restore (v1) cfi_restore (v2) diff --git a/ports/sysdeps/arm/sysdep.h b/ports/sysdeps/arm/sysdep.h index 4917805857..83df7ebc3a 100644 --- a/ports/sysdeps/arm/sysdep.h +++ b/ports/sysdeps/arm/sysdep.h @@ -250,6 +250,11 @@ pld [\basereg, \offset] .endm +/* This macro precedes any instruction that directly changes the SP. + It's not needed for push/pop or for any kind of load or store that + implicitly changes the SP via the ! syntax. */ +# define sfi_sp /* Nothing to do. */ + # endif #endif /* __ASSEMBLER__ */ -- cgit 1.4.1