about summary refs log tree commit diff
path: root/ports/sysdeps/arm
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2013-03-15 09:32:16 -0700
committerRoland McGrath <roland@hack.frob.com>2013-03-15 09:32:16 -0700
commit1362a2aa4e6e433f7846c8512cab5a21dd5de46d (patch)
tree796059b1cc60e0a79d883db985a0600366a77194 /ports/sysdeps/arm
parenta7ac752299cb61f3140ab76c6f0a4ed46f52df55 (diff)
downloadglibc-1362a2aa4e6e433f7846c8512cab5a21dd5de46d.tar.gz
glibc-1362a2aa4e6e433f7846c8512cab5a21dd5de46d.tar.xz
glibc-1362a2aa4e6e433f7846c8512cab5a21dd5de46d.zip
ARM: sfi_sp assembler macro
Diffstat (limited to 'ports/sysdeps/arm')
-rw-r--r--ports/sysdeps/arm/__longjmp.S2
-rw-r--r--ports/sysdeps/arm/sysdep.h5
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__ */