diff options
-rw-r--r-- | ChangeLog | 15 | ||||
-rwxr-xr-x | sysdeps/powerpc/configure | 38 | ||||
-rw-r--r-- | sysdeps/powerpc/configure.in | 21 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/fpu/setjmp-common.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/__longjmp-common.S | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/setjmp-common.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S | 1 |
13 files changed, 84 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 78d1b53aa7..4d1c14340e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2004-05-28 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Add .machine + "altivec" to enable VMX instructions. + * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise. + * sysdeps/powerpc/powerpc64/__longjmp-common.S: Likewise. + * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise. + + 2004-05-27 Jakub Jelinek <jakub@redhat.com> * sysdeps/i386/fpu/bits/mathinline.h (__expm1_code): Define using diff --git a/sysdeps/powerpc/configure b/sysdeps/powerpc/configure new file mode 100755 index 0000000000..07e3d091b1 --- /dev/null +++ b/sysdeps/powerpc/configure @@ -0,0 +1,38 @@ +# This file is generated from configure.in by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/powerpc. + +# Accept binutils which knows about ".machine". +echo "$as_me:$LINENO: checking for .machine support" >&5 +echo $ECHO_N "checking for .machine support... $ECHO_C" >&6 +if test "${libc_cv_ppc_machine+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat > conftest.s <<\EOF + .machine "altivec" + blr +EOF +if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + libc_cv_ppc_machine=yes +else + libc_cv_ppc_machine=no +fi +rm -f conftest* +fi +echo "$as_me:$LINENO: result: $libc_cv_ppc_machine" >&5 +echo "${ECHO_T}$libc_cv_ppc_machine" >&6 +if test $libc_cv_ppc_machine != yes; then + { { echo "$as_me:$LINENO: error: +*** A binutils version which can handle +*** .machine \"altivec\" +*** is needed." >&5 +echo "$as_me: error: +*** A binutils version which can handle +*** .machine \"altivec\" +*** is needed." >&2;} + { (exit 1); exit 1; }; } +fi diff --git a/sysdeps/powerpc/configure.in b/sysdeps/powerpc/configure.in new file mode 100644 index 0000000000..28cc85934d --- /dev/null +++ b/sysdeps/powerpc/configure.in @@ -0,0 +1,21 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/powerpc. + +# Accept binutils which knows about ".machine". +AC_CACHE_CHECK(for .machine support, libc_cv_ppc_machine, [dnl +cat > conftest.s <<\EOF + .machine "altivec" + blr +EOF +if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then + libc_cv_ppc_machine=yes +else + libc_cv_ppc_machine=no +fi +rm -f conftest*]) +if test $libc_cv_ppc_machine != yes; then + AC_MSG_ERROR([ +*** A binutils version which can handle +*** .machine "altivec" +*** is needed.]) +fi diff --git a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S index dbb28aef21..b61e127a99 100644 --- a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S +++ b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S @@ -28,6 +28,7 @@ #include <bp-sym.h> #include <bp-asm.h> + .machine "altivec" ENTRY (BP_SYM (__longjmp)) CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) #ifndef __NO_VMX__ diff --git a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S index 6f63512e61..796d24f25c 100644 --- a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S +++ b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S @@ -28,7 +28,7 @@ #include <bp-sym.h> #include <bp-asm.h> - + .machine "altivec" ENTRY (BP_SYM (__sigsetjmp)) CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) diff --git a/sysdeps/powerpc/powerpc64/__longjmp-common.S b/sysdeps/powerpc/powerpc64/__longjmp-common.S index 0e2f0d580f..b6a2b79e55 100644 --- a/sysdeps/powerpc/powerpc64/__longjmp-common.S +++ b/sysdeps/powerpc/powerpc64/__longjmp-common.S @@ -40,6 +40,7 @@ .section ".text" #endif + .machine "altivec" ENTRY (BP_SYM (__longjmp)) CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) #ifndef __NO_VMX__ diff --git a/sysdeps/powerpc/powerpc64/setjmp-common.S b/sysdeps/powerpc/powerpc64/setjmp-common.S index 85c840348d..99b181dfe4 100644 --- a/sysdeps/powerpc/powerpc64/setjmp-common.S +++ b/sysdeps/powerpc/powerpc64/setjmp-common.S @@ -39,6 +39,7 @@ .section ".text" #endif + .machine "altivec" ENTRY (BP_SYM (__sigsetjmp)) CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) std r1,(JB_GPR1*8)(3) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S index b7a0baa45d..447a18b2c7 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S @@ -25,6 +25,7 @@ #include <asm/ptrace.h> #include "ucontext_i.h" + .machine "altivec" ENTRY(__getcontext) stw r3,_FRAME_PARM_SAVE1(r1) addi r3,r3,_UC_REG_SPACE+12 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S index fb9f1dc2ad..8d31326875 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S @@ -25,6 +25,7 @@ #include <asm/ptrace.h> #include "ucontext_i.h" + .machine "altivec" ENTRY(__setcontext) mflr r0 stwu r1,-16(r1) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S index bd6ced4e1a..9d4c9bc1f6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S @@ -25,6 +25,7 @@ #include <asm/ptrace.h> #include "ucontext_i.h" + .machine "altivec" ENTRY(__swapcontext) /* Save the current context */ stw r3,_FRAME_PARM_SAVE1(r1) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S index 6a0e1e559a..9deded79c7 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S @@ -165,6 +165,7 @@ compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3) #endif .section ".text" + .machine "altivec" ENTRY(__getcontext) #ifdef __ASSUME_NEW_RT_SIGRETURN_SYSCALL std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S index b2675f0928..a07a750ec7 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S @@ -192,6 +192,7 @@ compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3) #endif .section ".text" + .machine "altivec" ENTRY(__setcontext) #ifdef __ASSUME_NEW_RT_SIGRETURN_SYSCALL mflr r0 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S index 660493984d..0f978512d4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S @@ -287,6 +287,7 @@ compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3) #endif .section ".text" + .machine "altivec" ENTRY(__swapcontext) #ifdef __ASSUME_NEW_RT_SIGRETURN_SYSCALL std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3) |