freebsd-nq/sys/i386/svr4/svr4_locore.s
David E. O'Brien e6493bbebf Change some movl's to mov's. Newer GAS no longer accept 'movl' instructions
for moving between a segment register and a 32-bit memory location.

Looked at by:	jhb
2009-01-31 11:37:21 +00:00

33 lines
783 B
ArmAsm

#include "svr4_assym.h" /* system definitions */
#include <machine/asmacros.h> /* miscellaneous asm macros */
#include <compat/svr4/svr4_syscall.h> /* system call numbers */
/* $FreeBSD$ */
NON_GPROF_ENTRY(svr4_sigcode)
call *SVR4_SIGF_HANDLER(%esp)
leal SVR4_SIGF_UC(%esp),%eax /* ucp (the call may have clobbered the
copy at SIGF_UCP(%esp)) */
#ifdef VM86
#warning "VM86 doesn't work yet - do you really want this?"
testl $PSL_VM,SVR4_UC_EFLAGS(%eax)
jnz 1f
#endif
mov SVR4_UC_GS(%eax),%gs
1: pushl %eax # pointer to ucontext
pushl $1 # set context
movl $svr4_sys_context,%eax
int $0x80 # enter kernel with args on stack
0: jmp 0b
ALIGN_TEXT
svr4_esigcode:
.data
.globl svr4_szsigcode
svr4_szsigcode:
.long svr4_esigcode - svr4_sigcode
.text