Chameleon

Chameleon Svn Source Tree

Root/branches/meklort/i386/modules/klibc/__udivmodsi4.c

Source at commit 840 created 13 years 14 days ago.
By azimutz, Following r820: - removed a duplicate "execute_hook("Kernel Start"..." - checked and added missing "boot_args/boot_args_pre_lion" stuff - small tweaks to "kDefaultCachePath..." and "gMacOSVersion" - enabled masking out of Pic interrupts on asm.s (thanks to DHP) - comment edits - reverted to XCode 3.2.6 build environment Folder is now on a working state :)
1#include "libsaio.h"
2extern void __divide_error();
3uint32_t __udivmodsi4(uint32_t num, uint32_t den, uint32_t * rem_p)
4{
5uint32_t quot = 0, qbit = 1;
6
7if (den == 0) {
8__divide_error();
9return 0;/* If trap returns... */
10}
11
12/* Left-justify denominator and count shift */
13while ((int32_t) den >= 0) {
14den <<= 1;
15qbit <<= 1;
16}
17
18while (qbit) {
19if (den <= num) {
20num -= den;
21quot += qbit;
22}
23den >>= 1;
24qbit >>= 1;
25}
26
27if (rem_p)
28*rem_p = num;
29
30return quot;
31}
32

Archive Download this file

Revision: 840