Root/
Source at commit 1313 created 12 years 9 months ago. By meklort, Add TIXML_USE_STL to TinyXML | |
---|---|
1 | #include <stdint.h>␊ |
2 | ␊ |
3 | extern void __divide_error();␊ |
4 | uint32_t __udivmodsi4(uint32_t num, uint32_t den, uint32_t * rem_p)␊ |
5 | {␊ |
6 | ␉uint32_t quot = 0, qbit = 1;␊ |
7 | ␊ |
8 | ␉if (den == 0) {␊ |
9 | ␉␉__divide_error();␊ |
10 | ␉␉return 0;␉/* If trap returns... */␊ |
11 | ␉}␊ |
12 | ␊ |
13 | ␉/* Left-justify denominator and count shift */␊ |
14 | ␉while ((int32_t) den >= 0) {␊ |
15 | ␉␉den <<= 1;␊ |
16 | ␉␉qbit <<= 1;␊ |
17 | ␉}␊ |
18 | ␊ |
19 | ␉while (qbit) {␊ |
20 | ␉␉if (den <= num) {␊ |
21 | ␉␉␉num -= den;␊ |
22 | ␉␉␉quot += qbit;␊ |
23 | ␉␉}␊ |
24 | ␉␉den >>= 1;␊ |
25 | ␉␉qbit >>= 1;␊ |
26 | ␉}␊ |
27 | ␊ |
28 | ␉if (rem_p)␊ |
29 | ␉␉*rem_p = num;␊ |
30 | ␊ |
31 | ␉return quot;␊ |
32 | }␊ |
33 |