mirror of git://sourceware.org/git/glibc.git
aarch64: fix cfi directives around __libc_arm_za_disable
Incorrect CFI directive corrupted call stack information and prevented debuggers from correctly displaying call stack information. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> (cherry picked from commit2f77aec043) (cherry picked from commitde1fe81f47)
This commit is contained in:
parent
e4ffcf32b9
commit
5bf8ee7ad5
|
|
@ -155,11 +155,12 @@
|
|||
that allows to call it without stack manipulation and preserving
|
||||
most of the registers. */
|
||||
.macro CALL_LIBC_ARM_ZA_DISABLE
|
||||
cfi_remember_state
|
||||
mov x13, x30
|
||||
.cfi_register x30, x13
|
||||
cfi_register(x30, x13)
|
||||
bl __libc_arm_za_disable
|
||||
mov x30, x13
|
||||
.cfi_register x13, x30
|
||||
cfi_restore_state
|
||||
.endm
|
||||
|
||||
#else /* not __ASSEMBLER__ */
|
||||
|
|
@ -255,11 +256,12 @@
|
|||
({ \
|
||||
unsigned long int __tmp; \
|
||||
asm volatile ( \
|
||||
" .cfi_remember_state\n" \
|
||||
" mov %0, x30\n" \
|
||||
" .cfi_register x30, %0\n" \
|
||||
" .cfi_register x30, %0\n" \
|
||||
" bl __libc_arm_za_disable\n" \
|
||||
" mov x30, %0\n" \
|
||||
" .cfi_register %0, x30\n" \
|
||||
" .cfi_restore_state\n" \
|
||||
: "=r" (__tmp) \
|
||||
: \
|
||||
: "x14", "x15", "x16", "x17", "x18", "memory" ); \
|
||||
|
|
|
|||
Loading…
Reference in New Issue