diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/s390/s390-64')
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-64/clone.S | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-64/mmap.S | 12 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-64/socket.S | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-64/syscall.S | 12 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S | 10 |
5 files changed, 37 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S index c6f2bdcbd8..f70bd15260 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S +++ b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S @@ -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 @@ ENTRY(__clone) 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 @@ thread_start: #else jg _exit /* branch to _exit -> thread termination */ #endif -PSEUDO_END (__clone) weak_alias (__clone, clone) diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S b/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S index 8c94fd4c28..443d432e1c 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S +++ b/sysdeps/unix/sysv/linux/s390/s390-64/mmap.S @@ -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 @@ ENTRY(__mmap) 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 --git a/sysdeps/unix/sysv/linux/s390/s390-64/socket.S b/sysdeps/unix/sysv/linux/s390/s390-64/socket.S index 3985a9c4b7..c98a97449b 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/socket.S +++ b/sysdeps/unix/sysv/linux/s390/s390-64/socket.S @@ -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 @@ L(socket_cancel): j 4b #endif - cfi_endproc - -PSEUDO_END (__socket) +END (__socket) #ifndef NO_WEAK_ALIAS weak_alias (__socket, socket) diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S b/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S index 5a6bcfc90d..4caeaeaf50 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S +++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S @@ -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 @@ ENTRY (syscall) 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 --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S index 84c747aef0..ce1f03e006 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S +++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S @@ -56,13 +56,18 @@ ENTRY(__syscall_error) 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 @@ ENTRY(__syscall_error) 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 |