Import various libgcc functions from syslinux.
[people/indolent/gpxe.git/.git] / src / libgcc / libgcc.h
1 #ifndef _LIBGCC_H
2 #define _LIBGCC_H
3
4 #include <stdint.h>
5 #include <stddef.h>
6
7 /*
8  * It seems as though gcc expects its implicit arithmetic functions to
9  * be cdecl, even if -mrtd is specified.  This is somewhat
10  * inconsistent; for example, if -mregparm=3 is used then the implicit
11  * functions do become regparm(3).
12  *
13  * The implicit calls to memcpy() and memset() which gcc can generate
14  * do not seem to have this inconsistency; -mregparm and -mrtd affect
15  * them in the same way as any other function.
16  *
17  */
18 #define LIBGCC __attribute__ (( cdecl ))
19
20 extern LIBGCC uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem);
21 extern LIBGCC uint64_t __udivdi3(uint64_t num, uint64_t den);
22 extern LIBGCC uint64_t __umoddi3(uint64_t num, uint64_t den);
23 extern LIBGCC int64_t __divdi3(int64_t num, int64_t den);
24 extern LIBGCC int64_t __moddi3(int64_t num, int64_t den);
25
26 #endif /* _LIBGCC_H */