From f2bfeadf7200d607606d53ef5e72d301aac1cf58 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 28 May 2004 21:19:35 +0000 Subject: Update. 2004-05-28 Steven Munroe * 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. --- sysdeps/powerpc/configure | 38 ++++++++++++++++++++++ sysdeps/powerpc/configure.in | 21 ++++++++++++ sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S | 1 + sysdeps/powerpc/powerpc32/fpu/setjmp-common.S | 2 +- sysdeps/powerpc/powerpc64/__longjmp-common.S | 1 + sysdeps/powerpc/powerpc64/setjmp-common.S | 1 + .../unix/sysv/linux/powerpc/powerpc32/getcontext.S | 1 + .../unix/sysv/linux/powerpc/powerpc32/setcontext.S | 1 + .../sysv/linux/powerpc/powerpc32/swapcontext.S | 1 + .../unix/sysv/linux/powerpc/powerpc64/getcontext.S | 1 + .../unix/sysv/linux/powerpc/powerpc64/setcontext.S | 1 + .../sysv/linux/powerpc/powerpc64/swapcontext.S | 1 + 12 files changed, 69 insertions(+), 1 deletion(-) create mode 100755 sysdeps/powerpc/configure create mode 100644 sysdeps/powerpc/configure.in (limited to 'sysdeps') 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 #include + .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 #include - + .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 #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 #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 #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) -- cgit 1.4.1