Merge from vendor branch NTPD:
[dragonfly.git] / sys / emulation / svr4 / i386 / svr4_locore.s
1 #include "svr4_assym.h"                 /* system definitions */
2 #include <machine/asmacros.h>           /* miscellaneous asm macros */
3
4 #include "../svr4_syscall.h"            /* system call numbers */
5
6 /* $FreeBSD: src/sys/i386/svr4/svr4_locore.s,v 1.10.2.1 2000/07/07 00:38:51 obrien Exp $ */
7 /* $DragonFly: src/sys/emulation/svr4/i386/Attic/svr4_locore.s,v 1.5 2003/10/31 13:53:02 asmodai Exp $ */
8         
9 NON_GPROF_ENTRY(svr4_sigcode)
10         call    *SVR4_SIGF_HANDLER(%esp)
11         leal    SVR4_SIGF_UC(%esp),%eax /* ucp (the call may have clobbered */
12                                         /* the copy at SIGF_UCP(%esp)) */
13 #ifdef VM86
14 #warning "VM86 doesn't work yet - do you really want this?"
15         testl   $PSL_VM,SVR4_UC_EFLAGS(%eax)
16         jnz     1f
17 #endif
18         movl    SVR4_UC_GS(%eax),%gs
19 1:      pushl   %eax                    /* pointer to ucontext */
20         pushl   $1                      /* set context */
21         movl    $svr4_sys_context,%eax
22         int     $0x80                   /* enter kernel with args on stack */
23 0:      jmp     0b
24
25         ALIGN_TEXT
26 svr4_esigcode:
27
28         .data
29         .globl  svr4_szsigcode
30 svr4_szsigcode:
31         .long   svr4_esigcode - svr4_sigcode
32
33         .text
34