about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2012-09-05 13:45:10 +0200
committerAndreas Schwab <schwab@linux-m68k.org>2012-09-05 13:53:43 +0200
commita0070b7e7054df5f2a8da0467f15496ef8a3662f (patch)
treed76a4f72913536a525e474fd1358268765a71ab2
parente1343020fb81b1d034d667aea2d8744afc245e40 (diff)
downloadglibc-a0070b7e7054df5f2a8da0467f15496ef8a3662f.tar.gz
glibc-a0070b7e7054df5f2a8da0467f15496ef8a3662f.tar.xz
glibc-a0070b7e7054df5f2a8da0467f15496ef8a3662f.zip
Use LDBL_MIN_EXP to distinguish Intel and Motorola extended float format
-rw-r--r--ChangeLog3
-rw-r--r--stdlib/tst-strtod-round.c28
2 files changed, 14 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index d8960216fa..73da793cfa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,7 +3,8 @@
 	* stdlib/gen-tst-strtod-round.c (formats): Add Motorola extended
 	float format.
 	* stdlib/tst-strtod-round.c (TEST) [LDBL_MANT_DIG == 64 &&
-	LDBL_MAX_EXP]: Add case for Motorola extended float format.
+	LDBL_MAX_EXP == 16384]: Add case for Motorola extended float
+	format.
 	(test): Regenerate.
 
 2012-09-04  David S. Miller  <davem@davemloft.net>
diff --git a/stdlib/tst-strtod-round.c b/stdlib/tst-strtod-round.c
index 3e75c11c91..1edeff6c17 100644
--- a/stdlib/tst-strtod-round.c
+++ b/stdlib/tst-strtod-round.c
@@ -39,26 +39,22 @@ struct test {
 	      ld106exact, ld106d, ld106n, ld106z, ld106u,		      \
 	      ld113d, ld113n, ld113z, ld113u)				      \
   { s, fn, dn, true, ld53n }
-#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
-# if defined __i386__ || defined __x86_64__ || defined __ia64__
+#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && LDBL_MIN_EXP == -16381
 /* This is for the Intel extended float format.  */
-#  define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
-	       ld64id, ld64in, ld64iz, ld64iu,				      \
-	       ld64md, ld64mn, ld64mz, ld64mu,				      \
-	       ld106exact, ld106d, ld106n, ld106z, ld106u,		      \
-	       ld113d, ld113n, ld113z, ld113u)				      \
+# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u,  \
+	      ld64id, ld64in, ld64iz, ld64iu,				      \
+	      ld64md, ld64mn, ld64mz, ld64mu,				      \
+	      ld106exact, ld106d, ld106n, ld106z, ld106u,		      \
+	      ld113d, ld113n, ld113z, ld113u)				      \
   { s, fn, dn, true, ld64in }
-# elif defined __mc68000__
+#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && LDBL_MIN_EXP == -16382
 /* This is for the Motorola extended float format.  */
-#  define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
-	       ld64id, ld64in, ld64iz, ld64iu,				      \
-	       ld64md, ld64mn, ld64mz, ld64mu,				      \
-	       ld106exact, ld106d, ld106n, ld106z, ld106u,		      \
-	       ld113d, ld113n, ld113z, ld113u)				      \
+# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u,  \
+	      ld64id, ld64in, ld64iz, ld64iu,				      \
+	      ld64md, ld64mn, ld64mz, ld64mu,				      \
+	      ld106exact, ld106d, ld106n, ld106z, ld106u,		      \
+	      ld113d, ld113n, ld113z, ld113u)				      \
   { s, fn, dn, true, ld64mn }
-# else
-#  error "unknown long double format"
-# endif
 #elif LDBL_MANT_DIG == 106 && LDBL_MAX_EXP == 1024
 # define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u,  \
 	      ld64id, ld64in, ld64iz, ld64iu,				      \