aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>2017-10-13 15:44:39 -0300
committerTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>2017-10-13 15:44:39 -0300
commit179dcdb7af4983fd42824db748ee6cb05f8d71cf (patch)
tree97c3a0e45d5defa1789c5426e341b4081f20a48c /stdio-common
parentUse libm_alias_ldouble for SPARC fabsl. (diff)
downloadglibc-179dcdb7af4983fd42824db748ee6cb05f8d71cf.tar.gz
glibc-179dcdb7af4983fd42824db748ee6cb05f8d71cf.tar.bz2
glibc-179dcdb7af4983fd42824db748ee6cb05f8d71cf.zip
[BZ #22142] powerpc: Fix the carry bit on mpn_[add|sub]_n on POWER7
Fix the ifdef clause that was being used in the opposite way, setting a wrong value of the carry bit. This is also correcting 2 memory accesses that were mistakenly referring to r0 while they were supposed to mean the immediate value 0. [BZ #22142] * stdio-common/tst-printf.c (fp_test): Add tests for DBL_MAX and -DBL_MAX. (do_test): Likewise. * stdio-common/tst-printf.sh: Likewise. * sysdeps/powerpc/powerpc64/power7/add_n.S: Invert the initial ifdef clause in order to set the carry bit right. Replace r0 by 0 without changing the behavior.
Diffstat (limited to 'stdio-common')
-rw-r--r--stdio-common/tst-printf.c4
-rw-r--r--stdio-common/tst-printf.sh8
2 files changed, 12 insertions, 0 deletions
diff --git a/stdio-common/tst-printf.c b/stdio-common/tst-printf.c
index b6d62a5a2f..162effaf63 100644
--- a/stdio-common/tst-printf.c
+++ b/stdio-common/tst-printf.c
@@ -136,6 +136,8 @@ fp_test (void)
}
printf("%10s\n", (char *) NULL);
printf("%-10s\n", (char *) NULL);
+ printf("%.8f\n", DBL_MAX);
+ printf("%.8f\n", -DBL_MAX);
}
static int
@@ -181,6 +183,8 @@ I am ready for my first lesson today.";
printf("null string:\t\"%s\"\n", (char *)NULL);
printf("limited string:\t\"%.22s\"\n", longstr);
+ printf("a-style max:\t\"%a\"\n", DBL_MAX);
+ printf("a-style -max:\t\"%a\"\n", -DBL_MAX);
printf("e-style >= 1:\t\"%e\"\n", 12.34);
printf("e-style >= .1:\t\"%e\"\n", 0.1234);
printf("e-style < .1:\t\"%e\"\n", 0.001234);
diff --git a/stdio-common/tst-printf.sh b/stdio-common/tst-printf.sh
index c413980dd3..48cb62cbca 100644
--- a/stdio-common/tst-printf.sh
+++ b/stdio-common/tst-printf.sh
@@ -57,6 +57,8 @@ space-padded string: " Hi, Z."
left-adjusted S string: "Hi, Z. "
null string: "(null)"
limited string: "Good morning, Doctor C"
+a-style max: "0x1.fffffffffffffp+1023"
+a-style -max: "-0x1.fffffffffffffp+1023"
e-style >= 1: "1.234000e+01"
e-style >= .1: "1.234000e-01"
e-style < .1: "1.234000e-03"
@@ -124,6 +126,8 @@ prefix 6d 6o 6x 6X 6u
% | -123 | 377 | ff | FF |4294967295 |
(null)
(null)
+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000
+-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000
1.234568e+06 should be 1.234568e+06
1234567.800000 should be 1234567.800000
1.23457e+06 should be 1.23457e+06
@@ -173,6 +177,8 @@ space-padded string: " Hi, Z."
left-adjusted S string: "Hi, Z. "
null string: "(null)"
limited string: "Good morning, Doctor C"
+a-style max: "0x1.fffffffffffffp+1023"
+a-style -max: "-0x1.fffffffffffffp+1023"
e-style >= 1: "1.234000e+01"
e-style >= .1: "1.234000e-01"
e-style < .1: "1.234000e-03"
@@ -240,6 +246,8 @@ prefix 6d 6o 6x 6X 6u
% | -123 | 377 | ff | FF |4294967295 |
(null)
(null)
+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000
+-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000
1.234568e+06 should be 1.234568e+06
1234567.800000 should be 1234567.800000
1.23457e+06 should be 1.23457e+06