]>
Commit | Line | Data |
---|---|---|
0d330196 FB |
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 |