aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Krebbel <Andreas.Krebbel@de.ibm.com>2009-12-07 17:27:45 -0800
committerUlrich Drepper <drepper@redhat.com>2009-12-07 17:27:45 -0800
commit406300d20a052a015dda915af632bc1d64af8394 (patch)
tree4a0bc3c413dc77dc122a7835a8dccdbc725f2fdd
parent941a0d997012025f9138277e566f0001c2fa43f3 (diff)
downloadglibc-406300d20a052a015dda915af632bc1d64af8394.tar
glibc-406300d20a052a015dda915af632bc1d64af8394.tar.gz
glibc-406300d20a052a015dda915af632bc1d64af8394.tar.bz2
glibc-406300d20a052a015dda915af632bc1d64af8394.zip
Add even more cfi to s390 asm files.
-rw-r--r--ChangeLog8
-rw-r--r--sysdeps/s390/s390-32/dl-trampoline.S6
-rw-r--r--sysdeps/s390/s390-32/s390-mcount.S6
-rw-r--r--sysdeps/s390/s390-64/dl-trampoline.S8
-rw-r--r--sysdeps/s390/s390-64/s390x-mcount.S6
5 files changed, 34 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 4aa537fa9d..1f4d2b2723 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-12-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * sysdeps/s390/s390-64/dl-trampoline.S: Add CFI for the call saved
+ registers.
+ * sysdeps/s390/s390-32/dl-trampoline.S: Likewise.
+ * sysdeps/s390/s390-32/s390-mcount.S: Add CFI.
+ * sysdeps/s390/s390-64/s390x-mcount.S: Add CFI.
+
2009-11-30 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/bits/sched.h: Define SCHED_IDLE and
diff --git a/sysdeps/s390/s390-32/dl-trampoline.S b/sysdeps/s390/s390-32/dl-trampoline.S
index fbbbc189db..cedef46382 100644
--- a/sysdeps/s390/s390-32/dl-trampoline.S
+++ b/sysdeps/s390/s390-32/dl-trampoline.S
@@ -45,6 +45,7 @@
_dl_runtime_resolve:
stm %r2,%r5,32(%r15) # save registers
st %r14,8(%r15)
+ cfi_offset (r14, -88)
lr %r0,%r15 # create stack frame
ahi %r15,-96
cfi_adjust_cfa_offset (96)
@@ -76,6 +77,11 @@ _dl_runtime_profile:
st %r6,8(%r15)
st %r12,12(%r15)
st %r14,16(%r15)
+ cfi_offset (r6, -64)
+ cfi_offset (f0, -40)
+ cfi_offset (f2, -32)
+ cfi_offset (r12, -84)
+ cfi_offset (r14, -80)
lr %r12,%r15 # create stack frame
cfi_def_cfa_register (12)
ahi %r15,-96
diff --git a/sysdeps/s390/s390-32/s390-mcount.S b/sysdeps/s390/s390-32/s390-mcount.S
index 6d11f9bbdb..aae433bbc5 100644
--- a/sysdeps/s390/s390-32/s390-mcount.S
+++ b/sysdeps/s390/s390-32/s390-mcount.S
@@ -50,11 +50,15 @@
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(_mcount)
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
+ cfi_startproc
.align ALIGNARG(4)
C_LABEL(_mcount)
/* Save the caller-clobbered registers. */
ahi %r15,-128
+ cfi_adjust_cfa_offset (128)
stm %r14,%r5,96(%r15)
+ cfi_offset (r14, 0)
+ cfi_offset (r15, 4)
l %r2,132(%r15) # callers address = first parameter
la %r2,0(%r2) # clear bit 0
la %r3,0(%r14) # callees address = second parameter
@@ -77,7 +81,9 @@ C_LABEL(_mcount)
*/
lm %r14,%r5,96(%r15)
ahi %r15,128
+ cfi_adjust_cfa_offset (-128)
br %r14
+ cfi_endproc
ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
#undef mcount
diff --git a/sysdeps/s390/s390-64/dl-trampoline.S b/sysdeps/s390/s390-64/dl-trampoline.S
index 72043c9779..b49c68108d 100644
--- a/sysdeps/s390/s390-64/dl-trampoline.S
+++ b/sysdeps/s390/s390-64/dl-trampoline.S
@@ -42,6 +42,7 @@
_dl_runtime_resolve:
stmg 2,5,64(15) # save registers
stg 14,96(15)
+ cfi_offset (r14, -64)
lgr 0,15 # create stack frame
aghi 15,-160
cfi_adjust_cfa_offset (160)
@@ -72,6 +73,13 @@ _dl_runtime_profile:
stg %r6,16(%r15)
stg %r12,24(%r15)
stg %r14,32(%r15)
+ cfi_offset (r6, -96)
+ cfi_offset (f0, -56)
+ cfi_offset (f2, -48)
+ cfi_offset (f4, -40)
+ cfi_offset (f6, -32)
+ cfi_offset (r12, -136)
+ cfi_offset (r14, -128)
lgr %r12,%r15 # create stack frame
cfi_def_cfa_register (12)
aghi %r15,-160
diff --git a/sysdeps/s390/s390-64/s390x-mcount.S b/sysdeps/s390/s390-64/s390x-mcount.S
index 78b55218a9..e866c3f5a9 100644
--- a/sysdeps/s390/s390-64/s390x-mcount.S
+++ b/sysdeps/s390/s390-64/s390x-mcount.S
@@ -46,11 +46,15 @@
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(_mcount)
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
+ cfi_startproc
.align ALIGNARG(4)
C_LABEL(_mcount)
/* Save the caller-clobbered registers. */
aghi %r15,-224
+ cfi_adjust_cfa_offset (224)
stmg %r14,%r5,160(%r15)
+ cfi_offset (r14, 0)
+ cfi_offset (r15, 8)
lg %r2,232(%r15) # callers address = first parameter
la %r2,0(%r2) # clear bit 0
la %r3,0(%r14) # callees address = second parameter
@@ -65,7 +69,9 @@ C_LABEL(_mcount)
return value. */
lmg %r14,%r5,160(%r15)
aghi %r15,224
+ cfi_adjust_cfa_offset (-224)
br %r14
+ cfi_endproc
ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
#undef mcount