From 28f540f45bbacd939bfd07f213bcad2bf730b1bf Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 18 Feb 1995 01:27:10 +0000 Subject: initial import --- sysdeps/alpha/divlu.S | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 sysdeps/alpha/divlu.S (limited to 'sysdeps/alpha/divlu.S') diff --git a/sysdeps/alpha/divlu.S b/sysdeps/alpha/divlu.S new file mode 100644 index 0000000000..9ae5950c53 --- /dev/null +++ b/sysdeps/alpha/divlu.S @@ -0,0 +1,54 @@ + /* This file is generated from divrem.m4; DO NOT EDIT! */ +/* For each N divided by D, we do: + result = (double) N / (double) D + Then, for each N mod D, we do: + result = N - (D * divMODE (N, D)) + + FIXME: + The q and qu versions won't deal with operands > 50 bits. We also + don't check for divide by zero. */ + +#include "DEFS.h" +#if 0 +/* We do not handle div by zero yet. */ +#include +#endif +#include + + + + + + +FUNC__(divlu) + /* First set up the dividend. */ + zapnot t10, 0xf, t10 + + stq t10,0(sp) + ldt $f10,0(sp) + cvtqt $f10,$f10 + + + /* Then set up the divisor. */ + zapnot t11, 0xf, t11 + + stq t11,0(sp) + ldt $f1,0(sp) + cvtqt $f1,$f1 + + + /* Do the division. */ + divt $f10,$f1,$f10 + cvttqc $f10,$f10 + + /* Put the result in t12. */ + stt $f10,0(sp) + ldq t12,0(sp) + sextl t12, t12 + + + + + lda sp,16(sp) + ret zero,(t9),1 + .end NAME__(divlu) -- cgit v1.2.3