aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/i386/fpu_control.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-02-13 11:07:05 +0000
committerRoland McGrath <roland@gnu.org>1996-02-13 11:07:05 +0000
commit2a072de4a1b78ae6e7cfe7d6be4cd837f3cafaf5 (patch)
tree068c2612fa620e39dc67496386861e385f1643a8 /sysdeps/unix/sysv/linux/i386/fpu_control.h
parent363113d02a48598cf903c5b5409f71fe2a16ba13 (diff)
downloadglibc-2a072de4a1b78ae6e7cfe7d6be4cd837f3cafaf5.tar
glibc-2a072de4a1b78ae6e7cfe7d6be4cd837f3cafaf5.tar.gz
glibc-2a072de4a1b78ae6e7cfe7d6be4cd837f3cafaf5.tar.bz2
glibc-2a072de4a1b78ae6e7cfe7d6be4cd837f3cafaf5.zip
Tue Feb 13 05:12:02 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=math] (sysdep_routines): Append setfpucw. (extra-objs): Append ieee-fpucw.o. (install-lib): Append libieee.a. (libieee.a): New target. * sysdeps/unix/sysv/linux/ieee-fpucw.c: New file. * sysdeps/unix/sysv/linux/i386/fpu_control.h (_FPU_GETCW, _FPU_SETCW): New macros. (fpu_control_t): New typedef. (__setfpucw): Use fpu_control_t for argument type. * sysdeps/unix/sysv/linux/fpu_control.c: Moved from linux/i386. * sysdeps/unix/sysv/linux/init-first.c: Moved from linux/i386. * sysdeps/unix/sysv/linux/Makefile [$(subdir)=math] (sysdep_routines): Append setfpucw. (extra-objs): Append ieee-fpucw.o. (install-lib): Append libieee.a. (libieee.a): New target. * sysdeps/unix/sysv/linux/ieee-fpucw.c: New file. * sysdeps/unix/sysv/linux/i386/fpu_control.h (_FPU_GETCW, _FPU_SETCW): New macros. (fpu_control_t): New typedef. (__setfpucw): Use fpu_control_t for argument type. * sysdeps/unix/sysv/linux/fpu_control.c: Moved from linux/i386. * sysdeps/unix/sysv/linux/init-first.c: Moved from linux/i386.
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/fpu_control.h')
-rw-r--r--sysdeps/unix/sysv/linux/i386/fpu_control.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/fpu_control.h b/sysdeps/unix/sysv/linux/i386/fpu_control.h
index 8cf4292643..56f42cd8e6 100644
--- a/sysdeps/unix/sysv/linux/i386/fpu_control.h
+++ b/sysdeps/unix/sysv/linux/i386/fpu_control.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Olaf Flebbe.
@@ -87,13 +87,20 @@ Boston, MA 02111-1307, USA. */
/* IEEE: same as above, but exceptions */
#define _FPU_IEEE 0x137f
-/* private namespace. It should only be used in init-first.o. */
-extern unsigned short __fpu_control;
+/* Type of the control word. */
+typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__HI__)));
+
+/* Macros for accessing the hardware control word. */
+#define _FPU_GETCW(cw) __asm__ ("fnstcw %0" : "=m" (cw))
+#define _FPU_SETCW(cw) __asm__ ("fldcw %0" : "m" (cw))
+
+/* Default control word set at startup. */
+extern fpu_control_t __fpu_control;
__BEGIN_DECLS
-/* called in init-first.o. It can be used to manipulate 387 control word. */
-extern void __setfpucw __P ((unsigned short));
+/* Called at startup. It can be used to manipulate fpu control register. */
+extern void __setfpucw __P ((fpu_control_t));
__END_DECLS