summaryrefslogtreecommitdiffstats
path: root/lib/libc/mips/gen/sigsetjmp.S
diff options
context:
space:
mode:
authorjchandra <jchandra@FreeBSD.org>2010-06-16 12:55:14 +0000
committerjchandra <jchandra@FreeBSD.org>2010-06-16 12:55:14 +0000
commitfa919cddc1801bfb0624d56f3a24c4a57fdc911f (patch)
treed284347736f86f7dd0b741263f711a8858174bbc /lib/libc/mips/gen/sigsetjmp.S
parent9a2679124843ce869c9271e1d4a16d8c41c7ee1c (diff)
downloadFreeBSD-src-fa919cddc1801bfb0624d56f3a24c4a57fdc911f.zip
FreeBSD-src-fa919cddc1801bfb0624d56f3a24c4a57fdc911f.tar.gz
Merge jmallett@'s n64 work into HEAD - changeset 1.
Update libc assembly code to use macros that work on both o32 and n64. Merge string functions from NetBSD. The changes are from http://svn.freebsd.org/base/user/jmallett/octeon Approved by: rrs (mentor), jmallett
Diffstat (limited to 'lib/libc/mips/gen/sigsetjmp.S')
-rw-r--r--lib/libc/mips/gen/sigsetjmp.S31
1 files changed, 11 insertions, 20 deletions
diff --git a/lib/libc/mips/gen/sigsetjmp.S b/lib/libc/mips/gen/sigsetjmp.S
index 4e86e28..7705c29 100644
--- a/lib/libc/mips/gen/sigsetjmp.S
+++ b/lib/libc/mips/gen/sigsetjmp.S
@@ -40,6 +40,8 @@ __FBSDID("$FreeBSD$");
ASMSTR("$NetBSD: sigsetjmp.S,v 1.8 2005/09/17 11:49:39 tsutsui Exp $")
#endif /* LIBC_SCCS and not lint */
+#include "SYS.h"
+
#ifdef __ABICALLS__
.abicalls
#endif
@@ -57,30 +59,19 @@ __FBSDID("$FreeBSD$");
*/
LEAF(sigsetjmp)
-#ifdef __ABICALLS__
- .set noreorder
- .cpload t9
- .set reorder
-#endif
+ PIC_PROLOGUE(sigsetjmp)
+
bne a1, 0x0, 1f # do saving of signal mask?
- la t9, _setjmp
- jr t9
+ PIC_TAILCALL(_setjmp)
-1: la t9, setjmp
- jr t9
+1: PIC_TAILCALL(setjmp)
END(sigsetjmp)
LEAF(siglongjmp)
-#ifdef __ABICALLS__
- .set noreorder
- .cpload t9
- .set reorder
-#endif
- lw t0, (_JB_MAGIC * SZREG)(a0)
- li t1, _JB_MAGIC__SETJMP
+ PIC_PROLOGUE(siglongjmp)
+ REG_L t0, (_JB_MAGIC * SZREG)(a0)
+ REG_LI t1, _JB_MAGIC__SETJMP
bne t0, t1, 1f # setjmp or _setjmp magic?
- la t9, _longjmp
- jr t9
-1: la t9, longjmp
- jr t9
+ PIC_TAILCALL(_longjmp)
+1: PIC_TAILCALL(longjmp)
END(siglongjmp)
OpenPOWER on IntegriCloud