Message ID | 20180906214302.3158-1-tuliom@linux.ibm.com |
---|---|
State | New |
Headers | show |
Series | powerpc: Add missing CFI register information [BZ #23614] | expand |
On Thu, 06 Sep 2018, Tulio Magno Quites Machado Filho wrote: > [BZ #23614] > * sysdeps/powerpc/powerpc64/addmul_1.S (FUNC): Add CFI offset for > registers saved in the stack frame. > * sysdeps/powerpc/powerpc64/lshift.S (__mpn_lshift): Likewise. > * sysdeps/powerpc/powerpc64/mul_1.S (__mpn_mul_1): Likewise. OK > * sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S (__brk): Likewise. > (...) >diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S >index c8cb7edf77..fa769add4d 100644 >--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S >+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S >@@ -29,6 +29,7 @@ ENTRY (__brk) > CALL_MCOUNT 1 > > std r3,-8(r1) >+ cfi_offset(r3, -8) > DO_CALL(SYS_ify(brk)) > ld r6,-8(r1) > ld r5,.LC__curbrk@toc(r2) As mentioned in https://sourceware.org/bugzilla/show_bug.cgi?id=23614#c1, this is not needed. Looks good to me with this hunk removed and ChangeLog updated. Reviewed-by: Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
"Gabriel F. T. Gomes" <gabriel@inconstante.eti.br> writes: > On Thu, 06 Sep 2018, Tulio Magno Quites Machado Filho wrote: > >>diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S >>index c8cb7edf77..fa769add4d 100644 >>--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S >>+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S >>@@ -29,6 +29,7 @@ ENTRY (__brk) >> CALL_MCOUNT 1 >> >> std r3,-8(r1) >>+ cfi_offset(r3, -8) >> DO_CALL(SYS_ify(brk)) >> ld r6,-8(r1) >> ld r5,.LC__curbrk@toc(r2) > > > As mentioned in https://sourceware.org/bugzilla/show_bug.cgi?id=23614#c1, > this is not needed. > > Looks good to me with this hunk removed and ChangeLog updated. > > Reviewed-by: Gabriel F. T. Gomes <gabriel@inconstante.eti.br> Removed and pushed as 1d880d4a9bf7608c2cd33bbe954ce6995f79121a. Thanks!
diff --git a/sysdeps/powerpc/powerpc64/addmul_1.S b/sysdeps/powerpc/powerpc64/addmul_1.S index 48e3b1b290..e450d6a52c 100644 --- a/sysdeps/powerpc/powerpc64/addmul_1.S +++ b/sysdeps/powerpc/powerpc64/addmul_1.S @@ -34,16 +34,27 @@ #define N r5 #define VL r6 +#define R27SAVE (-40) +#define R28SAVE (-32) +#define R29SAVE (-24) +#define R30SAVE (-16) +#define R31SAVE (-8) + ENTRY_TOCLESS (FUNC, 5) - std r31, -8(r1) + std r31, R31SAVE(r1) rldicl. r0, N, 0, 62 - std r30, -16(r1) + std r30, R30SAVE(r1) cmpdi VL, r0, 2 - std r29, -24(r1) + std r29, R29SAVE(r1) addi N, N, 3 - std r28, -32(r1) + std r28, R28SAVE(r1) srdi N, N, 2 - std r27, -40(r1) + std r27, R27SAVE(r1) + cfi_offset(r31, R31SAVE) + cfi_offset(r30, R30SAVE) + cfi_offset(r29, R29SAVE) + cfi_offset(r28, R28SAVE) + cfi_offset(r27, R27SAVE) mtctr N beq cr0, L(b00) blt cr6, L(b01) @@ -199,10 +210,10 @@ L(end): mulld r0, r9, VL addic r11, r11, 1 #endif addze RP, r8 - ld r31, -8(r1) - ld r30, -16(r1) - ld r29, -24(r1) - ld r28, -32(r1) - ld r27, -40(r1) + ld r31, R31SAVE(r1) + ld r30, R30SAVE(r1) + ld r29, R29SAVE(r1) + ld r28, R28SAVE(r1) + ld r27, R27SAVE(r1) blr END(FUNC) diff --git a/sysdeps/powerpc/powerpc64/lshift.S b/sysdeps/powerpc/powerpc64/lshift.S index 8b6396ee6c..855d6f2993 100644 --- a/sysdeps/powerpc/powerpc64/lshift.S +++ b/sysdeps/powerpc/powerpc64/lshift.S @@ -26,11 +26,15 @@ #define TNC r0 #define U0 r30 #define U1 r31 +#define U0SAVE (-16) +#define U1SAVE (-8) #define RETVAL r5 ENTRY_TOCLESS (__mpn_lshift, 5) - std U1, -8(r1) - std U0, -16(r1) + std U1, U1SAVE(r1) + std U0, U0SAVE(r1) + cfi_offset(U1, U1SAVE) + cfi_offset(U0, U0SAVE) subfic TNC, CNT, 64 sldi r7, N, RP add UP, UP, r7 @@ -170,8 +174,8 @@ L(cj3): or r10, r12, r7 L(cj2): std r10, -32(RP) std r8, -40(RP) -L(ret): ld U1, -8(r1) - ld U0, -16(r1) +L(ret): ld U1, U1SAVE(r1) + ld U0, U0SAVE(r1) mr RP, RETVAL blr END(__mpn_lshift) diff --git a/sysdeps/powerpc/powerpc64/mul_1.S b/sysdeps/powerpc/powerpc64/mul_1.S index 953ded8028..cade365258 100644 --- a/sysdeps/powerpc/powerpc64/mul_1.S +++ b/sysdeps/powerpc/powerpc64/mul_1.S @@ -24,9 +24,14 @@ #define N r5 #define VL r6 +#define R26SAVE (-48) +#define R27SAVE (-40) + ENTRY_TOCLESS (__mpn_mul_1, 5) - std r27, -40(r1) - std r26, -48(r1) + std r27, R27SAVE(r1) + std r26, R26SAVE(r1) + cfi_offset(r27, R27SAVE) + cfi_offset(r26, R26SAVE) li r12, 0 ld r26, 0(UP) @@ -129,7 +134,7 @@ L(end): mulld r0, r26, VL std r0, 0(RP) std r7, 8(RP) L(ret): addze RP, r8 - ld r27, -40(r1) - ld r26, -48(r1) + ld r27, R27SAVE(r1) + ld r26, R26SAVE(r1) blr END(__mpn_mul_1) diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S index c8cb7edf77..fa769add4d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S @@ -29,6 +29,7 @@ ENTRY (__brk) CALL_MCOUNT 1 std r3,-8(r1) + cfi_offset(r3, -8) DO_CALL(SYS_ify(brk)) ld r6,-8(r1) ld r5,.LC__curbrk@toc(r2)
Add CFI information about the offset of registers stored in the stack frame. 2018-09-06 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> [BZ #23614] * sysdeps/powerpc/powerpc64/addmul_1.S (FUNC): Add CFI offset for registers saved in the stack frame. * sysdeps/powerpc/powerpc64/lshift.S (__mpn_lshift): Likewise. * sysdeps/powerpc/powerpc64/mul_1.S (__mpn_mul_1): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S (__brk): Likewise. Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> --- sysdeps/powerpc/powerpc64/addmul_1.S | 31 +++++++++++++++++-------- sysdeps/powerpc/powerpc64/lshift.S | 12 ++++++---- sysdeps/powerpc/powerpc64/mul_1.S | 13 +++++++---- sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S | 1 + 4 files changed, 39 insertions(+), 18 deletions(-)