powerpc: Add missing CFI register information (bug #23614)
authorTulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Wed, 12 Dec 2018 12:41:52 +0000 (10:41 -0200)
committerTulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Wed, 12 Dec 2018 12:56:51 +0000 (10:56 -0200)
Add CFI information about the offset of registers stored in the stack
frame.

[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.

Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Reviewed-by: Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
ChangeLog
sysdeps/powerpc/powerpc64/addmul_1.S
sysdeps/powerpc/powerpc64/lshift.S
sysdeps/powerpc/powerpc64/mul_1.S

index 7a78b6b..07dfe69 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2018-12-12  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.
+
 2018-12-11  Gabriel F. T. Gomes  <gabriel@inconstante.eti.br>
 
        * include/bits/monetary-ldbl.h: New file.
index 48e3b1b..e450d6a 100644 (file)
 #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)
index 8b6396e..855d6f2 100644 (file)
 #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)
index 953ded8..cade365 100644 (file)
 #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)