freebsd-dev/sys/i386/svr4/svr4_locore.s
Bruce Evans 33982c726f Added underscores to some names in svr4_locore.s so that it compiles
with -aout.  Added translation back to elf names in asnames.h as
usual.  The elf names were inconsistent in the aout case even
internally because a macro adds an underscore to just one of them.

Removed commented out code for a previous life of `svr4_esigcode'.
Didn't add an underscore to `svr4_esigcode' since it is correct for
aout although wrong for elf, like most internal names in assembler
files.  These names should be in a different namespace so that gprof
can ignore them.

Fixed some disorder in asnames.h.
1999-02-06 08:41:06 +00:00

45 lines
1.0 KiB
ArmAsm

#include "svr4_assym.h" /* system definitions */
#include <machine/asmacros.h> /* miscellaneous asm macros */
#include <svr4/svr4_syscall.h> /* system call numbers */
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))
#if defined(NOTYET)
#ifdef VM86
testl $PSL_VM,SVR4_UC_EFLAGS(%eax)
jnz 1f
#endif
#endif
movl SVR4_UC_FS(%eax),%ecx
movl SVR4_UC_GS(%eax),%edx
movl %cx,%fs
movl %dx,%gs
#if defined(__NetBSD__)
1: pushl %eax
pushl $1 # setcontext(p) == syscontext(1, p)
pushl %eax # junk to fake return address
movl $_svr4_sys_context,%eax
#else
/* must be FreeBSD, right? */
1: pushl %eax # fake return address
pushl $1 # pointer to ucontext
movl $_svr4_sys_context,%eax
#endif
int $0x80 # enter kernel with args on stack
movl $exit,%eax
int $0x80 # exit if sigreturn fails
.align 2 /* long word align */
svr4_esigcode:
.data
.globl _svr4_szsigcode
_svr4_szsigcode:
.long svr4_esigcode - _svr4_sigcode
.text