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
|
sbf4.s
|
||||||
sbf8.s
|
sbf8.s
|
||||||
vars.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
|
dvf8.o fef4.o fef8.o fif4.o fif8.o mlf4.o mlf8.o sbf4.o sbf8.o vars.o
|
||||||
|
|
||||||
OBJ = $(EMOBJ) $(FOBJ)
|
OBJ = $(EMOBJ) $(FOBJ)
|
||||||
all: libext.a
|
|
||||||
|
all: libext.a head_em.sun.o
|
||||||
|
|
||||||
.s.o:
|
.s.o:
|
||||||
sun3 -c $*.s
|
sun3 -c $*.s
|
||||||
|
@ -19,11 +20,16 @@ libext.a: $(OBJ)
|
||||||
ar rv libext.a $(OBJ)
|
ar rv libext.a $(OBJ)
|
||||||
ranlib libext.a
|
ranlib libext.a
|
||||||
|
|
||||||
|
head_em.sun.o: head_em.o
|
||||||
|
../../../lib/sun3/cv -u head_em.o head_em.sun.o
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
../../install libext.a tail_ext
|
../../install libext.a tail_ext
|
||||||
|
../../install head_em.sun.o head_em.sun
|
||||||
|
|
||||||
cmp: all
|
cmp: all
|
||||||
-../../compare libext.a tail_ext
|
-../../compare libext.a tail_ext
|
||||||
|
-../../compare head_em.sun.o head_em.sun
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.[oa]
|
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