git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Architectural Support: x86_64 (#37)
[lunaix-os.git]
/
lunaix-os
/
usr
/
libc
/
arch
/
i386
/
syscall.S
diff --git
a/lunaix-os/usr/libc/arch/i386/syscall.S
b/lunaix-os/usr/libc/arch/i386/syscall.S
index 83320eace15b13719ee086a3c05a8c1aae5512a1..93489882745d18714bd7aa74720a3dcb16d0c3f6 100644
(file)
--- a/
lunaix-os/usr/libc/arch/i386/syscall.S
+++ b/
lunaix-os/usr/libc/arch/i386/syscall.S
@@
-3,9
+3,7
@@
#define LUNAIX_SYSCALL 33
#define regsize 4
#define LUNAIX_SYSCALL 33
#define regsize 4
- .struct 8
-saved_registers:
- .struct saved_registers + 5 * regsize
+ .struct 2 * regsize # eip, ebp
id:
.struct id + regsize
a1:
id:
.struct id + regsize
a1:
@@
-21,29
+19,26
@@
a5:
.section .text
.type do_lunaix_syscall, @function
.global do_lunaix_syscall
.section .text
.type do_lunaix_syscall, @function
.global do_lunaix_syscall
+
do_lunaix_syscall:
push %ebp
movl %esp, %ebp
pushl %ebx
do_lunaix_syscall:
push %ebp
movl %esp, %ebp
pushl %ebx
- pushl %ecx
- pushl %edx
pushl %edi
pushl %esi
pushl %edi
pushl %esi
-
- movl id(%e
s
p), %eax
- movl a1(%e
s
p), %ebx
- movl a2(%e
s
p), %ecx
- movl a3(%e
s
p), %edx
- movl a4(%e
s
p), %edi
- movl a5(%e
s
p), %esi
+
+ movl id(%e
b
p), %eax
+ movl a1(%e
b
p), %ebx
+ movl a2(%e
b
p), %ecx
+ movl a3(%e
b
p), %edx
+ movl a4(%e
b
p), %edi
+ movl a5(%e
b
p), %esi
int $LUNAIX_SYSCALL
popl %esi
popl %edi
int $LUNAIX_SYSCALL
popl %esi
popl %edi
- popl %edx
- popl %ecx
popl %ebx
leave
popl %ebx
leave