summaryrefslogtreecommitdiffstats
path: root/src/libgcc
diff options
context:
space:
mode:
authorMichael Brown2008-11-19 01:37:15 +0100
committerMichael Brown2008-11-19 20:14:24 +0100
commit849e4b12d62e87f11277916cea92573fc3eaab9a (patch)
tree51fe04c2bafbb51603944b338b9780decc2484f8 /src/libgcc
parent[i386] Rename __cdecl to __asmcall (diff)
downloadipxe-849e4b12d62e87f11277916cea92573fc3eaab9a.tar.gz
ipxe-849e4b12d62e87f11277916cea92573fc3eaab9a.tar.xz
ipxe-849e4b12d62e87f11277916cea92573fc3eaab9a.zip
[libgcc] Make __libgcc architecture-specific
Diffstat (limited to 'src/libgcc')
-rw-r--r--src/libgcc/__divdi3.c2
-rw-r--r--src/libgcc/__moddi3.c2
-rw-r--r--src/libgcc/__udivdi3.c2
-rw-r--r--src/libgcc/__udivmoddi4.c2
-rw-r--r--src/libgcc/__umoddi3.c2
-rw-r--r--src/libgcc/libgcc.h24
6 files changed, 11 insertions, 23 deletions
diff --git a/src/libgcc/__divdi3.c b/src/libgcc/__divdi3.c
index 36f0b37f..7097b11e 100644
--- a/src/libgcc/__divdi3.c
+++ b/src/libgcc/__divdi3.c
@@ -4,7 +4,7 @@
#include "libgcc.h"
-LIBGCC int64_t __divdi3(int64_t num, int64_t den)
+__libgcc int64_t __divdi3(int64_t num, int64_t den)
{
int minus = 0;
int64_t v;
diff --git a/src/libgcc/__moddi3.c b/src/libgcc/__moddi3.c
index eb7784b7..d671bbc4 100644
--- a/src/libgcc/__moddi3.c
+++ b/src/libgcc/__moddi3.c
@@ -4,7 +4,7 @@
#include "libgcc.h"
-LIBGCC int64_t __moddi3(int64_t num, int64_t den)
+__libgcc int64_t __moddi3(int64_t num, int64_t den)
{
int minus = 0;
int64_t v;
diff --git a/src/libgcc/__udivdi3.c b/src/libgcc/__udivdi3.c
index 9ae0c3dc..f5a14de2 100644
--- a/src/libgcc/__udivdi3.c
+++ b/src/libgcc/__udivdi3.c
@@ -4,7 +4,7 @@
#include "libgcc.h"
-LIBGCC uint64_t __udivdi3(uint64_t num, uint64_t den)
+__libgcc uint64_t __udivdi3(uint64_t num, uint64_t den)
{
return __udivmoddi4(num, den, NULL);
}
diff --git a/src/libgcc/__udivmoddi4.c b/src/libgcc/__udivmoddi4.c
index 59966edb..21e0d51f 100644
--- a/src/libgcc/__udivmoddi4.c
+++ b/src/libgcc/__udivmoddi4.c
@@ -1,6 +1,6 @@
#include "libgcc.h"
-LIBGCC uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem_p)
+__libgcc uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem_p)
{
uint64_t quot = 0, qbit = 1;
diff --git a/src/libgcc/__umoddi3.c b/src/libgcc/__umoddi3.c
index f6c76cb6..fb4da991 100644
--- a/src/libgcc/__umoddi3.c
+++ b/src/libgcc/__umoddi3.c
@@ -4,7 +4,7 @@
#include "libgcc.h"
-LIBGCC uint64_t __umoddi3(uint64_t num, uint64_t den)
+__libgcc uint64_t __umoddi3(uint64_t num, uint64_t den)
{
uint64_t v;
diff --git a/src/libgcc/libgcc.h b/src/libgcc/libgcc.h
index 5b4a6244..d3e9bdd7 100644
--- a/src/libgcc/libgcc.h
+++ b/src/libgcc/libgcc.h
@@ -4,23 +4,11 @@
#include <stdint.h>
#include <stddef.h>
-/*
- * It seems as though gcc expects its implicit arithmetic functions to
- * be cdecl, even if -mrtd is specified. This is somewhat
- * inconsistent; for example, if -mregparm=3 is used then the implicit
- * functions do become regparm(3).
- *
- * The implicit calls to memcpy() and memset() which gcc can generate
- * do not seem to have this inconsistency; -mregparm and -mrtd affect
- * them in the same way as any other function.
- *
- */
-#define LIBGCC __attribute__ (( cdecl ))
-
-extern LIBGCC uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem);
-extern LIBGCC uint64_t __udivdi3(uint64_t num, uint64_t den);
-extern LIBGCC uint64_t __umoddi3(uint64_t num, uint64_t den);
-extern LIBGCC int64_t __divdi3(int64_t num, int64_t den);
-extern LIBGCC int64_t __moddi3(int64_t num, int64_t den);
+extern __libgcc uint64_t __udivmoddi4 ( uint64_t num, uint64_t den,
+ uint64_t *rem );
+extern __libgcc uint64_t __udivdi3 (uint64_t num, uint64_t den );
+extern __libgcc uint64_t __umoddi3 ( uint64_t num, uint64_t den );
+extern __libgcc int64_t __divdi3 ( int64_t num, int64_t den );
+extern __libgcc int64_t __moddi3 ( int64_t num, int64_t den );
#endif /* _LIBGCC_H */