svr4_locore.s revision 49270
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/* $Id$ */
7
8NON_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#if defined(NOTYET)
13#ifdef VM86
14	testl	$PSL_VM,SVR4_UC_EFLAGS(%eax)
15	jnz	1f
16#endif
17#endif
18	movl	SVR4_UC_GS(%eax),%edx
19	movl	%dx,%gs
201:	pushl	%eax			# fake return address
21	pushl	$1			# pointer to ucontext
22	movl	$_svr4_sys_context,%eax
23	int	$0x80	 		# enter kernel with args on stack
24	movl	$exit,%eax
25	int	$0x80			# exit if sigreturn fails
26
27	.align	2				/* long word align */
28svr4_esigcode:
29
30	.data
31	.globl	_svr4_szsigcode
32_svr4_szsigcode:
33	.long	svr4_esigcode - _svr4_sigcode
34
35	.text
36
37