1/*        $NetBSD: mul64.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
12ENTRY_NOPROFILE(mul64ureg)
13          movl      %d2,%sp@-
14          movl      %sp@(8),%d2
15L1:
16          mulul     %d2,%d1:%d0
17          subql     #1,%d2
18          jne       L1
19          movl      %sp@+,%d2
20          rts
21
22ENTRY_NOPROFILE(mul64sreg)
23          movl      %d2,%sp@-
24          movl      %sp@(8),%d2
25L2:
26          mulsl     %d2,%d1:%d0
27          subql     #1,%d2
28          jne       L2
29          movl      %sp@+,%d2
30          rts
31
32ENTRY_NOPROFILE(mul64umem)
33          movl      %d2,%sp@-
34          movl      %sp@(8),%d2
35L3:
36          mulul     %sp@(8),%d1:%d0
37          subql     #1,%d2
38          jne       L3
39          movl      %sp@+,%d2
40          rts
41
42ENTRY_NOPROFILE(mul64smem)
43          movl      %d2,%sp@-
44          movl      %sp@(8),%d2
45L4:
46          mulsl     %sp@(8),%d1:%d0
47          subql     #1,%d2
48          jne       L4
49          movl      %sp@+,%d2
50          rts
51