ack/mach/sparc/libsys/head_em.s
1991-09-25 10:30:45 +00:00

68 lines
1,001 B
ArmAsm

.global lino,filn
.global EXIT
.global begtext,begdata,begbss
.global EARRAY,ERANGE,ESET,EIDIVZ,EHEAP,EILLINS,ECASE,EBADGTO
.global hol0,reghp,limhp,trpim,trppc
! runtime startof for sparc on sun4
LINO_AD = 0
FILN_AD = 4
EARRAY = 0
ERANGE = 1
ESET = 2
EIDIVZ = 6
EHEAP = 17
EILLINS = 18
ECASE = 20
EBADGTO = 27
.seg "text"
begtext:
clr %fp
ld [%sp + 0x40], %o0
add %sp, 0x44, %o1
sll %o0, 0x2, %o2
add %o2, 0x4, %o2
add %o1, %o2, %o2
set -0x100000, %g4 ! should be a few M
clr %l1
mov %sp, %l0
sub %sp, %g4, %sp
dec 12, %l0
st %o0, [%l0]
st %o1, [%l0+4]
st %o2, [%l0+8]
call __m_a_i_n
nop
dec 4, %l0
st %g0, [%l0]
EXIT:
call __exit
nop
.seg "data"
begdata:
.word 0 ! may be at virtual address 0 with no problem
hol0:
lino:
.word 0 ! lino
filn:
.word 0 ! filn
reghp:
.word __end
limhp:
.word __end
trppc:
.word 0
trpim:
.word 0 ! USED TO BE 2 BYTES; IS THIS RIGHT?
.seg "bss"
begbss: !initialization is not needed because ALL entries are in zero space!