URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 154 |
Rev 816 |
unsigned long
|
unsigned long
|
udivmodsi4(unsigned long num, unsigned long den, int modwanted)
|
udivmodsi4(unsigned long num, unsigned long den, int modwanted)
|
{
|
{
|
unsigned long bit = 1;
|
unsigned long bit = 1;
|
unsigned long res = 0;
|
unsigned long res = 0;
|
|
|
while (den < num && bit && !(den & (1L<<31)))
|
while (den < num && bit && !(den & (1L<<31)))
|
{
|
{
|
den <<=1;
|
den <<=1;
|
bit <<=1;
|
bit <<=1;
|
}
|
}
|
while (bit)
|
while (bit)
|
{
|
{
|
if (num >= den)
|
if (num >= den)
|
{
|
{
|
num -= den;
|
num -= den;
|
res |= bit;
|
res |= bit;
|
}
|
}
|
bit >>=1;
|
bit >>=1;
|
den >>=1;
|
den >>=1;
|
}
|
}
|
if (modwanted) return num;
|
if (modwanted) return num;
|
return res;
|
return res;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.