--HG--
branch : unlabeled-2.1.1
--- /dev/null
+.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