From bd31a058ca2cc9167711ebe600c10717a3aa23fa Mon Sep 17 00:00:00 2001 From: Donn Seeley Date: Fri, 5 Apr 1991 16:48:23 -0800 Subject: [PATCH 1/1] date and time created 91/04/05 09:48:23 by donn SCCS-vsn: lib/libc/vax/gen/udivsi3.s 6.1 --- usr/src/lib/libc/vax/gen/udivsi3.s | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 usr/src/lib/libc/vax/gen/udivsi3.s diff --git a/usr/src/lib/libc/vax/gen/udivsi3.s b/usr/src/lib/libc/vax/gen/udivsi3.s new file mode 100644 index 0000000000..2f4323b919 --- /dev/null +++ b/usr/src/lib/libc/vax/gen/udivsi3.s @@ -0,0 +1,39 @@ +/*- + * Copyright (c) 1991 The Regents of the University of California. + * All rights reserved. + * + * %sccs.include.redist.c% + */ + +#if defined(LIBC_SCCS) && !defined(lint) + .asciz "@(#)udivsi3.s 6.1 (Berkeley) %G%" +#endif /* LIBC_SCCS and not lint */ + +/* + * Unsigned division, GCC flavor. + */ + +#include "DEFS.h" + +#define DIVIDEND 4(ap) +#define DIVISOR 8(ap) + +ENTRY(__udivsi3,0) + movl DIVISOR,r2 + jlss Leasy # big divisor: settle by comparison + movl DIVIDEND,r0 + jlss Lhard # big dividend: extended division + divl2 r2,r0 # small divisor and dividend: signed division + ret +Lhard: + clrl r1 + ediv r2,r0,r0,r1 + ret +Leasy: + cmpl DIVIDEND,r2 + jgequ Lone # if dividend is as big or bigger, return 1 + clrl r0 # else return 0 + ret +Lone: + movl $1,r0 + ret -- 2.20.1