summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
index 5b08748949..c44c48460c 100644
--- a/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
+++ b/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
@@ -121,6 +121,25 @@ ENTRY (name) \
(p6) br.cond.spnt.few __syscall_error; \
ret;; \
.endp name; \
+ \
+ .proc __##syscall_name##_nocancel; \
+ .globl __##syscall_name##_nocancel; \
+__##syscall_name##_nocancel: \
+ .prologue; \
+ adds r2 = SYSINFO_OFFSET, r13; \
+ .save ar.pfs, r11; \
+ mov r11 = ar.pfs;; \
+ .body; \
+ ld8 r2 = [r2]; \
+ mov r15 = SYS_ify(syscall_name);; \
+ mov b7 = r2; \
+ br.call.sptk.many b6 = b7;; \
+ mov ar.pfs = r11; \
+ cmp.eq p6,p0 = -1, r10; \
+(p6) br.cond.spnt.few __syscall_error; \
+ ret;; \
+ .endp __##syscall_name##_nocancel; \
+ \
.proc __GC_##name; \
.globl __GC_##name; \
.hidden __GC_##name; \