about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog15
-rwxr-xr-xsysdeps/powerpc/configure38
-rw-r--r--sysdeps/powerpc/configure.in21
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S1
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/setjmp-common.S2
-rw-r--r--sysdeps/powerpc/powerpc64/__longjmp-common.S1
-rw-r--r--sysdeps/powerpc/powerpc64/setjmp-common.S1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S1
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)