diff options
Diffstat (limited to 'ports/sysdeps/arm')
-rw-r--r-- | ports/sysdeps/arm/__longjmp.S | 2 | ||||
-rw-r--r-- | ports/sysdeps/arm/sysdep.h | 5 |
2 files changed, 6 insertions, 1 deletions
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__ */ |