Chameleon

Chameleon Svn Source Tree

Root/branches/ErmaC/Enoch_Modules/i386/modules/klibc/__modsi3.c

1/*
2 * libgcc/__modsi3.c
3 */
4
5#include <stdint.h>
6#include <stddef.h>
7
8extern uint32_t __udivmodsi4(uint32_t num, uint32_t den, uint32_t * rem);
9
10int32_t __modsi3(int32_t num, int32_t den)
11{
12int minus = 0;
13int32_t v;
14
15if (num < 0) {
16num = -num;
17minus = 1;
18}
19if (den < 0) {
20den = -den;
21minus ^= 1;
22}
23
24(void)__udivmodsi4(num, den, (uint32_t *) & v);
25if (minus)
26v = -v;
27
28return v;
29}
30

Archive Download this file

Revision: 2238