btrfs: Attempt to fix GCC2 build.
[haiku.git] / src / system / kernel / arch / x86 / 32 / syscalls_asm.S
blobef8b1e50c7325ad077942de77f9e135f8641e604
1 /*
2  * Copyright 2007, Travis Geiselbrecht. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
6 #include <asm_defs.h>
9 .text
11 /* user space half of the syscall mechanism, to be copied into the commpage */
13 // int 99 fallback
14 FUNCTION(x86_user_syscall_int):
15         int     $99
16         ret
17 FUNCTION_END(x86_user_syscall_int)
18 SYMBOL(x86_user_syscall_int_end):
21 // Intel sysenter/sysexit
22 FUNCTION(x86_user_syscall_sysenter):
23         // sysexit forces us to trash edx (-> eip) and ecx (-> esp), but they are
24         // scratch registers anyway. We use ecx right away to store esp.
25         movl    %esp, %ecx
26         sysenter
27         ret
28 FUNCTION_END(x86_user_syscall_sysenter)
29 SYMBOL(x86_user_syscall_sysenter_end):