about summary refs log tree commit diff
path: root/sysdeps/sparc/sparc64/fpu
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-05-19 15:35:26 +0000
committerUlrich Drepper <drepper@redhat.com>1999-05-19 15:35:26 +0000
commit1c25bcacbe58057d511fb5eae19a0af5d43a2b75 (patch)
tree0c7bd762a77adcc1d12824bb211f54633e66c175 /sysdeps/sparc/sparc64/fpu
parent2acd8fcfc4b8c76f34a304087c7a539102eddb6b (diff)
downloadglibc-1c25bcacbe58057d511fb5eae19a0af5d43a2b75.tar.gz
glibc-1c25bcacbe58057d511fb5eae19a0af5d43a2b75.tar.xz
glibc-1c25bcacbe58057d511fb5eae19a0af5d43a2b75.zip
Update.
1999-05-19  Jakub Jelinek   <jj@ultra.linux.cz>

	* sysdeps/generic/bits/elfclass.h: Version common to
	wordsize-32 and wordsize-64.
	* sysdeps/generic/bits/environments.h: Ditto.
	* sysdeps/generic/stdint.h: Ditto.
	* sysdeps/generic/inttypes.h: Ditto.

	* sysdeps/generic/bits/wordsize.h: New file.
	* stdlib/Makefile: Add bits/wordsize.h to headers.

	* sysdeps/sparc/sparc64/bits/wordsize.h: New file.

	* sysdeps/sparc/sparc64/fpu/bits/fenv.h: Allow the same exported
	headers to be used for 32bit and 64bit ABI compilations.
	* sysdeps/sparc/sparc64/fpu/fpu_control.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h: Ditto.

	* sysdeps/wordsize-64/bits/elfclass.h: Remove.
	* sysdeps/wordsize-64/bits/environments.h: Remove.
	* sysdeps/wordsize-64/stdint.h: Remove.
	* sysdeps/wordsize-64/inttypes.h: Remove.
	* sysdeps/wordsize-64/bits/wordsize.h: New file.

	* sysdeps/wordsize-32/bits/elfclass.h: Remove.
	* sysdeps/wordsize-32/bits/environments.h: Remove.
	* sysdeps/wordsize-32/stdint.h: Remove.
	* sysdeps/wordsize-32/inttypes.h: Remove.
	* sysdeps/wordsize-32/bits/wordsize.h: New file.

1999-05-19  Jakub Jelinek   <jj@ultra.linux.cz>

	* sysdeps/sparc/sparc64/memcpy.S (__align_cpy_4, __align_cpy_8,
	__align_cpy_16): New functions.
	(__align_cpy_2, __align_cpy_1): New aliases to memcpy.

	* sysdeps/sparc/sparc32/Versions: New file.
	* sysdeps/sparc/sparc64/Versions: New file.
	* sysdeps/sparc/Versions: Remove.

1999-05-19  Jakub Jelinek   <jj@ultra.linux.cz>

	* sysdeps/unix/sysv/linux/configure.in:
	On sparc64-*-linux*, set slibdir to /lib64 if prefix
	is /usr, plus set libdir to ${exec_prefix}/lib64.
	* sysdeps/unix/sysv/linux/configure: Regenerated.
	* config.make.in: Propagate libdir settings from configure
	to the Makefiles.
	* shlib-versions: sparc64-*-linux* dynamic linker is
	/lib64/ld-linux.so.2.
Diffstat (limited to 'sysdeps/sparc/sparc64/fpu')
-rw-r--r--sysdeps/sparc/sparc64/fpu/bits/fenv.h17
-rw-r--r--sysdeps/sparc/sparc64/fpu/fpu_control.h9
2 files changed, 25 insertions, 1 deletions
diff --git a/sysdeps/sparc/sparc64/fpu/bits/fenv.h b/sysdeps/sparc/sparc64/fpu/bits/fenv.h
index b864abdedf..af8ed65768 100644
--- a/sysdeps/sparc/sparc64/fpu/bits/fenv.h
+++ b/sysdeps/sparc/sparc64/fpu/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999 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
@@ -20,6 +20,8 @@
 # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
 #endif
 
+#include <bits/wordsize.h>
+
 
 /* Define bits representing the exception.  We use the bit positions
    of the appropriate accrued exception bits from the FSR.  */
@@ -57,11 +59,19 @@ enum
 
 #define __FE_ROUND_MASK	(3U << 30)
 
+#if __WORDSIZE == 64
 /* Type representing exception flags.  */
 typedef unsigned long fexcept_t;
 
 /* Type representing floating-point environment.  */
 typedef unsigned long fenv_t;
+#else
+/* Type representing exception flags.  */
+typedef unsigned int fexcept_t;
+
+/* Type representing floating-point environment.  */
+typedef unsigned int fenv_t;
+#endif
 
 /* If the default argument is used we use this value.  */
 #define FE_DFL_ENV	((fenv_t *) -1)
@@ -72,5 +82,10 @@ typedef unsigned long fenv_t;
 #endif
 
 /* For internal use only: access the fp state register.  */
+#if __WORDSIZE == 64
 #define __fenv_stfsr(X)   __asm__ ("stx %%fsr,%0" : "=m" (X))
 #define __fenv_ldfsr(X)   __asm__ __volatile__ ("ldx %0,%%fsr" : : "m" (X))
+#else
+#define __fenv_stfsr(X)   __asm__ ("st %%fsr,%0" : "=m" (X))
+#define __fenv_ldfsr(X)   __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X))
+#endif
diff --git a/sysdeps/sparc/sparc64/fpu/fpu_control.h b/sysdeps/sparc/sparc64/fpu/fpu_control.h
index b684fa934e..a89f00eed5 100644
--- a/sysdeps/sparc/sparc64/fpu/fpu_control.h
+++ b/sysdeps/sparc/sparc64/fpu/fpu_control.h
@@ -23,6 +23,7 @@
 
 
 #include <features.h>
+#include <bits/wordsize.h>
 
 /* masking of interrupts */
 #define _FPU_MASK_IM  0x08000000
@@ -55,11 +56,19 @@
 #define _FPU_DEFAULT  0x0
 #define _FPU_IEEE     0x0
 
+#if __WORDSIZE == 64
 /* Type of the control word.  */
 typedef unsigned long fpu_control_t;
 
 #define _FPU_GETCW(cw) __asm__ ("stx %%fsr,%0" : "=m" (*&cw))
 #define _FPU_SETCW(cw) __asm__ ("ldx %0,%%fsr" : : "m" (*&cw))
+#else
+/* Type of the control word.  */
+typedef unsigned int fpu_control_t;
+
+#define _FPU_GETCW(cw) __asm__ ("st %%fsr,%0" : "=m" (*&cw))
+#define _FPU_SETCW(cw) __asm__ ("ld %0,%%fsr" : : "m" (*&cw))
+#endif
 
 /* Default control word set at startup.  */
 extern fpu_control_t __fpu_control;