ack/mach/m68k4/libem/dvi.s
1985-02-07 22:06:32 +00:00

43 lines
497 B
ArmAsm

.define .dvi
! signed long divide
.text
.dvi:
movem.l d0/d4,.savdvi
move.l (sp)+,.retdvi
move.l (sp)+,d0
move.l (sp)+,d1
clr.l d4
tst.l d0 ! divisor
bpl 1f
neg.l d0
not d4
1:
tst.l d1 ! dividend
bpl 2f
neg.l d1
not d4
swap d4
not d4
swap d4
2:
move.l d1,-(sp)
move.l d0,-(sp)
jsr .dvu
tst d4
beq 5f
neg.l d1 ! quotient
5:
tst.l d4
bpl 6f
neg.l d2 ! remainder
6:
movem.l .savdvi,d0/d4
move.l .retdvi,-(sp)
rts
.data
.savdvi: .space 12
.retdvi: .long 0
.text
.align 2