]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/mips/mips64/bsd-_setjmp.S
Update copyright dates with scripts/update-copyrights
[thirdparty/glibc.git] / sysdeps / mips / mips64 / bsd-_setjmp.S
index b92ac98505ef5246c030c6e417777f4ed8df9eb9..d7a8a2ea4cd447ec9d857925783b97a399ac3bf7 100644 (file)
@@ -1,5 +1,5 @@
 /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'.  MIPS64 version.
-   Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1996-2023 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
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
 
 /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
    We cannot do it in C because it must be a tail-call, so frame-unwinding
    in setjmp doesn't clobber the state restored by longjmp.  */
 
+#include <sgidefs.h>
 #include <sysdep.h>
+#include <sys/asm.h>
 
 #ifdef __PIC__
        .option pic2
 #endif
 ENTRY (_setjmp)
 #ifdef __PIC__
-       .cpload t9
+       SETUP_GP
 #endif
-       dla t9, C_SYMBOL_NAME (__sigsetjmp)
+       SETUP_GP64_REG (v0, C_SYMBOL_NAME (_setjmp))
+       PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp)
+#if _MIPS_SIM == _ABIO32
        nop
-       jr t9
-       dli a1, 0               /* Pass a second argument of zero.  */
+#endif
+       RESTORE_GP64_REG
+       move    a1, zero                /* Pass a second argument of zero.  */
+#ifdef __PIC__
+       jr      t9
+#else
+       j       C_SYMBOL_NAME (__sigsetjmp)
+#endif
+END (_setjmp)
+libc_hidden_def (_setjmp)