From: Martin Schwidefsky <schwidefsky@de.ibm.com>
To: libc-hacker@sources.redhat.com
Subject: cfi directives for s390*.
Date: Fri, 05 Dec 2003 17:48:00 -0000 [thread overview]
Message-ID: <200312051847.00459.schwidefsky@de.ibm.com> (raw)
Hi,
I inspected all s390* assembler files and added CFI directives to them.
The directives necessary for cancallation support are already there.
Whats missing are the cfi calls in the remaining .S files which come
in handy for debugging. I hope I got them all...
blue skies,
Martin.
2003-12-05 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/s390/s390-32/elf/setjmp.S (setjmp, __setjmp): Add END
statements.
* sysdeps/s390/s390-64/elf/setjmp.S (setjmp, __setjmp): Likewise.
* sysdeps/s390/s390-32/sysdep.h (ENTRY): Add cfi_startproc directive.
(END): Add cfi_endproc directive.
* sysdeps/s390/s390-64/sysdep.h (ENTRY, END): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/socket.S (__socket): Remove
cfi_startproc and cfi_endproc directive.
* sysdeps/unix/sysv/linux/s390/s390-64/socket.S (__socket): Likewise.
* sysdeps/s390/s390-32/addmul_1.S (__mpn_addmul_1): Add CFI directives.
* sysdeps/s390/s390-32/add_n.S (__mpn_add_n): Likewise.
* sysdeps/s390/s390-64/add_n.S (__mpn_add_n): Likewise.
* sysdeps/s390/s390-32/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE):
Likewise.
* sysdeps/s390/s390-64/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE):
Likewise.
* sysdeps/s390/s390-32/mul_1.S (__mpn_mul_1): Likewise.
* sysdeps/s390/s390-32/sub_n.S (__mpn_sub_n): Likewise.
* sysdeps/s390/s390-64/sub_n.S (__mpn_sub_n): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S (__mmap64): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/mmap.S (__mmap): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/mmap.S (__mmap): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/syscall.S (syscall): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/syscall.S (syscall): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S (__syscall_error):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S (__syscall_error):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/clone.S (__clone): Add CFI
directives. Move thread_start out of ENTRY/PSEUDO_END block to
make backchain terminate.
* sysdeps/unix/sysv/linux/s390/s390-64/clone.S (__clone): Likewise.
diff -urN libc/sysdeps/s390/s390-32/addmul_1.S libc-s390/sysdeps/s390/s390-32/addmul_1.S
--- libc/sysdeps/s390/s390-32/addmul_1.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-32/addmul_1.S 2003-12-05 14:38:06.000000000 +0100
@@ -33,6 +33,7 @@
.text
ENTRY(__mpn_addmul_1)
st %r6,24(%r15)
+ cfi_offset (%r6, -72)
slr %r6,%r6 # cy_limb = 0
.L0: icm %r1,15,0(%r3) # get s1_ptr[i]
mr %r0,%r5 # umul_ppmm(prod_high,prod_low,s1_ptr[j],s2_limb)
diff -urN libc/sysdeps/s390/s390-32/add_n.S libc-s390/sysdeps/s390/s390-32/add_n.S
--- libc/sysdeps/s390/s390-32/add_n.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-32/add_n.S 2003-12-05 14:38:06.000000000 +0100
@@ -33,6 +33,7 @@
.text
ENTRY(__mpn_add_n)
st %r6,24(%r15) # save register 6
+ cfi_offset (%r6, -72)
sr %r1,%r1
lhi %r0,1 # cannot use ahi to add carry, use alr
.L0: l %r6,0(%r1,%r3) # .L0 -> no carry from last add
diff -urN libc/sysdeps/s390/s390-32/dl-machine.h libc-s390/sysdeps/s390/s390-32/dl-machine.h
--- libc/sysdeps/s390/s390-32/dl-machine.h 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-32/dl-machine.h 2003-12-05 14:38:06.000000000 +0100
@@ -146,12 +146,14 @@
.globl _dl_runtime_resolve\n\
.type _dl_runtime_resolve, @function\n\
.align 16\n\
+ " CFI_STARTPROC "\n\
_dl_runtime_resolve:\n\
# save registers\n\
stm 2,5,32(15)\n\
st 14,48(15)\n\
lr 0,15\n\
ahi 15,-96\n\
+ " CFI_ADJUST_CFA_OFFSET(96)"\n\
st 0,0(15)\n\
# load args saved by PLT\n\
lm 2,3,120(15)\n\
@@ -162,21 +164,25 @@
lr 1,2 # function addr returned in r2\n\
# restore registers\n\
ahi 15,96\n\
+ " CFI_ADJUST_CFA_OFFSET(-96)" \n\
l 14,48(15)\n\
lm 2,5,32(15)\n\
br 1\n\
1: .long fixup-1b\n\
+ " CFI_ENDPROC "\n\
.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
\n\
.globl _dl_runtime_profile\n\
.type _dl_runtime_profile, @function\n\
.align 16\n\
+ " CFI_STARTPROC "\n\
_dl_runtime_profile:\n\
# save registers\n\
stm 2,5,32(15)\n\
st 14,48(15)\n\
lr 0,15\n\
ahi 15,-96\n\
+ " CFI_ADJUST_CFA_OFFSET(96)"\n\
st 0,0(15)\n\
# load args saved by PLT\n\
lm 2,3,120(15)\n\
@@ -189,10 +195,12 @@
lr 1,2 # function addr returned in r2\n\
# restore registers\n\
ahi 15,96\n\
+ " CFI_ADJUST_CFA_OFFSET(-96)" \n\
l 14,48(15)\n\
lm 2,5,32(15)\n\
br 1\n\
1: .long profile_fixup-1b\n\
+ " CFI_ENDPROC "\n\
.size _dl_runtime_profile, .-_dl_runtime_profile\n\
");
#else
@@ -204,6 +212,7 @@
.type _dl_runtime_resolve, @function\n\
.type _dl_runtime_profile, @function\n\
.align 16\n\
+ " CFI_STARTPROC "\n\
_dl_runtime_resolve:\n\
_dl_runtime_profile:\n\
# save registers\n\
@@ -211,6 +220,7 @@
st 14,48(15)\n\
lr 0,15\n\
ahi 15,-96\n\
+ " CFI_ADJUST_CFA_OFFSET(96)"\n\
st 0,0(15)\n\
# load args saved by PLT\n\
lm 2,3,120(15)\n\
@@ -223,10 +233,12 @@
lr 1,2 # function addr returned in r2\n\
# restore registers\n\
ahi 15,96\n\
+ " CFI_ADJUST_CFA_OFFSET(-96)" \n\
l 14,48(15)\n\
lm 2,5,32(15)\n\
br 1\n\
1: .long fixup-1b\n\
+ " CFI_ENDPROC "\n\
.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
.size _dl_runtime_profile, .-_dl_runtime_profile\n\
");
diff -urN libc/sysdeps/s390/s390-32/elf/setjmp.S libc-s390/sysdeps/s390/s390-32/elf/setjmp.S
--- libc/sysdeps/s390/s390-32/elf/setjmp.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-32/elf/setjmp.S 2003-12-05 14:38:06.000000000 +0100
@@ -34,9 +34,15 @@
/* Binary compatibility entry point. */
ENTRY(_setjmp)
.weak C_SYMBOL_NAME (_setjmp)
+ lhi %r3,0 /* second argument of zero */
+ j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */
+END (_setjmp)
libc_hidden_def (_setjmp)
+
ENTRY(__setjmp)
lhi %r3,0 /* second argument of zero */
+ j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */
+END (__setjmp)
ENTRY(__sigsetjmp)
.Linternal_sigsetjmp:
diff -urN libc/sysdeps/s390/s390-32/mul_1.S libc-s390/sysdeps/s390/s390-32/mul_1.S
--- libc/sysdeps/s390/s390-32/mul_1.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-32/mul_1.S 2003-12-05 14:38:06.000000000 +0100
@@ -33,6 +33,7 @@
.text
ENTRY(__mpn_mul_1)
st %r6,24(%r15)
+ cfi_offset (%r6, -72)
slr %r6,%r6 # cy_limb = 0
.L0: icm %r1,15,0(%r3) # get s1_ptr[i]
mr %r0,%r5 # umul_ppmm(prod_high,prod_low,s1_ptr[j],s2_limb)
diff -urN libc/sysdeps/s390/s390-32/sub_n.S libc-s390/sysdeps/s390/s390-32/sub_n.S
--- libc/sysdeps/s390/s390-32/sub_n.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-32/sub_n.S 2003-12-05 14:38:06.000000000 +0100
@@ -32,6 +32,7 @@
ENTRY(__mpn_sub_n)
st %r6,24(%r15) # save register 6
+ cfi_offset (%r6, -72)
sr %r1,%r1
lhi %r0,1 # cannot use ahi to add carry, use slr
.L0: l %r6,0(%r1,%r3) # .L0 -> no carry from last sub
diff -urN libc/sysdeps/s390/s390-32/sysdep.h libc-s390/sysdeps/s390/s390-32/sysdep.h
--- libc/sysdeps/s390/s390-32/sysdep.h 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-32/sysdep.h 2003-12-05 14:38:06.000000000 +0100
@@ -51,10 +51,12 @@
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
.align ALIGNARG(2); \
C_LABEL(name) \
+ cfi_startproc; \
CALL_MCOUNT
#undef END
#define END(name) \
+ cfi_endproc; \
ASM_SIZE_DIRECTIVE(name) \
/* If compiled for profiling, call `mcount' at the start of each function. */
diff -urN libc/sysdeps/s390/s390-64/add_n.S libc-s390/sysdeps/s390/s390-64/add_n.S
--- libc/sysdeps/s390/s390-64/add_n.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-64/add_n.S 2003-12-05 14:38:06.000000000 +0100
@@ -33,6 +33,7 @@
.text
ENTRY(__mpn_add_n)
stg %r6,48(%r15) # save register 6
+ cfi_offset (%r6,-112)
slgr %r1,%r1
lghi %r0,1 # cannot use ahi to add carry, use alr
.L0: lg %r6,0(%r1,%r3) # .L0 -> no carry from last add
diff -urN libc/sysdeps/s390/s390-64/dl-machine.h libc-s390/sysdeps/s390/s390-64/dl-machine.h
--- libc/sysdeps/s390/s390-64/dl-machine.h 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-64/dl-machine.h 2003-12-05 14:38:06.000000000 +0100
@@ -139,12 +139,14 @@
.globl _dl_runtime_resolve\n\
.type _dl_runtime_resolve, @function\n\
.align 16\n\
+ " CFI_STARTPROC "\n\
_dl_runtime_resolve:\n\
# save registers\n\
stmg 2,5,64(15)\n\
stg 14,96(15)\n\
lgr 0,15\n\
aghi 15,-160\n\
+ " CFI_ADJUST_CFA_OFFSET(160)"\n\
stg 0,0(15)\n\
# load args saved by PLT\n\
lmg 2,3,208(15)\n\
@@ -152,20 +154,24 @@
lgr 1,2 # function addr returned in r2\n\
# restore registers\n\
aghi 15,160\n\
+ " CFI_ADJUST_CFA_OFFSET(-160)" \n\
lg 14,96(15)\n\
lmg 2,5,64(15)\n\
br 1\n\
+ " CFI_ENDPROC "\n\
.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
\n\
.globl _dl_runtime_profile\n\
.type _dl_runtime_profile, @function\n\
.align 16\n\
+ " CFI_STARTPROC "\n\
_dl_runtime_profile:\n\
# save registers\n\
stmg 2,5,64(15)\n\
stg 14,96(15)\n\
lgr 0,15\n\
aghi 15,-160\n\
+ " CFI_ADJUST_CFA_OFFSET(160)"\n\
stg 0,0(15)\n\
# load args saved by PLT\n\
lmg 2,3,208(15)\n\
@@ -175,9 +181,11 @@
lgr 1,2 # function addr returned in r2\n\
# restore registers\n\
aghi 15,160\n\
+ " CFI_ADJUST_CFA_OFFSET(-160)" \n\
lg 14,96(15)\n\
lmg 2,5,64(15)\n\
br 1\n\
+ " CFI_ENDPROC "\n\
.size _dl_runtime_profile, .-_dl_runtime_profile\n\
");
#else
@@ -189,6 +197,7 @@
.type _dl_runtime_resolve, @function\n\
.type _dl_runtime_profile, @function\n\
.align 16\n\
+ " CFI_STARTPROC "\n\
_dl_runtime_resolve:\n\
_dl_runtime_profile:\n\
# save registers\n\
@@ -196,6 +205,7 @@
stg 14,96(15)\n\
lgr 0,15\n\
aghi 15,-160\n\
+ " CFI_ADJUST_CFA_OFFSET(160)"\n\
stg 0,0(15)\n\
# load args saved by PLT\n\
lmg 2,3,208(15)\n\
@@ -205,9 +215,11 @@
lgr 1,2 # function addr returned in r2\n\
# restore registers\n\
aghi 15,160\n\
+ " CFI_ADJUST_CFA_OFFSET(-160)" \n\
lg 14,96(15)\n\
lmg 2,5,64(15)\n\
br 1\n\
+ " CFI_ENDPROC "\n\
.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
.size _dl_runtime_profile, .-_dl_runtime_profile\n\
");
diff -urN libc/sysdeps/s390/s390-64/elf/setjmp.S libc-s390/sysdeps/s390/s390-64/elf/setjmp.S
--- libc/sysdeps/s390/s390-64/elf/setjmp.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-64/elf/setjmp.S 2003-12-05 14:38:06.000000000 +0100
@@ -34,9 +34,15 @@
/* Binary compatibility entry point. */
ENTRY(_setjmp)
.weak C_SYMBOL_NAME (_setjmp)
+ slgr %r3,%r3 /* Second argument of zero. */
+ j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */
+END (setjmp)
libc_hidden_def (_setjmp)
+
ENTRY(__setjmp)
slgr %r3,%r3 /* Second argument of zero. */
+ j .Linternal_sigsetjmp /* Branch relativ to __sigsetjmp. */
+END (setjmp)
ENTRY(__sigsetjmp)
.Linternal_sigsetjmp:
diff -urN libc/sysdeps/s390/s390-64/sub_n.S libc-s390/sysdeps/s390/s390-64/sub_n.S
--- libc/sysdeps/s390/s390-64/sub_n.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-64/sub_n.S 2003-12-05 14:38:06.000000000 +0100
@@ -30,6 +30,7 @@
ENTRY(__mpn_sub_n)
stg %r6,48(%r15) # save register 6
+ cfi_offset (%r6,-112)
sgr %r1,%r1
lghi %r0,1 # cannot use ahi to add carry, use slr
.L0: lg %r6,0(%r1,%r3) # .L0 -> no carry from last sub
diff -urN libc/sysdeps/s390/s390-64/sysdep.h libc-s390/sysdeps/s390/s390-64/sysdep.h
--- libc/sysdeps/s390/s390-64/sysdep.h 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/s390/s390-64/sysdep.h 2003-12-05 14:38:06.000000000 +0100
@@ -51,10 +51,12 @@
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
.align ALIGNARG(2); \
C_LABEL(name) \
+ cfi_startproc; \
CALL_MCOUNT
#undef END
#define END(name) \
+ cfi_endproc; \
ASM_SIZE_DIRECTIVE(name) \
/* If compiled for profiling, call `mcount' at the start of each function. */
diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-32/clone.S libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
--- libc/sysdeps/unix/sysv/linux/s390/s390-32/clone.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/clone.S 2003-12-05 14:38:29.000000000 +0100
@@ -32,6 +32,7 @@
.text
ENTRY(__clone)
st %r6,24(%r15) /* store %r6 to save area */
+ cfi_offset (%r6, -72)
lr %r0,%r5 /* move *arg out of the way */
ltr %r1,%r2 /* check fn and move to %r1 */
jz error /* no NULL function pointers */
@@ -50,6 +51,7 @@
error:
lhi %r2,-EINVAL
j SYSCALL_ERROR_LABEL
+PSEUDO_END (__clone)
thread_start:
/* fn is in gpr 1, arg in gpr 0 */
@@ -71,5 +73,4 @@
br %r1 /* branch to _exit -> thread termination */
.L1: .long _exit - .L0
#endif
-PSEUDO_END (__clone)
weak_alias (__clone, clone)
diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S
--- libc/sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S 2003-12-05 14:38:06.000000000 +0100
@@ -26,8 +26,19 @@
ENTRY(__mmap64)
/* Save registers and setup stack frame. */
stm %r6,%r15,24(%r15)
+ cfi_offset (%r15, -36)
+ cfi_offset (%r14, -40)
+ cfi_offset (%r13, -44)
+ cfi_offset (%r12, -48)
+ cfi_offset (%r11, -52)
+ cfi_offset (%r10, -56)
+ cfi_offset (%r9, -60)
+ cfi_offset (%r8, -64)
+ cfi_offset (%r7, -68)
+ cfi_offset (%r6, -72)
lr %r1,%r15
ahi %r15,-120 /* Buy stack space. */
+ cfi_adjust_cfa_offset (120)
st %r1,0(%r15) /* Store back chain. */
/* Store parameters on stack, because mmap2 and old_mmap
@@ -56,6 +67,7 @@
#endif
l %r15,0(%r15) /* Load back chain. */
+ cfi_adjust_cfa_offset (-120)
lm %r6,%r15,24(%r15) /* Load registers. */
/* Check gpr 2 for error. */
diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-32/mmap.S libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/mmap.S
--- libc/sysdeps/unix/sysv/linux/s390/s390-32/mmap.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/mmap.S 2003-12-05 14:38:06.000000000 +0100
@@ -25,8 +25,19 @@
ENTRY(__mmap)
/* Save registers and setup stack frame. */
stm %r6,%r15,24(%r15)
+ cfi_offset (%r15, -36)
+ cfi_offset (%r14, -40)
+ cfi_offset (%r13, -44)
+ cfi_offset (%r12, -48)
+ cfi_offset (%r11, -52)
+ cfi_offset (%r10, -56)
+ cfi_offset (%r9, -60)
+ cfi_offset (%r8, -64)
+ cfi_offset (%r7, -68)
+ cfi_offset (%r6, -72)
lr %r1,%r15
ahi %r15,-120 /* buy stack space */
+ cfi_adjust_cfa_offset (120)
st %r1,0(%r15) /* store back chain */
/* Store parameters on stack, because old_mmap/mmap2
@@ -57,6 +68,7 @@
#endif
1: l %r15,0(%r15) /* Load back chain. */
+ cfi_adjust_cfa_offset (-120)
lm %r6,%r15,24(%r15) /* Load registers. */
/* check gpr 2 for error */
diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-32/socket.S libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/socket.S
--- libc/sysdeps/unix/sysv/linux/s390/s390-32/socket.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/socket.S 2003-12-05 14:38:06.000000000 +0100
@@ -47,8 +47,6 @@
.globl __socket
ENTRY(__socket)
- cfi_startproc
-
/* Save registers and setup stack. */
stm %r6,%r15,24(%r15) /* save registers */
cfi_offset (%r15, -36)
@@ -136,7 +134,6 @@
2: .long CENABLE-1b
3: .long CDISABLE-1b
#endif
- cfi_endproc
SYSCALL_ERROR_HANDLER
END (__socket)
diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
--- libc/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S 2003-12-05 14:38:06.000000000 +0100
@@ -25,9 +25,20 @@
ENTRY (syscall)
/* Save registers and setup stack. */
stm %r6,%r15,24(%r15) /* save registers */
+ cfi_offset (%r15, -36)
+ cfi_offset (%r14, -40)
+ cfi_offset (%r13, -44)
+ cfi_offset (%r12, -48)
+ cfi_offset (%r11, -52)
+ cfi_offset (%r10, -56)
+ cfi_offset (%r9, -60)
+ cfi_offset (%r8, -64)
+ cfi_offset (%r7, -68)
+ cfi_offset (%r6, -72)
lr %r1,%r15
l %r0,4(0,%r15) /* load eos */
ahi %r15,-96 /* buy stack space */
+ cfi_adjust_cfa_offset (96)
st %r1,0(0,%r15) /* store back chain */
st %r0,4(0,%r15) /* store eos */
@@ -45,6 +56,7 @@
j 3f
2: ex %r1,1b-0b(%r7) /* lsb of R1 is subsituted as SVC number */
3: l %r15,0(%r15) /* load back chain */
+ cfi_adjust_cfa_offset (-96)
lm %r6,15,24(%r15) /* load registers */
lhi %r0,-4095
diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
--- libc/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S 2003-12-05 14:38:06.000000000 +0100
@@ -55,8 +55,12 @@
1: .long errno
# else
stm %r13,%r15,52(%r15)
+ cfi_offset (%r15, -36)
+ cfi_offset (%r14, -40)
+ cfi_offset (%r13, -44)
lr %r0,%r15
ahi %r15,-96
+ cfi_adjust_cfa_offset (96)
lcr %r13,%r2
st %r0,0(%r15)
basr %r1,0
@@ -64,6 +68,7 @@
basr %r14,%r1
st %r13,0(%r2)
lm %r13,%r15,148(%r15)
+ cfi_adjust_cfa_offset (-96)
lhi %r2,-1
br %r14
1: .long __errno_location
@@ -103,8 +108,14 @@
1: .long _GLOBAL_OFFSET_TABLE_-0b
# else
stm %r11,%r15,44(%r15)
+ cfi_offset (%r15, -36)
+ cfi_offset (%r14, -40)
+ cfi_offset (%r13, -44)
+ cfi_offset (%r12, -48)
+ cfi_offset (%r11, -52)
lr %r0,%r15
ahi %r15,-96
+ cfi_adjust_cfa_offset (96)
lcr %r11,%r2
st %r0,0(%r15)
basr %r13,0
@@ -114,6 +125,7 @@
bas %r14,0(%r1,%r13)
st %r11,0(%r2)
lm %r11,%r15,140(%r15)
+ cfi_adjust_cfa_offset (-96)
lhi %r2,-1
br %r14
1: .long _GLOBAL_OFFSET_TABLE_-0b
diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-64/clone.S libc-s390/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
--- libc/sysdeps/unix/sysv/linux/s390/s390-64/clone.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-64/clone.S 2003-12-05 14:38:49.000000000 +0100
@@ -33,6 +33,7 @@
.text
ENTRY(__clone)
stg %r6,48(%r15) /* store %r6 to save area */
+ cfi_offset (%r6,-112)
lgr %r0,%r5 /* move *arg out of the way */
ltgr %r1,%r2 /* check fn and move to %r1 */
jz error /* no NULL function pointers */
@@ -51,6 +52,7 @@
error:
lghi %r2,-EINVAL
jg SYSCALL_ERROR_LABEL
+PSEUDO_END (__clone)
thread_start:
/* fn is in gpr 1, arg in gpr 0 */
@@ -63,5 +65,4 @@
#else
jg _exit /* branch to _exit -> thread termination */
#endif
-PSEUDO_END (__clone)
weak_alias (__clone, clone)
diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S libc-s390/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S
--- libc/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S 2003-12-05 14:38:06.000000000 +0100
@@ -27,9 +27,20 @@
ENTRY(__mmap)
/* Save registers and setup stack frame. */
stmg %r6,%r15,48(%r15)
+ cfi_offset (%r15,-40)
+ cfi_offset (%r14,-48)
+ cfi_offset (%r13,-56)
+ cfi_offset (%r12,-64)
+ cfi_offset (%r11,-72)
+ cfi_offset (%r10,-80)
+ cfi_offset (%r9,-88)
+ cfi_offset (%r8,-96)
+ cfi_offset (%r7,-104)
+ cfi_offset (%r6,-112)
lgr %r1,%r15
lg %r0,8(%r15) /* Load eos. */
aghi %r15,-208 /* Buy stack space. */
+ cfi_adjust_cfa_offset (208)
stg %r1,0(%r15) /* Store back chain. */
stg %r0,8(%r15) /* Store eos. */
@@ -50,6 +61,7 @@
svc SYS_ify(mmap)
lg %r15,0(%r15) /* Load back chain. */
+ cfi_adjust_cfa_offset (-208)
lmg %r6,%r15,48(%r15) /* Load registers. */
/* Check gpr 2 for error. */
diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-64/socket.S libc-s390/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
--- libc/sysdeps/unix/sysv/linux/s390/s390-64/socket.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-64/socket.S 2003-12-05 14:38:06.000000000 +0100
@@ -47,8 +47,6 @@
.globl __socket
ENTRY(__socket)
- cfi_startproc
-
/* Save registers and setup stack. */
stmg %r6,%r15,48(%r15) /* Save registers. */
cfi_offset (%r15,-40)
@@ -130,9 +128,7 @@
j 4b
#endif
- cfi_endproc
-
-PSEUDO_END (__socket)
+END (__socket)
#ifndef NO_WEAK_ALIAS
weak_alias (__socket, socket)
diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S libc-s390/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
--- libc/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S 2003-12-05 14:38:06.000000000 +0100
@@ -25,9 +25,20 @@
ENTRY (syscall)
/* Save registers and setup stack. */
stmg %r6,%r15,48(%r15) /* Save registers. */
+ cfi_offset (%r15,-40)
+ cfi_offset (%r14,-48)
+ cfi_offset (%r13,-56)
+ cfi_offset (%r12,-64)
+ cfi_offset (%r11,-72)
+ cfi_offset (%r10,-80)
+ cfi_offset (%r9,-88)
+ cfi_offset (%r8,-96)
+ cfi_offset (%r7,-104)
+ cfi_offset (%r6,-112)
lgr %r1,%r15
lg %r0,8(%r15) /* Load eos. */
aghi %r15,-160 /* Buy stack space. */
+ cfi_adjust_cfa_offset (160)
stg %r1,0(%r15) /* Store back chain. */
stg %r0,8(%r15) /* Store eos. */
@@ -45,6 +56,7 @@
j 3f
2: ex %r1,1b-0b(%r7) /* lsb of R1 is subsituted as SVC number */
3: lg %r15,0(%r15) /* load back chain */
+ cfi_adjust_cfa_offset (-160)
lmg %r6,15,48(%r15) /* Load registers. */
lghi %r0,-4095
diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S libc-s390/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
--- libc/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S 2003-11-14 13:59:00.000000000 +0100
+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S 2003-12-05 14:38:06.000000000 +0100
@@ -56,13 +56,18 @@
br %r14
# else
stmg %r13,%r15,104(%r15)
+ cfi_offset (%r15,-40)
+ cfi_offset (%r14,-48)
+ cfi_offset (%r13,-56)
lgr %r0,%r15
aghi %r15,-160
+ cfi_adjust_cfa_offset (160)
lcr %r13,%r2
stg %r0,0(%r15)
brasl %r14,__errno_location
st %r13,0(%r2)
lmg %r13,%r15,264(%r15)
+ cfi_adjust_cfa_offset (-160)
lghi %r2,-1
br %r14
#endif
@@ -97,13 +102,18 @@
br %r14
# else
stmg %r13,%r15,104(%r15)
+ cfi_offset (%r15,-40)
+ cfi_offset (%r14,-48)
+ cfi_offset (%r13,-56)
lgr %r0,%r15
aghi %r15,-160
+ cfi_adjust_cfa_offset (160)
lcr %r13,%r2
stg %r0,0(%r15)
brasl %r14,__errno_location@PLT
st %r13,0(%r2)
lmg %r13,%r15,264(%r15)
+ cfi_adjust_cfa_offset (-160)
lghi %r2,-1
br %r14
# endif
next reply other threads:[~2003-12-05 17:48 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-05 17:48 Martin Schwidefsky [this message]
2003-12-06 0:20 ` Ulrich Drepper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200312051847.00459.schwidefsky@de.ibm.com \
--to=schwidefsky@de.ibm.com \
--cc=libc-hacker@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).