aboutsummaryrefslogtreecommitdiff
path: root/nptl/sysdeps/unix
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/sysdeps/unix')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h6
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h7
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h6
3 files changed, 18 insertions, 1 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
index 7c669bfb3e..d39425e0f4 100644
--- a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
@@ -30,14 +30,17 @@
# define PSEUDO(name, syscall_name, args) \
.section ".text"; \
ENTRY (name) \
+ cfi_startproc; \
SINGLE_THREAD_P; \
bne- .Lpseudo_cancel; \
DO_CALL (SYS_ify (syscall_name)); \
PSEUDO_RET; \
.Lpseudo_cancel: \
stwu 1,-48(1); \
+ cfi_adjust_cfa_offset (48); \
mflr 9; \
stw 9,52(1); \
+ cfi_offset (lr, 4); \
DOCARGS_##args; /* save syscall args around CENABLE. */ \
CENABLE; \
stw 3,16(1); /* store CENABLE return value (MASK). */ \
@@ -53,7 +56,8 @@
lwz 3,8(1); \
mtlr 4; \
mtcr 0; \
- addi 1,1,48;
+ addi 1,1,48; \
+ cfi_endproc;
# define DOCARGS_0
# define UNDOCARGS_0
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
index 80671df08a..1f7cff8c41 100644
--- a/nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
@@ -29,10 +29,16 @@
# define PSEUDO(name, syscall_name, args) \
.text; \
L(pseudo_cancel): \
+ cfi_startproc; \
STM_##args \
stm %r12,%r15,48(%r15); \
+ cfi_offset (%r15, -36); \
+ cfi_offset (%r14, -40); \
+ cfi_offset (%r13, -44); \
+ cfi_offset (%r12, -48); \
lr %r14,%r15; \
ahi %r15,-96; \
+ cfi_adjust_cfa_offset (96); \
st %r14,0(%r15); \
basr %r13,0; \
0: l %r1,1f-0b(%r13); \
@@ -46,6 +52,7 @@ L(pseudo_cancel): \
bas %r14,0(%r1,%r13); \
lr %r2,%r12; \
lm %r12,%r15,48+96(%r15); \
+ cfi_endproc; \
j L(pseudo_check); \
1: .long CENABLE-0b; \
2: .long CDISABLE-0b; \
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
index f3722a0d8f..4d53311f9d 100644
--- a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
@@ -29,10 +29,15 @@
# define PSEUDO(name, syscall_name, args) \
.text; \
L(pseudo_cancel): \
+ cfi_startproc; \
STM_##args \
stmg %r13,%r15,104(%r15); \
+ cfi_offset (%r15,-40); \
+ cfi_offset (%r14,-48); \
+ cfi_offset (%r13,-56); \
lgr %r14,%r15; \
aghi %r15,-160; \
+ cfi_adjust_cfa_offset (160); \
stg %r14,0(%r15); \
brasl %r14,CENABLE; \
lgr %r0,%r2; \
@@ -43,6 +48,7 @@ L(pseudo_cancel): \
brasl %r14,CDISABLE; \
lgr %r2,%r13; \
lmg %r13,%r15,104+160(%r15); \
+ cfi_endproc; \
j L(pseudo_check); \
ENTRY(name) \
SINGLE_THREAD_P \