From 494e471ff8410cc4555dabec419035e16f872cfb Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 25 Mar 2003 09:44:29 +0000 Subject: 2003-03-24 Daniel Jacobowitz * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (DOARGS_5, DOARGS_6, DOARGS_7): Rewritten. --- linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'linuxthreads') 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; \ -- cgit 1.4.1