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

51 lines
662 B
ArmAsm

/* $NetBSD: div64.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(div64ureg)
movl %d2,%sp@-
movl %sp@(8),%d2
L1:
divul %d2,%d1:%d0
subql #1,%d2
jne L1
movl %sp@+,%d2
rts
ENTRY_NOPROFILE(div64sreg)
movl %d2,%sp@-
movl %sp@(8),%d2
L2:
divsl %d2,%d1:%d0
subql #1,%d2
jne L2
movl %sp@+,%d2
rts
ENTRY_NOPROFILE(div64umem)
movl %d2,%sp@-
movl %sp@(8),%d2
L3:
divul %sp@(8),%d1:%d0
subql #1,%d2
jne L3
movl %sp@+,%d2
rts
ENTRY_NOPROFILE(div64smem)
movl %d2,%sp@-
movl %sp@(8),%d2
L4:
divsl %sp@(8),%d1:%d0
subql #1,%d2
jne L4
movl %sp@+,%d2
rts