aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/arm/__longjmp.S
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2014-03-11 10:59:01 -0700
committerRoland McGrath <roland@hack.frob.com>2014-03-11 10:59:01 -0700
commitd7706c32589ef32f4bed3122a2f5c861b214149e (patch)
tree2b775ba9d6486d0663839aad5596d3256ef4937d /sysdeps/arm/__longjmp.S
parent4facea473059914983b7da8dd654c06b8e3dcc41 (diff)
downloadglibc-d7706c32589ef32f4bed3122a2f5c861b214149e.zip
glibc-d7706c32589ef32f4bed3122a2f5c861b214149e.tar.gz
glibc-d7706c32589ef32f4bed3122a2f5c861b214149e.tar.bz2
ARM: Fix up setjmp/longjmp changes sfi_* macro use.
Diffstat (limited to 'sysdeps/arm/__longjmp.S')
-rw-r--r--sysdeps/arm/__longjmp.S15
1 files changed, 10 insertions, 5 deletions
diff --git a/sysdeps/arm/__longjmp.S b/sysdeps/arm/__longjmp.S
index 08521e5..27d1b71 100644
--- a/sysdeps/arm/__longjmp.S
+++ b/sysdeps/arm/__longjmp.S
@@ -38,22 +38,27 @@ ENTRY (__longjmp)
#endif
#ifdef PTR_DEMANGLE
- ldr a4, [ip], #4
+ sfi_breg ip, \
+ ldr a4, [\B], #4
PTR_DEMANGLE (a4, a4, a3, r4)
cfi_undefined (r4)
- ldr r4, [ip], #4
+ sfi_breg ip, \
+ ldr r4, [\B], #4
PTR_DEMANGLE2 (r4, r4, a3)
#else
- ldr a4, [ip], #4
- ldr r4, [ip], #4
+ sfi_breg ip, \
+ ldr a4, [\B], #4
+ sfi_breg ip, \
+ ldr r4, [\B], #4
cfi_undefined (r4)
#endif
/* longjmp probe expects longjmp first argument (4@r0), second
argument (-4@r1), and target address (4@r4), respectively. */
LIBC_PROBE (longjmp, 3, 4@r0, -4@r1, 4@r4)
+ sfi_sp \
mov sp, a4
mov lr, r4
- sfi_sp sfi_breg ip, \
+ sfi_breg ip, \
ldmia \B!, JMP_BUF_REGLIST
cfi_restore (v1)
cfi_restore (v2)