Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / regress / sys / arch / m68k / emuspeed / mul64.S
blob1fc8caf998954cc78a38c285eef175d58feba56b
1 /*      $NetBSD$        */
3 #include <m68k/asm.h>
5 /*
6  * stack:
7  * + 8: count
8  * + 4: retads
9  * + 0: d2
10  */
12 ENTRY_NOPROFILE(mul64ureg)
13         movl    %d2,%sp@-
14         movl    %sp@(8),%d2
15 L1:
16         mulul   %d2,%d1:%d0
17         subql   #1,%d2
18         jne     L1
19         movl    %sp@+,%d2
20         rts
22 ENTRY_NOPROFILE(mul64sreg)
23         movl    %d2,%sp@-
24         movl    %sp@(8),%d2
25 L2:
26         mulsl   %d2,%d1:%d0
27         subql   #1,%d2
28         jne     L2
29         movl    %sp@+,%d2
30         rts
32 ENTRY_NOPROFILE(mul64umem)
33         movl    %d2,%sp@-
34         movl    %sp@(8),%d2
35 L3:
36         mulul   %sp@(8),%d1:%d0
37         subql   #1,%d2
38         jne     L3
39         movl    %sp@+,%d2
40         rts
42 ENTRY_NOPROFILE(mul64smem)
43         movl    %d2,%sp@-
44         movl    %sp@(8),%d2
45 L4:
46         mulsl   %sp@(8),%d1:%d0
47         subql   #1,%d2
48         jne     L4
49         movl    %sp@+,%d2
50         rts