Import various libgcc functions from syslinux.

Experimentation reveals that gcc ignores -mrtd for the implicit
arithmetic functions (e.g. __udivdi3), but not for the implicit
memcpy() and memset() functions.  Mark the implicit arithmetic
functions with __attribute__((cdecl)) to compensate for this.

(Note: we cannot mark with with __cdecl, because we define __cdecl to
incorporate regparm(0) as well.)
This commit is contained in:
Michael Brown
2007-07-30 02:37:42 +01:00
parent f62d6486d8
commit 4ce8d61a5c
9 changed files with 134 additions and 338 deletions

13
src/libgcc/__umoddi3.c Normal file
View File

@@ -0,0 +1,13 @@
/*
* arch/i386/libgcc/__umoddi3.c
*/
#include "libgcc.h"
LIBGCC uint64_t __umoddi3(uint64_t num, uint64_t den)
{
uint64_t v;
(void) __udivmoddi4(num, den, &v);
return v;
}