diff options
author | Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> | 2016-02-23 11:10:34 +0530 |
---|---|---|
committer | Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> | 2016-03-11 11:31:58 -0300 |
commit | 869d7180dd4a462674971a25b66070da7f2eabcf (patch) | |
tree | d7eff84810c8790b631e2e2d1d7fc35add9be12a /sysdeps/powerpc/powerpc64/power4 | |
parent | f60ee13f5d078b29e7ccdaae57bb4e9f14946eb4 (diff) | |
download | glibc-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.S | 12 |
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__ |