aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/alpha/fpu/bits
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-08-19 16:58:09 +0000
committerUlrich Drepper <drepper@redhat.com>2000-08-19 16:58:09 +0000
commit60f0e64b3c13cf717fd49d327dbbca88568ca647 (patch)
tree06093754479c7bbe18bed7bb50a905358290f42f /sysdeps/alpha/fpu/bits
parent277723d891149ded87f4d7fbb080575c722bdf75 (diff)
downloadglibc-60f0e64b3c13cf717fd49d327dbbca88568ca647.tar
glibc-60f0e64b3c13cf717fd49d327dbbca88568ca647.tar.gz
glibc-60f0e64b3c13cf717fd49d327dbbca88568ca647.tar.bz2
glibc-60f0e64b3c13cf717fd49d327dbbca88568ca647.zip
Update.
* malloc/mtrace.pl (usage): Inform about --help. 2000-08-19 Wolfram Gloger <wg@malloc.de> * malloc/malloc.c (new_heap): try harder to get an aligned chunk of size HEAP_MAX_SIZE. 2000-08-19 Andreas Jaeger <aj@suse.de> * shlib-versions: Remove libnss_db, libdb and libdb1. 2000-08-19 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/alpha/readdir.c: Move... * sysdeps/unix/sysv/linux/ia64/readdir.c: ...here and * sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c: ...here. * sysdeps/unix/sysv/linux/alpha/readdir_r.c: Move... * sysdeps/unix/sysv/linux/ia64/readdir_r.c: ...here and * sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c: ...here. * sysdeps/unix/sysv/linux/alpha/readdir64.c: Remove. * sysdeps/unix/sysv/linux/alpha/readdir64_r.c: Remove. * sysdeps/unix/sysv/linux/alpha/getdents64.c: Remove. * sysdeps/unix/sysv/linux/alpha/getdents.c: Only use for non-LFS getdents. * sysdeps/unix/sysv/linux/readdir64.c: Remove versioning. * sysdeps/unix/sysv/linux/readdir64_r.c: Likewise. 2000-08-18 Jakub Jelinek <jakub@redhat.com> * include/glob.h (__glob64): Add prototype. * sysdeps/generic/glob.c: If GLOB_ONLY_P is defined, only define glob and glob_in_dir. * sysdeps/unix/sysv/linux/i386/Versions: Add glob64@@GLIBC_2.2. * sysdeps/unix/sysv/linux/arm/Versions: Likewise. * sysdeps/unix/sysv/linux/powerpc/Versions: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise. * sysdeps/unix/sysv/linux/i386/glob64.c: New file. * sysdeps/unix/sysv/linux/arm/glob64.c: New file. * sysdeps/unix/sysv/linux/powerpc/glob64.c: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c: New file. 2000-08-18 Jakub Jelinek <jakub@redhat.com> * malloc/Makefile (memusage): libmemusage.so is installed in slibdir. 2000-08-17 Andreas Jaeger <aj@suse.de> * math/test-fenv.c (fe_single_test): New function. (fe_env_tests): Use fe_single_test. (feenable_test): New tests for feenable/fedisable and fegetexcpetions. (feexcp_mask_test): New function. (feexcp_nomask_test): New function. 2000-08-19 Richard Henderson <rth@cygnus.com> * sysdeps/alpha/fpu/fenv_libc.h: New file. * sysdeps/alpha/fpu/fclrexcpt.c: Use it. * sysdeps/alpha/fpu/fegetenv.c: Likewise. * sysdeps/alpha/fpu/fesetround.c: Likewise. * sysdeps/alpha/fpu/fegetround.c: Likewise. * sysdeps/alpha/fpu/fgetexcptflg.c: Likewise. * sysdeps/alpha/fpu/fraiseexcpt.c: Likewise. * sysdeps/alpha/fpu/ftestexcept.c: Likewise. * sysdeps/alpha/fpu/fedisblxcpt.c: Likewise. Use the smaller mask. * sysdeps/alpha/fpu/feenablxcpt.c: Likewise. * sysdeps/alpha/fpu/fegetexcept.c: Likewise. * sysdeps/alpha/fpu/feholdexcpt.c: Retain the SWCR_MAP bits. * sysdeps/alpha/fpu/fesetenv.c: Likewise. * sysdeps/alpha/fpu/feupdateenv.c: Likewise. * sysdeps/alpha/fpu/fsetexcptflg.c: Likewise. * sysdeps/alpha/fpu/bits/fenv.h (FE_DENORMAL): New. (FE_MAP_DMZ, FE_MAP_UMZ, FE_NONIEEE_ENV): New. 2000-08-19 Andreas Jaeger <aj@suse.de>
Diffstat (limited to 'sysdeps/alpha/fpu/bits')
-rw-r--r--sysdeps/alpha/fpu/bits/fenv.h26
1 files changed, 23 insertions, 3 deletions
diff --git a/sysdeps/alpha/fpu/bits/fenv.h b/sysdeps/alpha/fpu/bits/fenv.h
index 82b85debcd..b6d9b98c86 100644
--- a/sysdeps/alpha/fpu/bits/fenv.h
+++ b/sysdeps/alpha/fpu/bits/fenv.h
@@ -36,6 +36,11 @@
enum
{
+#ifdef __USE_GNU
+ FE_DENORMAL = 1UL << 22,
+#define FE_DENORMAL FE_DENORMAL
+#endif
+
FE_INEXACT = 1UL << 21,
#define FE_INEXACT FE_INEXACT
@@ -51,12 +56,10 @@ enum
FE_INVALID = 1UL << 17,
#define FE_INVALID FE_INVALID
- FE_ALL_EXCEPT =
- (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
+ FE_ALL_EXCEPT = 0x3f << 17
#define FE_ALL_EXCEPT FE_ALL_EXCEPT
};
-
/* Alpha chips support all four defined rouding modes.
Note that code must be compiled to use dynamic rounding (/d) instructions
@@ -81,6 +84,19 @@ enum
#define FE_UPWARD FE_UPWARD
};
+#ifdef __USE_GNU
+/* On later hardware, and later kernels for earlier hardware, we can forcibly
+ underflow denormal inputs and outputs. This can speed up certain programs
+ significantly, usually without affecting accuracy. */
+enum
+ {
+ FE_MAP_DMZ = 1UL << 12, /* Map denorm inputs to zero */
+#define FE_MAP_DMZ FE_MAP_DMZ
+
+ FE_MAP_UMZ = 1UL << 13, /* Map underflowed outputs to zero */
+#define FE_MAP_UMZ FE_MAP_UMZ
+ };
+#endif
/* Type representing exception flags. */
typedef unsigned long int fexcept_t;
@@ -96,6 +112,10 @@ typedef unsigned long int fenv_t;
#ifdef __USE_GNU
/* Floating-point environment where none of the exceptions are masked. */
# define FE_NOMASK_ENV ((fenv_t *) 0x880000000000003eUL)
+
+/* Floating-point environment with (processor-dependent) non-IEEE floating
+ point. In this case, mapping denormals to zero. */
+# define FE_NONIEEE_ENV ((fenv_t *) 0x8800000000003000UL)
#endif
/* The system calls to talk to the kernel's FP code. */