This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 12/12] S390: Fix unwind in 32-bit _mcount
- From: Ilya Leoshkevich <iii at linux dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Cc: stli at linux dot ibm dot com, Ilya Leoshkevich <iii at linux dot ibm dot com>
- Date: Thu, 2 Aug 2018 09:57:35 +0200
- Subject: [PATCH 12/12] S390: Fix unwind in 32-bit _mcount
- References: <20180802075735.3457-1-iii@linux.ibm.com>
* Fix CFI offset for %r14.
* Fix unwound value of %r15 being off by 128 bytes.
* sysdeps/s390/s390-32/s390-mcount.S (_mcount):
Fix unwind.
---
sysdeps/s390/s390-32/s390-mcount.S | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/sysdeps/s390/s390-32/s390-mcount.S b/sysdeps/s390/s390-32/s390-mcount.S
index 153777e1b8..84f48a20fc 100644
--- a/sysdeps/s390/s390-32/s390-mcount.S
+++ b/sysdeps/s390/s390-32/s390-mcount.S
@@ -55,9 +55,13 @@ C_LABEL(_mcount)
/* Save the caller-clobbered registers. */
ahi %r15,-128
cfi_adjust_cfa_offset (128)
+ /* binutils 2.28+: .cfi_val_offset r15, -96 */
+ .cfi_escape \
+ /* DW_CFA_val_offset */ 0x14, \
+ /* r15 */ 0x0f, \
+ /* scaled offset */ 0x18
stm %r14,%r5,96(%r15)
- cfi_offset (r14, 0)
- cfi_offset (r15, 4)
+ cfi_offset (r14, -128)
l %r2,132(%r15) # callers address = first parameter
la %r2,0(%r2) # clear bit 0
la %r3,0(%r14) # callees address = second parameter
--
2.18.0