summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/i386/__uClibc_syscall.S
blob: 9e82d7acbc23424dce8e10020411710618ebce25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
.text
	.align 4
.globl __uClibc_syscall
	.type	 __uClibc_syscall,@function
__uClibc_syscall:
	pushl %edi
	pushl %esi
	pushl %ebx
	and $0xff,%eax
	movl 16(%esp),%ebx
	movl 20(%esp),%ecx
	movl 24(%esp),%edx
	movl 28(%esp),%esi
	movl 32(%esp),%edi
#APP
	int $0x80
#NO_APP
	cmpl $-4095,%eax
	/* jae .L5 */
	/* cmpl $-126,%eax */
	jbe .L5
	negl %eax
	movl %eax,errno
	movl $-1,%eax
	.p2align 4,,7
.L5:
	popl %ebx
	popl %esi
	popl %edi
	ret
.Lfe1:
	.size	 __uClibc_syscall,.Lfe1-__uClibc_syscall