NetBSD/regress/sys/arch/m68k/emuspeed/mul64.S

51 lines
662 B
ArmAsm

/* $NetBSD: mul64.S,v 1.1 1999/12/09 09:08:00 itohy Exp $ */
#include <m68k/asm.h>
/*
* stack:
* + 8: count
* + 4: retads
* + 0: d2
*/
ENTRY_NOPROFILE(mul64ureg)
movl %d2,%sp@-
movl %sp@(8),%d2
L1:
mulul %d2,%d1:%d0
subql #1,%d2
jne L1
movl %sp@+,%d2
rts
ENTRY_NOPROFILE(mul64sreg)
movl %d2,%sp@-
movl %sp@(8),%d2
L2:
mulsl %d2,%d1:%d0
subql #1,%d2
jne L2
movl %sp@+,%d2
rts
ENTRY_NOPROFILE(mul64umem)
movl %d2,%sp@-
movl %sp@(8),%d2
L3:
mulul %sp@(8),%d1:%d0
subql #1,%d2
jne L3
movl %sp@+,%d2
rts
ENTRY_NOPROFILE(mul64smem)
movl %d2,%sp@-
movl %sp@(8),%d2
L4:
mulsl %sp@(8),%d1:%d0
subql #1,%d2
jne L4
movl %sp@+,%d2
rts