]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
powerpc: Add missing CFI register information (bug #23614)
authorTulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Thu, 13 Dec 2018 08:42:22 +0000 (09:42 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Thu, 13 Dec 2018 08:42:22 +0000 (09:42 +0100)
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>
(cherry picked from commit 1d880d4a9bf7608c2cd33bbe954ce6995f79121a)

ChangeLog
NEWS
sysdeps/powerpc/powerpc64/addmul_1.S
sysdeps/powerpc/powerpc64/lshift.S
sysdeps/powerpc/powerpc64/mul_1.S

index 09f50f28a0bddf79379b63861e877e6ed23962cf..6ad1f7a91379f45a17229d35de62a89d8bddc409 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-07  DJ Delorie  <dj@redhat.com>
 
        [BZ #23907]
diff --git a/NEWS b/NEWS
index 4d4a5a1911e9f5cefec21f66ac12329d783efb6f..05f7342fcbc1eecdf93e81091e1cc3c2bcf40b8b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,7 @@ The following bugs are resolved with this release:
   [23578] regex: Fix memory overread in re_compile_pattern
   [23579] libc: Errors misreported in preadv2
   [23606] Missing ENDBR32 in sysdeps/i386/start.S
+  [23614] powerpc: missing CFI register information in __mpn_* functions
   [23679] gethostid: Missing NULL check for gethostbyname_r result
   [23709] Fix CPU string flags for Haswell-type CPUs
   [23717] Fix stack overflow in stdlib/tst-setcontext9
index 48e3b1b290084174e477fc4bb9ba9349efd2f62a..e450d6a52cdea0e3ee82339fb7d6c467649b15b3 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 8b6396ee6cf21153d93800aaddbec6f039899556..855d6f2993d7634b5072273d512469682a56be13 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 953ded802888ecc1abc05e9af569b13bf162c5e0..cade3652586ba65af69d5efcbd4488910f111692 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)