diff options
author | jchandra <jchandra@FreeBSD.org> | 2010-06-16 12:55:14 +0000 |
---|---|---|
committer | jchandra <jchandra@FreeBSD.org> | 2010-06-16 12:55:14 +0000 |
commit | fa919cddc1801bfb0624d56f3a24c4a57fdc911f (patch) | |
tree | d284347736f86f7dd0b741263f711a8858174bbc /lib/libc/mips/gen/sigsetjmp.S | |
parent | 9a2679124843ce869c9271e1d4a16d8c41c7ee1c (diff) | |
download | FreeBSD-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.S | 31 |
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) |