mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-05 19:35:52 +03:00
[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.
This commit is contained in:
11
ChangeLog
11
ChangeLog
@@ -1,3 +1,14 @@
|
|||||||
|
2017-10-13 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
[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.
|
||||||
|
|
||||||
2017-10-13 Joseph Myers <joseph@codesourcery.com>
|
2017-10-13 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
* sysdeps/sparc/sparc32/fpu/s_fabsl.c: Include
|
* sysdeps/sparc/sparc32/fpu/s_fabsl.c: Include
|
||||||
|
@@ -136,6 +136,8 @@ fp_test (void)
|
|||||||
}
|
}
|
||||||
printf("%10s\n", (char *) NULL);
|
printf("%10s\n", (char *) NULL);
|
||||||
printf("%-10s\n", (char *) NULL);
|
printf("%-10s\n", (char *) NULL);
|
||||||
|
printf("%.8f\n", DBL_MAX);
|
||||||
|
printf("%.8f\n", -DBL_MAX);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@@ -181,6 +183,8 @@ I am ready for my first lesson today.";
|
|||||||
printf("null string:\t\"%s\"\n", (char *)NULL);
|
printf("null string:\t\"%s\"\n", (char *)NULL);
|
||||||
printf("limited string:\t\"%.22s\"\n", longstr);
|
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", 12.34);
|
||||||
printf("e-style >= .1:\t\"%e\"\n", 0.1234);
|
printf("e-style >= .1:\t\"%e\"\n", 0.1234);
|
||||||
printf("e-style < .1:\t\"%e\"\n", 0.001234);
|
printf("e-style < .1:\t\"%e\"\n", 0.001234);
|
||||||
|
@@ -57,6 +57,8 @@ space-padded string: " Hi, Z."
|
|||||||
left-adjusted S string: "Hi, Z. "
|
left-adjusted S string: "Hi, Z. "
|
||||||
null string: "(null)"
|
null string: "(null)"
|
||||||
limited string: "Good morning, Doctor C"
|
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-01"
|
e-style >= .1: "1.234000e-01"
|
||||||
e-style < .1: "1.234000e-03"
|
e-style < .1: "1.234000e-03"
|
||||||
@@ -124,6 +126,8 @@ prefix 6d 6o 6x 6X 6u
|
|||||||
% | -123 | 377 | ff | FF |4294967295 |
|
% | -123 | 377 | ff | FF |4294967295 |
|
||||||
(null)
|
(null)
|
||||||
(null)
|
(null)
|
||||||
|
179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000
|
||||||
|
-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000
|
||||||
1.234568e+06 should be 1.234568e+06
|
1.234568e+06 should be 1.234568e+06
|
||||||
1234567.800000 should be 1234567.800000
|
1234567.800000 should be 1234567.800000
|
||||||
1.23457e+06 should be 1.23457e+06
|
1.23457e+06 should be 1.23457e+06
|
||||||
@@ -173,6 +177,8 @@ space-padded string: " Hi, Z."
|
|||||||
left-adjusted S string: "Hi, Z. "
|
left-adjusted S string: "Hi, Z. "
|
||||||
null string: "(null)"
|
null string: "(null)"
|
||||||
limited string: "Good morning, Doctor C"
|
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-01"
|
e-style >= .1: "1.234000e-01"
|
||||||
e-style < .1: "1.234000e-03"
|
e-style < .1: "1.234000e-03"
|
||||||
@@ -240,6 +246,8 @@ prefix 6d 6o 6x 6X 6u
|
|||||||
% | -123 | 377 | ff | FF |4294967295 |
|
% | -123 | 377 | ff | FF |4294967295 |
|
||||||
(null)
|
(null)
|
||||||
(null)
|
(null)
|
||||||
|
179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000
|
||||||
|
-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000
|
||||||
1.234568e+06 should be 1.234568e+06
|
1.234568e+06 should be 1.234568e+06
|
||||||
1234567.800000 should be 1234567.800000
|
1234567.800000 should be 1234567.800000
|
||||||
1.23457e+06 should be 1.23457e+06
|
1.23457e+06 should be 1.23457e+06
|
||||||
|
@@ -38,17 +38,17 @@
|
|||||||
|
|
||||||
ENTRY_TOCLESS (FUNC, 5)
|
ENTRY_TOCLESS (FUNC, 5)
|
||||||
#ifdef USE_AS_SUB
|
#ifdef USE_AS_SUB
|
||||||
addic r0, r0, 0
|
|
||||||
#else
|
|
||||||
addic r0, r1, -1
|
addic r0, r1, -1
|
||||||
|
#else
|
||||||
|
addic r0, r0, 0
|
||||||
#endif
|
#endif
|
||||||
andi. r7, N, 1
|
andi. r7, N, 1
|
||||||
beq L(bx0)
|
beq L(bx0)
|
||||||
|
|
||||||
ld r7, 0(UP)
|
ld r7, 0(UP)
|
||||||
ld r9, r0(VP)
|
ld r9, 0(VP)
|
||||||
ADDSUBC r11, r9, r7
|
ADDSUBC r11, r9, r7
|
||||||
std r11, r0(RP)
|
std r11, 0(RP)
|
||||||
cmpldi N, N, 1
|
cmpldi N, N, 1
|
||||||
beq N, L(end)
|
beq N, L(end)
|
||||||
addi UP, UP, 8
|
addi UP, UP, 8
|
||||||
|
Reference in New Issue
Block a user