about summary refs log tree commit diff
path: root/sysdeps/mips/mips64/setjmp.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/mips/mips64/setjmp.S')
-rw-r--r--sysdeps/mips/mips64/setjmp.S12
1 files changed, 9 insertions, 3 deletions
diff --git a/sysdeps/mips/mips64/setjmp.S b/sysdeps/mips/mips64/setjmp.S
index 5e18897d88..3d2bf20e7c 100644
--- a/sysdeps/mips/mips64/setjmp.S
+++ b/sysdeps/mips/mips64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2000, 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
    02111-1307 USA.  */
 
 #include <sysdep.h>
+#include <sys/asm.h>
 
 /* The function __sigsetjmp_aux saves all the registers, but it can't
    reliably access the stack or frame pointers, so we pass them in as
@@ -26,10 +27,15 @@
 #endif
 ENTRY (__sigsetjmp)
 #ifdef __PIC__
-	.cpload t9
+	SETUP_GP
 #endif
+	SETUP_GP64 (v0, C_SYMBOL_NAME (__sigsetjmp))
 	move a2, sp
 	move a3, fp
-	dla t9, __sigsetjmp_aux
+	PTR_LA t9, __sigsetjmp_aux
+#if _MIPS_SIM == _MIPS_SIM_ABI32
 	nop
+#endif	
+	RESTORE_GP64
 	jr t9
+	.end __sigsetjmp