Added head_em.s for Sun floating point emulation
This commit is contained in:
parent
b6b4cee71f
commit
284bd607fd
3 changed files with 79 additions and 1 deletions
|
@ -19,3 +19,4 @@ mlf8.s
|
|||
sbf4.s
|
||||
sbf8.s
|
||||
vars.s
|
||||
head_em.s
|
||||
|
|
|
@ -9,7 +9,8 @@ FOBJ = adf4.o adf8.o cff.o cfi.o cfu.o cif.o cmf4.o cmf8.o cuf.o dvf4.o \
|
|||
dvf8.o fef4.o fef8.o fif4.o fif8.o mlf4.o mlf8.o sbf4.o sbf8.o vars.o
|
||||
|
||||
OBJ = $(EMOBJ) $(FOBJ)
|
||||
all: libext.a
|
||||
|
||||
all: libext.a head_em.sun.o
|
||||
|
||||
.s.o:
|
||||
sun3 -c $*.s
|
||||
|
@ -19,11 +20,16 @@ libext.a: $(OBJ)
|
|||
ar rv libext.a $(OBJ)
|
||||
ranlib libext.a
|
||||
|
||||
head_em.sun.o: head_em.o
|
||||
../../../lib/sun3/cv -u head_em.o head_em.sun.o
|
||||
|
||||
install: all
|
||||
../../install libext.a tail_ext
|
||||
../../install head_em.sun.o head_em.sun
|
||||
|
||||
cmp: all
|
||||
-../../compare libext.a tail_ext
|
||||
-../../compare head_em.sun.o head_em.sun
|
||||
|
||||
clean:
|
||||
rm -f *.[oa]
|
||||
|
|
71
mach/sun3/libce/head_em.s
Normal file
71
mach/sun3/libce/head_em.s
Normal file
|
@ -0,0 +1,71 @@
|
|||
.define .lino,.filn
|
||||
.define EXIT
|
||||
.define begtext,begdata,begbss
|
||||
.define EARRAY,ERANGE,ESET,EIDIVZ,EHEAP,EILLINS,ECASE,EBADGTO
|
||||
.define hol0,.reghp,.limhp,.trpim,.trppc
|
||||
.define fsoft_used,start_float
|
||||
.sect .text
|
||||
.sect .rom
|
||||
.sect .data
|
||||
.sect .bss
|
||||
|
||||
|
||||
|
||||
! runtime startof for 68020 machine
|
||||
|
||||
|
||||
LINO_AD = 0
|
||||
FILN_AD = 4
|
||||
|
||||
EARRAY = 0
|
||||
ERANGE = 1
|
||||
ESET = 2
|
||||
EIDIVZ = 6
|
||||
EHEAP = 17
|
||||
EILLINS = 18
|
||||
ECASE = 20
|
||||
EBADGTO = 27
|
||||
|
||||
.sect .text
|
||||
begtext:
|
||||
move.l (sp),d2
|
||||
lea (4,sp),a0
|
||||
move.l d2,d1
|
||||
add.l #1,d1
|
||||
asl.l #2,d1
|
||||
move.l a0,a1
|
||||
add.l d1,a1
|
||||
pea (a1)
|
||||
pea (a0)
|
||||
move.l d2,-(sp)
|
||||
move.l #0,a6
|
||||
jsr (fsoft_used)
|
||||
jsr (_m_a_i_n)
|
||||
move.l d0,(sp) ! no stack cleanup needed
|
||||
EXIT:
|
||||
jsr (_exit)
|
||||
|
||||
fsoft_used:
|
||||
start_float:
|
||||
jmp (_finitfp_)
|
||||
|
||||
.sect .data
|
||||
begdata:
|
||||
.data4 0 ! may be at virtual address 0 with no problem
|
||||
hol0:
|
||||
.lino:
|
||||
.data4 0 ! lino
|
||||
.filn:
|
||||
.data4 0 ! filn
|
||||
.reghp:
|
||||
.data4 _end
|
||||
.limhp:
|
||||
.data4 _end
|
||||
.trppc:
|
||||
.data4 0
|
||||
.trpim:
|
||||
.data4 0 ! USED TO BE 2 BYTES; IS THIS RIGHT?
|
||||
|
||||
|
||||
.sect .bss
|
||||
begbss: !initialization is not needed because ALL entries are in zero space!
|
Loading…
Reference in a new issue