|
|
1.1 root 1: /* derived from glibc sysdeps/unix/sysv/linux/ia64/sysdep.S */
2:
3: #define __ASSEMBLY__
4:
5: #include <asm/asmmacro.h>
6: #include <asm/unistd.h>
7:
8: ENTRY(__syscall_error)
9: .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(0)
10: alloc r33=ar.pfs, 0, 4, 0, 0
11: mov r32=rp
12: .body
13: mov r35=r8
14: mov r34=r1
15: ;;
16: br.call.sptk.many b0 = __errno_location
17: .Lret0: /* force new bundle */
18: st4 [r8]=r35
19: mov r1=r34
20: mov rp=r32
21: mov r8=-1
22: mov ar.pfs=r33
23: br.ret.sptk.few b0
24: END(__syscall_error)
25:
26: GLOBAL_ENTRY(__ia64_syscall)
27: mov r15=r37 /* syscall number */
28: break __BREAK_SYSCALL
29: cmp.eq p6,p0=-1,r10 /* r10 = -1 on error */
30: (p6) br.cond.spnt.few __syscall_error
31: br.ret.sptk.few b0
32: .endp __ia64_syscall
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.