summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/i386/__uClibc_syscall.S
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2001-03-04 19:13:07 +0000
committerManuel Novoa III <mjn3@codepoet.org>2001-03-04 19:13:07 +0000
commit7be859a705aa7084b187e8007847aa4ddb049faf (patch)
tree75eb50096f9228e01cc5cc835f362480815a3161 /libc/sysdeps/linux/i386/__uClibc_syscall.S
parent3d15998e6539d9362a898f46005d0a2aea497c74 (diff)
Fixed vfork on i386. Reduced size of __uClibc_syscall.
Diffstat (limited to 'libc/sysdeps/linux/i386/__uClibc_syscall.S')
-rw-r--r--libc/sysdeps/linux/i386/__uClibc_syscall.S35
1 files changed, 14 insertions, 21 deletions
diff --git a/libc/sysdeps/linux/i386/__uClibc_syscall.S b/libc/sysdeps/linux/i386/__uClibc_syscall.S
index ecf2d6350..9e82d7acb 100644
--- a/libc/sysdeps/linux/i386/__uClibc_syscall.S
+++ b/libc/sysdeps/linux/i386/__uClibc_syscall.S
@@ -1,39 +1,32 @@
-.globl __uClibc_syscall
-
.text
.align 4
+.globl __uClibc_syscall
+ .type __uClibc_syscall,@function
__uClibc_syscall:
- pushl %ebp
- movl %esp,%ebp
- subl $8,%esp
pushl %edi
pushl %esi
pushl %ebx
- /* movl $21,%eax */
and $0xff,%eax
- movl 8(%ebp),%ebx
- movl 12(%ebp),%ecx
- movl 16(%ebp),%edx
- movl 20(%ebp),%esi
- movl 24(%ebp),%edi
+ 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
- movl %eax,-4(%ebp)
- .p2align 4,,7
- cmpl $-126,-4(%ebp)
+ cmpl $-4095,%eax
+ /* jae .L5 */
+ /* cmpl $-126,%eax */
jbe .L5
- movl -4(%ebp),%eax
negl %eax
movl %eax,errno
- movl $-1,-4(%ebp)
+ movl $-1,%eax
+ .p2align 4,,7
.L5:
- movl -4(%ebp),%edx
- movl %edx,-8(%ebp)
- movl -8(%ebp),%eax
- leal -20(%ebp),%esp
popl %ebx
popl %esi
popl %edi
- leave
ret
+.Lfe1:
+ .size __uClibc_syscall,.Lfe1-__uClibc_syscall