Initial import from FreeBSD RELENG_4:
[games.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/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         
8 NON_GPROF_ENTRY(svr4_sigcode)
9         call    *SVR4_SIGF_HANDLER(%esp)
10         leal    SVR4_SIGF_UC(%esp),%eax # ucp (the call may have clobbered the
11                                         # copy at SIGF_UCP(%esp))
12 #ifdef VM86
13 #warning "VM86 doesn't work yet - do you really want this?"
14         testl   $PSL_VM,SVR4_UC_EFLAGS(%eax)
15         jnz     1f
16 #endif
17         movl    SVR4_UC_GS(%eax),%gs
18 1:      pushl   %eax                    # pointer to ucontext
19         pushl   $1                      # set context
20         movl    $_svr4_sys_context,%eax
21         int     $0x80                   # enter kernel with args on stack
22 0:      jmp     0b
23
24         ALIGN_TEXT
25 svr4_esigcode:
26
27         .data
28         .globl  _svr4_szsigcode
29 _svr4_szsigcode:
30         .long   svr4_esigcode - _svr4_sigcode
31
32         .text
33