macro MYDIV m0,m1,m2,t0
{
TST R13,#3
MOVNE PC,#0
CMP m1,#0
RSBLT m1,m1,#0
EORLT R13,R13,#1
CMP m2,#0
RSBLT m2,m2,#0
EORLT R13,R13,#2
BNE _MYDIV4
CMP m1,#0
MOVEQ m0,#0
MOVNE m0,#&7f000000
B _MYDIV1
._MYDIV4
MOV t0,#1
._MYDIV2
CMP m2,#&80000000
CMPCC m2,m1
MOVCC m2,m2,LSL #1
MOVCC t0,t0,LSL #1
BCC _MYDIV2
MOV m0,#0
._MYDIV3
CMP m1,m2
SUBCS m1,m1,m2
ADDCS m0,m0,t0
MOVS t0,t0,LSR #1
MOVNE m2,m2,LSR #1
BNE _MYDIV3
._MYDIV1
TST R13,#2
RSBNE m2,m2,#0
TST R13,#1
RSBNE m1,m1,#0
EORNE R13,R13,#2
TST R13,#2
RSBNE m0,m0,#0
BIC R13,R13,#3
}

