mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-06 14:10:30 +08:00
powerpc: Add missing CFI register information (bug #23614)
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>
This commit is contained in:
parent
1a502f5260
commit
1d880d4a9b
@ -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.
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user