aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/sparc
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/sparc')
-rw-r--r--sysdeps/sparc/bits/wordsize.h7
-rw-r--r--sysdeps/sparc/fpu/bits/fenv.h (renamed from sysdeps/sparc/sparc64/fpu/bits/fenv.h)0
-rw-r--r--sysdeps/sparc/fpu/fpu_control.h (renamed from sysdeps/sparc/sparc32/fpu/fpu_control.h)16
-rw-r--r--sysdeps/sparc/gmp-mparam.h27
-rw-r--r--sysdeps/sparc/sparc32/fpu/bits/fenv.h76
-rw-r--r--sysdeps/sparc/sparc64/bits/wordsize.h23
-rw-r--r--sysdeps/sparc/sparc64/fpu/fpu_control.h76
-rw-r--r--sysdeps/sparc/sparc64/gmp-mparam.h27
8 files changed, 45 insertions, 207 deletions
diff --git a/sysdeps/sparc/bits/wordsize.h b/sysdeps/sparc/bits/wordsize.h
new file mode 100644
index 0000000000..2ad12e1e7f
--- /dev/null
+++ b/sysdeps/sparc/bits/wordsize.h
@@ -0,0 +1,7 @@
+/* Determine the wordsize from the preprocessor defines. */
+
+#if defined __sparc_v9__ || defined __arch64__ || defined __sparcv9
+# define __WORDSIZE 64
+#else
+# define __WORDSIZE 32
+#endif
diff --git a/sysdeps/sparc/sparc64/fpu/bits/fenv.h b/sysdeps/sparc/fpu/bits/fenv.h
index d30fe22c46..d30fe22c46 100644
--- a/sysdeps/sparc/sparc64/fpu/bits/fenv.h
+++ b/sysdeps/sparc/fpu/bits/fenv.h
diff --git a/sysdeps/sparc/sparc32/fpu/fpu_control.h b/sysdeps/sparc/fpu/fpu_control.h
index 7cbdf6db9b..4b03df833b 100644
--- a/sysdeps/sparc/sparc32/fpu/fpu_control.h
+++ b/sysdeps/sparc/fpu/fpu_control.h
@@ -23,6 +23,7 @@
#include <features.h>
+#include <bits/wordsize.h>
/* masking of interrupts */
#define _FPU_MASK_IM 0x08000000
@@ -51,15 +52,20 @@
/* Linux and IEEE default:
- extended precision
- rounding to nearest
- - no exceptions. */
+ - no exceptions */
#define _FPU_DEFAULT 0x0
#define _FPU_IEEE 0x0
/* 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))
+typedef unsigned long int fpu_control_t;
+
+#if __WORDSIZE == 64
+# define _FPU_GETCW(cw) __asm__ ("stx %%fsr,%0" : "=m" (*&cw))
+# define _FPU_SETCW(cw) __asm__ ("ldx %0,%%fsr" : : "m" (*&cw))
+#else
+# 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;
diff --git a/sysdeps/sparc/gmp-mparam.h b/sysdeps/sparc/gmp-mparam.h
new file mode 100644
index 0000000000..873dfcb81e
--- /dev/null
+++ b/sysdeps/sparc/gmp-mparam.h
@@ -0,0 +1,27 @@
+/* gmp-mparam.h -- Compiler/machine parameter header file.
+ Copyright (C) 1991, 1993, 1994, 1999 Free Software Foundation, Inc.
+ This file is part of the GNU MP Library.
+
+ The GNU MP Library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ The GNU MP 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 Library General Public
+ License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with the GNU MP Library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA. */
+
+#include <bits/wordsize.h>
+
+#define BITS_PER_MP_LIMB __WORDSIZE
+#define BYTES_PER_MP_LIMB (__WORDSIZE / 8)
+#define BITS_PER_LONGINT __WORDSIZE
+#define BITS_PER_INT 32
+#define BITS_PER_SHORTINT 16
+#define BITS_PER_CHAR 8
diff --git a/sysdeps/sparc/sparc32/fpu/bits/fenv.h b/sysdeps/sparc/sparc32/fpu/bits/fenv.h
deleted file mode 100644
index 6858caac97..0000000000
--- a/sysdeps/sparc/sparc32/fpu/bits/fenv.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 1997, 1998 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
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#ifndef _FENV_H
-# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-#endif
-
-
-/* Define bits representing the exception. We use the bit positions
- of the appropriate accrued exception bits from the FSR. */
-enum
- {
- FE_INVALID = (1 << 9),
-#define FE_INVALID FE_INVALID
- FE_OVERFLOW = (1 << 8),
-#define FE_OVERFLOW FE_OVERFLOW
- FE_UNDERFLOW = (1 << 7),
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_DIVBYZERO = (1 << 6),
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_INEXACT = (1 << 5)
-#define FE_INEXACT FE_INEXACT
- };
-
-#define FE_ALL_EXCEPT \
- (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
-
-/* The Sparc FPU supports all of the four defined rounding modes. We
- use again the bit positions in the FPU control word as the values
- for the appropriate macros. */
-enum
- {
- FE_TONEAREST = (0U << 30),
-#define FE_TONEAREST FE_TONEAREST
- FE_TOWARDZERO = (1U << 30),
-#define FE_TOWARDZERO FE_TOWARDZERO
- FE_UPWARD = (2U << 30),
-#define FE_UPWARD FE_UPWARD
- FE_DOWNWARD = (3U << 30)
-#define FE_DOWNWARD FE_DOWNWARD
- };
-
-#define __FE_ROUND_MASK (3U << 30)
-
-/* Type representing exception flags. */
-typedef unsigned int fexcept_t;
-
-/* Type representing floating-point environment. */
-typedef unsigned int fenv_t;
-
-/* If the default argument is used we use this value. */
-#define FE_DFL_ENV ((fenv_t *) -1)
-
-#ifdef __USE_GNU
-/* Floating-point environment where none of the exception is masked. */
-# define FE_NOMASK_ENV ((fenv_t *) -2)
-#endif
-
-/* For internal use only: access the fp state register. */
-#define __fenv_stfsr(X) __asm__ ("st %%fsr,%0" : "=m" (X))
-#define __fenv_ldfsr(X) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X))
diff --git a/sysdeps/sparc/sparc64/bits/wordsize.h b/sysdeps/sparc/sparc64/bits/wordsize.h
deleted file mode 100644
index f86b7f7fbf..0000000000
--- a/sysdeps/sparc/sparc64/bits/wordsize.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 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
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#if defined __sparc_v9__ || defined __arch64__ || defined __sparcv9
-# define __WORDSIZE 64
-#else
-# define __WORDSIZE 32
-#endif
diff --git a/sysdeps/sparc/sparc64/fpu/fpu_control.h b/sysdeps/sparc/sparc64/fpu/fpu_control.h
deleted file mode 100644
index a89f00eed5..0000000000
--- a/sysdeps/sparc/sparc64/fpu/fpu_control.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* FPU control word bits. SPARC v9 version.
- Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Miguel de Icaza
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#ifndef _FPU_CONTROL_H
-#define _FPU_CONTROL_H 1
-
-
-#include <features.h>
-#include <bits/wordsize.h>
-
-/* masking of interrupts */
-#define _FPU_MASK_IM 0x08000000
-#define _FPU_MASK_OM 0x04000000
-#define _FPU_MASK_UM 0x02000000
-#define _FPU_MASK_ZM 0x01000000
-#define _FPU_MASK_PM 0x00800000
-
-/* precision control */
-#define _FPU_EXTENDED 0x00000000 /* RECOMMENDED */
-#define _FPU_DOUBLE 0x20000000
-#define _FPU_80BIT 0x30000000
-#define _FPU_SINGLE 0x10000000 /* DO NOT USE */
-
-/* rounding control / Sparc */
-#define _FPU_RC_DOWN 0xc0000000
-#define _FPU_RC_UP 0x80000000
-#define _FPU_RC_ZERO 0x40000000
-#define _FPU_RC_NEAREST 0x0 /* RECOMMENDED */
-
-#define _FPU_RESERVED 0x30300000 /* Reserved bits in cw */
-
-
-/* Now two recommended cw */
-
-/* Linux and IEEE default:
- - extended precision
- - rounding to nearest
- - no exceptions */
-#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;
-
-#endif /* fpu_control.h */
diff --git a/sysdeps/sparc/sparc64/gmp-mparam.h b/sysdeps/sparc/sparc64/gmp-mparam.h
deleted file mode 100644
index a3c66974de..0000000000
--- a/sysdeps/sparc/sparc64/gmp-mparam.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright (C) 1991, 1993, 1994 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Library General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at your
-option) any later version.
-
-The GNU MP 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 Library General Public
-License for more details.
-
-You should have received a copy of the GNU Library General Public License
-along with the GNU MP Library; see the file COPYING.LIB. If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-MA 02111-1307, USA. */
-
-#define BITS_PER_MP_LIMB 64
-#define BYTES_PER_MP_LIMB 8
-#define BITS_PER_LONGINT 64
-#define BITS_PER_INT 32
-#define BITS_PER_SHORTINT 16
-#define BITS_PER_CHAR 8