added concrete implementations of putc(), getc(), getchar() and gets()
[tangerine.git] / arch / .unmaintained / m68k-native / clib / __udivsi3.s
blob57981e20f4b2a534ac9e61e04b914d9d2daea865
1 | $Id$
3 | Code taken from libnix
6 .globl ___umodsi3
7 .globl ___udivsi3
8 .globl ___udivsi4
10 | D1.L = D0.L % D1.L unsigned
12 ___umodsi3: moveml sp@(4:W),d0/d1
13 jbsr ___udivsi4
14 movel d1,d0
15 rts
17 | D0.L = D0.L / D1.L unsigned
19 ___udivsi3: moveml sp@(4:W),d0/d1
20 ___udivsi4: movel d3,sp@-
21 movel d2,sp@-
22 movel d1,d3
23 swap d1
24 tstw d1
25 bnes LC4
26 movew d0,d2
27 clrw d0
28 swap d0
29 divu d3,d0
30 movel d0,d1
31 swap d0
32 movew d2,d1
33 divu d3,d1
34 movew d1,d0
35 clrw d1
36 swap d1
37 jra LC1
38 LC4: movel d0,d1
39 swap d0
40 clrw d0
41 clrw d1
42 swap d1
43 moveq #16-1,d2
44 LC3: addl d0,d0
45 addxl d1,d1
46 cmpl d1,d3
47 bhis LC2
48 subl d3,d1
49 addqw #1,d0
50 LC2: dbra d2,LC3
51 LC1: movel sp@+,d2
52 movel sp@+,d3
53 rts