about summary refs log tree commit diff
path: root/sysdeps/powerpc
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 /sysdeps/powerpc
parent006e766437033d6565133ce356b55d7b301a7b58 (diff)
downloadglibc-179dcdb7af4983fd42824db748ee6cb05f8d71cf.tar.gz
glibc-179dcdb7af4983fd42824db748ee6cb05f8d71cf.tar.xz
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 'sysdeps/powerpc')
-rw-r--r--sysdeps/powerpc/powerpc64/power7/add_n.S8
1 files changed, 4 insertions, 4 deletions
diff --git a/sysdeps/powerpc/powerpc64/power7/add_n.S b/sysdeps/powerpc/powerpc64/power7/add_n.S
index 02335c1848..88aec84e5a 100644
--- a/sysdeps/powerpc/powerpc64/power7/add_n.S
+++ b/sysdeps/powerpc/powerpc64/power7/add_n.S
@@ -38,17 +38,17 @@
 
 ENTRY_TOCLESS (FUNC, 5)
 #ifdef USE_AS_SUB
-	addic	r0, r0, 0
+	addic	r0, r1, -1
 #else
-	addic   r0, r1, -1
+	addic	r0, r0, 0
 #endif
 	andi.	r7, N, 1
 	beq	L(bx0)
 
 	ld	r7, 0(UP)
-	ld	r9, r0(VP)
+	ld	r9, 0(VP)
 	ADDSUBC	r11, r9, r7
-	std	r11, r0(RP)
+	std	r11, 0(RP)
 	cmpldi	N, N, 1
 	beq	N, L(end)
 	addi	UP, UP, 8