Code Review
/
kvmfornfv.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
history
|
raw
|
HEAD
Add qemu 2.4.0
[kvmfornfv.git]
/
qemu
/
roms
/
openbios
/
libgcc
/
__udivmodti4.c
1
#include "libgcc.h"
2
3
__uint128_t __udivmodti4(__uint128_t num, __uint128_t den, __uint128_t *rem_p)
4
{
5
__uint128_t quot = 0, qbit = 1;
6
7
if ( den == 0 ) {
8
__divide_error();
9
return 0; /* If trap returns... */
10
}
11
12
/* Left-justify denominator and count shift */
13
while ( (__int128_t)den >= 0 ) {
14
den <<= 1;
15
qbit <<= 1;
16
}
17
18
while ( qbit ) {
19
if ( den <= num ) {
20
num -= den;
21
quot += qbit;
22
}
23
den >>= 1;
24
qbit >>= 1;
25
}
26
27
if ( rem_p )
28
*rem_p = num;
29
30
return quot;
31
}