xref: /csrg-svn/lib/libc/tahoe/gen/udiv.s (revision 29702)
1*29702Ssam#ifdef LIBC_SCCS
2*29702Ssam	.asciz	"@(#)udiv.s	1.1 (Berkeley/CCI) 08/01/86"
3*29702Ssam#endif LIBC_SCCS
4*29702Ssam
5*29702Ssam/*
6*29702Ssam * Unsigned divide.
7*29702Ssam *
8*29702Ssam * udiv(dividend, divisor)
9*29702Ssam */
10*29702Ssam#include "DEFS.h"
11*29702Ssam
12*29702SsamASENTRY(udiv, 0)
13*29702Ssam	bitl	$0x80000000,8(fp)	#  if (divisor & 0x80000000){
14*29702Ssam	jeql	1f
15*29702Ssam	cmpl	8(fp),4(fp)		#  if (divisor > dividend )
16*29702Ssam	jlequ	2f
17*29702Ssam	clrl	r0			#      return(0);
18*29702Ssam	ret
19*29702Ssam2:					#  else
20*29702Ssam	movl	$1,r0			#      return(1);}
21*29702Ssam	ret
22*29702Ssam1:
23*29702Ssam	clrl	r0			#  return(dividend/divisor);
24*29702Ssam	movl	4(fp),r1
25*29702Ssam	ediv	8(fp),r0,r2,r3
26*29702Ssam	movl	r2,r0
27*29702Ssam	ret
28