about summary refs log tree commit diff
path: root/sysdeps/powerpc/powerpc64/power4
diff options
context:
space:
mode:
authorRajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>2016-02-23 11:10:34 +0530
committerTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>2016-03-11 11:31:58 -0300
commit869d7180dd4a462674971a25b66070da7f2eabcf (patch)
treed7eff84810c8790b631e2e2d1d7fc35add9be12a /sysdeps/powerpc/powerpc64/power4
parentf60ee13f5d078b29e7ccdaae57bb4e9f14946eb4 (diff)
downloadglibc-869d7180dd4a462674971a25b66070da7f2eabcf.tar.gz
glibc-869d7180dd4a462674971a25b66070da7f2eabcf.tar.xz
glibc-869d7180dd4a462674971a25b66070da7f2eabcf.zip
powerpc: Rearrange cfi_offset calls
This patch rearranges cfi_offset() calls after the last store
so as to avoid extra DW_CFA_advance opcodes in unwind information.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/power4')
-rw-r--r--sysdeps/powerpc/powerpc64/power4/memcmp.S12
1 files changed, 6 insertions, 6 deletions
diff --git a/sysdeps/powerpc/powerpc64/power4/memcmp.S b/sysdeps/powerpc/powerpc64/power4/memcmp.S
index c1a77c64b0..65c659660d 100644
--- a/sysdeps/powerpc/powerpc64/power4/memcmp.S
+++ b/sysdeps/powerpc/powerpc64/power4/memcmp.S
@@ -52,8 +52,8 @@ EALIGN (memcmp, 4, 0)
    byte loop.  */
 	blt	cr1, L(bytealigned)
 	std	rWORD8, -8(r1)
-	cfi_offset(rWORD8, -8)
 	std	rWORD7, -16(r1)
+	cfi_offset(rWORD8, -8)
 	cfi_offset(rWORD7, -16)
 	bne	L(unaligned)
 /* At this point we know both strings have the same alignment and the
@@ -728,18 +728,18 @@ L(unaligned):
    the actual start of rSTR2.  */
 	clrrdi	rSTR2, rSTR2, 3
 	std	rWORD2_SHIFT, -48(r1)
-	cfi_offset(rWORD2_SHIFT, -48)
 /* Compute the left/right shift counts for the unaligned rSTR2,
    compensating for the logical (DW aligned) start of rSTR1.  */
 	clrldi	rSHL, rWORD8_SHIFT, 61
 	clrrdi	rSTR1, rSTR1, 3
 	std	rWORD4_SHIFT, -56(r1)
-	cfi_offset(rWORD4_SHIFT, -56)
 	sldi	rSHL, rSHL, 3
 	cmpld	cr5, rWORD8_SHIFT, rSTR2
 	add	rN, rN, r12
 	sldi	rWORD6, r12, 3
 	std	rWORD6_SHIFT, -64(r1)
+	cfi_offset(rWORD2_SHIFT, -48)
+	cfi_offset(rWORD4_SHIFT, -56)
 	cfi_offset(rWORD6_SHIFT, -64)
 	subfic	rSHR, rSHL, 64
 	srdi	r0, rN, 5	/* Divide by 32 */
@@ -833,15 +833,15 @@ L(duPs4):
 	.align	4
 L(DWunaligned):
 	std	rWORD8_SHIFT, -40(r1)
-	cfi_offset(rWORD8_SHIFT, -40)
 	clrrdi	rSTR2, rSTR2, 3
 	std	rWORD2_SHIFT, -48(r1)
-	cfi_offset(rWORD2_SHIFT, -48)
 	srdi	r0, rN, 5	/* Divide by 32 */
 	std	rWORD4_SHIFT, -56(r1)
-	cfi_offset(rWORD4_SHIFT, -56)
 	andi.	r12, rN, 24	/* Get the DW remainder */
 	std	rWORD6_SHIFT, -64(r1)
+	cfi_offset(rWORD8_SHIFT, -40)
+	cfi_offset(rWORD2_SHIFT, -48)
+	cfi_offset(rWORD4_SHIFT, -56)
 	cfi_offset(rWORD6_SHIFT, -64)
 	sldi	rSHL, rSHL, 3
 #ifdef __LITTLE_ENDIAN__