aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads/sysdeps/unix
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-03-25 09:44:29 +0000
committerRoland McGrath <roland@gnu.org>2003-03-25 09:44:29 +0000
commit494e471ff8410cc4555dabec419035e16f872cfb (patch)
tree787d989c28ea934ec9de0a237a94584afc8aa27a /linuxthreads/sysdeps/unix
parent5e826ab537a668c9486deecc3d7fc1cbe1abda2a (diff)
downloadglibc-494e471ff8410cc4555dabec419035e16f872cfb.tar
glibc-494e471ff8410cc4555dabec419035e16f872cfb.tar.gz
glibc-494e471ff8410cc4555dabec419035e16f872cfb.tar.bz2
glibc-494e471ff8410cc4555dabec419035e16f872cfb.zip
2003-03-24 Daniel Jacobowitz <drow@mvista.com>
* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (DOARGS_5, DOARGS_6, DOARGS_7): Rewritten.
Diffstat (limited to 'linuxthreads/sysdeps/unix')
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h b/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
index 47af28090b..25dbb9e565 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
@@ -24,6 +24,15 @@
#if !defined NOT_IN_libc || defined IS_IN_libpthread
+/* We push lr onto the stack, so we have to use ldmib instead of ldmia
+ to find the saved arguments. */
+#undef DOARGS_5
+#undef DOARGS_6
+#undef DOARGS_7
+#define DOARGS_5 str r4, [sp, $-4]!; ldr r4, [sp, $8];
+#define DOARGS_6 mov ip, sp; stmfd sp!, {r4, r5}; ldmib ip, {r4, r5};
+#define DOARGS_7 mov ip, sp; stmfd sp!, {r4, r5, r6}; ldmib ip, {r4, r5, r6};
+
# undef PSEUDO_RET
# define PSEUDO_RET \
ldrcc pc, [sp], $4; \