glibc/sysdeps/powerpc/powerpc32/__longjmp-common.S

77 lines
2.1 KiB
ArmAsm
Raw Normal View History

Update. 2004-02-13 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/powerpc64/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc64/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc64/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc64/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc64/setjmp-common.S: New file. * sysdeps/powerpc/powerpc64/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/__longjmp-common.S: New File * sysdeps/powerpc/powerpc32/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc32/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/Dist: New File. * sysdeps/powerpc/Makefile (sysdep_routines): Add novmx-longjmp.c and novmx-sigjmp.c * sysdeps/powerpc/Versions (libc): To GLIBC_2.3_4 add _longjmp, __sigsetjmp, _setjmp, longjmp, and setjmp. To GLIBC_PRIVATE add __novmx__libc_longjmp, __novmx__libc_siglongjmp, __vmx__libc_longjmp, and __vmx__libc_siglongjmp. * sysdeps/powerpc/bits/setjmp.h: Define JB_VRSAVE, JB_VRS, and adjust JB_SIZE to add VMX regs to __jmp_buf. * sysdeps/powerpc/longjmp.c: New file. * sysdeps/powerpc/novmxsetjmp.h: New file. * sysdeps/powerpc/novmx-longjmp.c: New file. * sysdeps/powerpc/novmx-sigjmp.c: New file. * sysdeps/powerpc/sigjmp.c: New file.
2004-02-14 05:16:57 +00:00
/* longjmp for PowerPC.
Copyright (C) 1995-1997, 1999-2001, 2003, 2004, 2005, 2006, 2009
Free Software Foundation, Inc.
Update. 2004-02-13 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/powerpc64/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc64/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc64/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc64/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc64/setjmp-common.S: New file. * sysdeps/powerpc/powerpc64/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/__longjmp-common.S: New File * sysdeps/powerpc/powerpc32/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc32/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/Dist: New File. * sysdeps/powerpc/Makefile (sysdep_routines): Add novmx-longjmp.c and novmx-sigjmp.c * sysdeps/powerpc/Versions (libc): To GLIBC_2.3_4 add _longjmp, __sigsetjmp, _setjmp, longjmp, and setjmp. To GLIBC_PRIVATE add __novmx__libc_longjmp, __novmx__libc_siglongjmp, __vmx__libc_longjmp, and __vmx__libc_siglongjmp. * sysdeps/powerpc/bits/setjmp.h: Define JB_VRSAVE, JB_VRS, and adjust JB_SIZE to add VMX regs to __jmp_buf. * sysdeps/powerpc/longjmp.c: New file. * sysdeps/powerpc/novmxsetjmp.h: New file. * sysdeps/powerpc/novmx-longjmp.c: New file. * sysdeps/powerpc/novmx-sigjmp.c: New file. * sysdeps/powerpc/sigjmp.c: New file.
2004-02-14 05:16:57 +00:00
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
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. */
#include <sysdep.h>
#define _ASM
#ifdef __NO_VMX__
# include <novmxsetjmp.h>
#else
# include <jmpbuf-offsets.h>
Update. 2004-02-13 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/powerpc64/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc64/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc64/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc64/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc64/setjmp-common.S: New file. * sysdeps/powerpc/powerpc64/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/__longjmp-common.S: New File * sysdeps/powerpc/powerpc32/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc32/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/Dist: New File. * sysdeps/powerpc/Makefile (sysdep_routines): Add novmx-longjmp.c and novmx-sigjmp.c * sysdeps/powerpc/Versions (libc): To GLIBC_2.3_4 add _longjmp, __sigsetjmp, _setjmp, longjmp, and setjmp. To GLIBC_PRIVATE add __novmx__libc_longjmp, __novmx__libc_siglongjmp, __vmx__libc_longjmp, and __vmx__libc_siglongjmp. * sysdeps/powerpc/bits/setjmp.h: Define JB_VRSAVE, JB_VRS, and adjust JB_SIZE to add VMX regs to __jmp_buf. * sysdeps/powerpc/longjmp.c: New file. * sysdeps/powerpc/novmxsetjmp.h: New file. * sysdeps/powerpc/novmx-longjmp.c: New file. * sysdeps/powerpc/novmx-sigjmp.c: New file. * sysdeps/powerpc/sigjmp.c: New file.
2004-02-14 05:16:57 +00:00
#endif
#include <bp-sym.h>
#include <bp-asm.h>
ENTRY (BP_SYM (__longjmp))
CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
#if defined PTR_DEMANGLE || defined CHECK_SP
lwz r24,(JB_GPR1*4)(r3)
# ifdef CHECK_SP
# ifdef PTR_DEMANGLE
PTR_DEMANGLE3 (r24, r24, r25)
# endif
CHECK_SP (r24)
mr r1,r24
# endif
#else
Update. 2004-02-13 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/powerpc64/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc64/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc64/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc64/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc64/setjmp-common.S: New file. * sysdeps/powerpc/powerpc64/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/__longjmp-common.S: New File * sysdeps/powerpc/powerpc32/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc32/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/Dist: New File. * sysdeps/powerpc/Makefile (sysdep_routines): Add novmx-longjmp.c and novmx-sigjmp.c * sysdeps/powerpc/Versions (libc): To GLIBC_2.3_4 add _longjmp, __sigsetjmp, _setjmp, longjmp, and setjmp. To GLIBC_PRIVATE add __novmx__libc_longjmp, __novmx__libc_siglongjmp, __vmx__libc_longjmp, and __vmx__libc_siglongjmp. * sysdeps/powerpc/bits/setjmp.h: Define JB_VRSAVE, JB_VRS, and adjust JB_SIZE to add VMX regs to __jmp_buf. * sysdeps/powerpc/longjmp.c: New file. * sysdeps/powerpc/novmxsetjmp.h: New file. * sysdeps/powerpc/novmx-longjmp.c: New file. * sysdeps/powerpc/novmx-sigjmp.c: New file. * sysdeps/powerpc/sigjmp.c: New file.
2004-02-14 05:16:57 +00:00
lwz r1,(JB_GPR1*4)(r3)
#endif
Update. 2004-02-13 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/powerpc64/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc64/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc64/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc64/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc64/setjmp-common.S: New file. * sysdeps/powerpc/powerpc64/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/__longjmp-common.S: New File * sysdeps/powerpc/powerpc32/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc32/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/Dist: New File. * sysdeps/powerpc/Makefile (sysdep_routines): Add novmx-longjmp.c and novmx-sigjmp.c * sysdeps/powerpc/Versions (libc): To GLIBC_2.3_4 add _longjmp, __sigsetjmp, _setjmp, longjmp, and setjmp. To GLIBC_PRIVATE add __novmx__libc_longjmp, __novmx__libc_siglongjmp, __vmx__libc_longjmp, and __vmx__libc_siglongjmp. * sysdeps/powerpc/bits/setjmp.h: Define JB_VRSAVE, JB_VRS, and adjust JB_SIZE to add VMX regs to __jmp_buf. * sysdeps/powerpc/longjmp.c: New file. * sysdeps/powerpc/novmxsetjmp.h: New file. * sysdeps/powerpc/novmx-longjmp.c: New file. * sysdeps/powerpc/novmx-sigjmp.c: New file. * sysdeps/powerpc/sigjmp.c: New file.
2004-02-14 05:16:57 +00:00
lwz r0,(JB_LR*4)(r3)
lwz r14,((JB_GPRS+0)*4)(r3)
lwz r15,((JB_GPRS+1)*4)(r3)
lwz r16,((JB_GPRS+2)*4)(r3)
lwz r17,((JB_GPRS+3)*4)(r3)
lwz r18,((JB_GPRS+4)*4)(r3)
lwz r19,((JB_GPRS+5)*4)(r3)
lwz r20,((JB_GPRS+6)*4)(r3)
[BZ #1978] 2005-12-16 Thorsten Kukuk <kukuk@suse.de> [BZ #1978] * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags): Map more filesystem types to a string. * sysdeps/unix/sysv/linux/linux_fsinfo.h: Add SYSFS_MAGIC. 2005-12-19 Jakub Jelinek <jakub@redhat.com> * locale/Makefile (programs/%-kw.h): Run $(GPERF) inside of the programs subdirectory. * sysdeps/powerpc/powerpc32/__longjmp-common.S (__longjmp): Use PTR_DEMANGLE for PC if defined. * sysdeps/powerpc/powerpc64/__longjmp-common.S (__longjmp): Likewise. * sysdeps/unix/sysv/linux/ia64/__longjmp.S (__longjmp): Likewise. * sysdeps/s390/s390-32/__longjmp.c (__longjmp): Xor %r14 with THREAD_GET_POINTER_GUARD () if PTR_DEMANGLE is defined. * sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise. * sysdeps/powerpc/powerpc32/setjmp-common.S (__sigsetjmp): Use PTR_MANGLE for PC if defined. * sysdeps/powerpc/powerpc64/setjmp-common.S (__sigsetjmp): Likewise. * sysdeps/s390/s390-32/setjmp.S (__sigsetjmp): Likewise. Avoid call to __sigjmp_save if IS_IN_rtld. * sysdeps/s390/s390-32/elf/setjmp.S (__sigsetjmp): Likewise. * sysdeps/s390/s390-64/setjmp.S (__sigsetjmp): Likewise. * sysdeps/s390/s390-64/elf/setjmp.S (__sigsetjmp): Likewise. * sysdeps/unix/sysv/linux/ia64/setjmp.S (__sigsetjmp): Likewise. * sysdeps/unix/sysv/linux/ia64/sysdep.h (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Include tls.h. (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Include tls.h (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Include tls.h. (PTR_MANGLE, PTR_DEMANGLE): Define. (SYSCALL_ERROR_HANDLER): Add missing semicolons. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Include tls.h. (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/s390/s390-64/socket.S (__socket): Add SYSCALL_ERROR_HANDLER. 2005-12-19 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Handle NO_WEAK_ALIAS. * sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: Likewise. Patch by Clint Adams. 2005-12-16 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/unix/sysv/linux/s390/sys/user.h: Copy struct user and dependent definitions from the kernel header to sys/user.h and remove the #include of asm/user.h.
2005-12-20 07:21:59 +00:00
#ifdef PTR_DEMANGLE
# ifndef CHECK_SP
PTR_DEMANGLE3 (r1, r24, r25)
# endif
PTR_DEMANGLE2 (r0, r25)
[BZ #1978] 2005-12-16 Thorsten Kukuk <kukuk@suse.de> [BZ #1978] * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags): Map more filesystem types to a string. * sysdeps/unix/sysv/linux/linux_fsinfo.h: Add SYSFS_MAGIC. 2005-12-19 Jakub Jelinek <jakub@redhat.com> * locale/Makefile (programs/%-kw.h): Run $(GPERF) inside of the programs subdirectory. * sysdeps/powerpc/powerpc32/__longjmp-common.S (__longjmp): Use PTR_DEMANGLE for PC if defined. * sysdeps/powerpc/powerpc64/__longjmp-common.S (__longjmp): Likewise. * sysdeps/unix/sysv/linux/ia64/__longjmp.S (__longjmp): Likewise. * sysdeps/s390/s390-32/__longjmp.c (__longjmp): Xor %r14 with THREAD_GET_POINTER_GUARD () if PTR_DEMANGLE is defined. * sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise. * sysdeps/powerpc/powerpc32/setjmp-common.S (__sigsetjmp): Use PTR_MANGLE for PC if defined. * sysdeps/powerpc/powerpc64/setjmp-common.S (__sigsetjmp): Likewise. * sysdeps/s390/s390-32/setjmp.S (__sigsetjmp): Likewise. Avoid call to __sigjmp_save if IS_IN_rtld. * sysdeps/s390/s390-32/elf/setjmp.S (__sigsetjmp): Likewise. * sysdeps/s390/s390-64/setjmp.S (__sigsetjmp): Likewise. * sysdeps/s390/s390-64/elf/setjmp.S (__sigsetjmp): Likewise. * sysdeps/unix/sysv/linux/ia64/setjmp.S (__sigsetjmp): Likewise. * sysdeps/unix/sysv/linux/ia64/sysdep.h (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Include tls.h. (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Include tls.h (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Include tls.h. (PTR_MANGLE, PTR_DEMANGLE): Define. (SYSCALL_ERROR_HANDLER): Add missing semicolons. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Include tls.h. (PTR_MANGLE, PTR_DEMANGLE): Define. * sysdeps/unix/sysv/linux/s390/s390-64/socket.S (__socket): Add SYSCALL_ERROR_HANDLER. 2005-12-19 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Handle NO_WEAK_ALIAS. * sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: Likewise. Patch by Clint Adams. 2005-12-16 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/unix/sysv/linux/s390/sys/user.h: Copy struct user and dependent definitions from the kernel header to sys/user.h and remove the #include of asm/user.h.
2005-12-20 07:21:59 +00:00
#endif
Update. 2004-02-13 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/powerpc64/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc64/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc64/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc64/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc64/setjmp-common.S: New file. * sysdeps/powerpc/powerpc64/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/__longjmp-common.S: New File * sysdeps/powerpc/powerpc32/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/bsd-_setjmp.S [NOT_IN_libc](_setjmp): Non-versioned _setjmp for rtld-_setjmp. [!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define as default version of _setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx_setjmp): Original version of _setjmp. * sysdeps/powerpc/powerpc32/bsd-setjmp.S (__vmxsetjmp): Branch to __vmx__sigsetjmp and define as default version of setjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmxsetjmp): Original version of setjmp. * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/__longjmp.S [NOT_IN_libc](__longjmp): Non-versioned __longjmp for rtld-__longjmp. [!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as default version of __longjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__longjmp): Original version of __longjmp. * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/fpu/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/powerpc32/setjmp-common.S: New file. * sysdeps/powerpc/powerpc32/setjmp.S [NOT_IN_libc](__setjmp): Non-versioned __sigsetjmp for rtld-setjmp. [!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define as default version of __sigsetjmp. [SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)] (__novmx__sigsetjmp): Original version of __sigsetjmp. * sysdeps/powerpc/Dist: New File. * sysdeps/powerpc/Makefile (sysdep_routines): Add novmx-longjmp.c and novmx-sigjmp.c * sysdeps/powerpc/Versions (libc): To GLIBC_2.3_4 add _longjmp, __sigsetjmp, _setjmp, longjmp, and setjmp. To GLIBC_PRIVATE add __novmx__libc_longjmp, __novmx__libc_siglongjmp, __vmx__libc_longjmp, and __vmx__libc_siglongjmp. * sysdeps/powerpc/bits/setjmp.h: Define JB_VRSAVE, JB_VRS, and adjust JB_SIZE to add VMX regs to __jmp_buf. * sysdeps/powerpc/longjmp.c: New file. * sysdeps/powerpc/novmxsetjmp.h: New file. * sysdeps/powerpc/novmx-longjmp.c: New file. * sysdeps/powerpc/novmx-sigjmp.c: New file. * sysdeps/powerpc/sigjmp.c: New file.
2004-02-14 05:16:57 +00:00
mtlr r0
lwz r21,((JB_GPRS+7)*4)(r3)
lwz r22,((JB_GPRS+8)*4)(r3)
lwz r0,(JB_CR*4)(r3)
lwz r23,((JB_GPRS+9)*4)(r3)
lwz r24,((JB_GPRS+10)*4)(r3)
lwz r25,((JB_GPRS+11)*4)(r3)
mtcrf 0xFF,r0
lwz r26,((JB_GPRS+12)*4)(r3)
lwz r27,((JB_GPRS+13)*4)(r3)
lwz r28,((JB_GPRS+14)*4)(r3)
lwz r29,((JB_GPRS+15)*4)(r3)
lwz r30,((JB_GPRS+16)*4)(r3)
lwz r31,((JB_GPRS+17)*4)(r3)
mr r3,r4
blr
END (BP_SYM (__longjmp))