div64.S revision 1.1 1 /* $NetBSD: div64.S,v 1.1 1999/12/09 09:08:00 itohy Exp $ */
2
3 #include <m68k/asm.h>
4
5 /*
6 * stack:
7 * + 8: count
8 * + 4: retads
9 * + 0: d2
10 */
11
12 ENTRY_NOPROFILE(div64ureg)
13 movl %d2,%sp@-
14 movl %sp@(8),%d2
15 L1:
16 divul %d2,%d1:%d0
17 subql #1,%d2
18 jne L1
19 movl %sp@+,%d2
20 rts
21
22 ENTRY_NOPROFILE(div64sreg)
23 movl %d2,%sp@-
24 movl %sp@(8),%d2
25 L2:
26 divsl %d2,%d1:%d0
27 subql #1,%d2
28 jne L2
29 movl %sp@+,%d2
30 rts
31
32 ENTRY_NOPROFILE(div64umem)
33 movl %d2,%sp@-
34 movl %sp@(8),%d2
35 L3:
36 divul %sp@(8),%d1:%d0
37 subql #1,%d2
38 jne L3
39 movl %sp@+,%d2
40 rts
41
42 ENTRY_NOPROFILE(div64smem)
43 movl %d2,%sp@-
44 movl %sp@(8),%d2
45 L4:
46 divsl %sp@(8),%d1:%d0
47 subql #1,%d2
48 jne L4
49 movl %sp@+,%d2
50 rts
51