summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoerg Sonnenberger <joerg@bec.de>2014-03-01 15:30:50 +0000
committerJoerg Sonnenberger <joerg@bec.de>2014-03-01 15:30:50 +0000
commitbfbb8bbc8e4a4fce3538aa85b095543fee291df7 (patch)
tree66760b0732edf7228f5920aa69b9a105d7913afe
parent8467eeb64062221a2b8d36629f907d072336d989 (diff)
Consistently use COMPILER_RT_ABI for all public symbols.
Move prototypes into headers and fix a few inconsistencies. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202591 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/builtins/absvti2.c2
-rw-r--r--lib/builtins/addsf3.c3
-rw-r--r--lib/builtins/addvti3.c2
-rw-r--r--lib/builtins/ashlti3.c2
-rw-r--r--lib/builtins/ashrti3.c2
-rw-r--r--lib/builtins/clear_cache.c3
-rw-r--r--lib/builtins/clzti2.c2
-rw-r--r--lib/builtins/cmpti2.c2
-rw-r--r--lib/builtins/comparedf2.c21
-rw-r--r--lib/builtins/comparesf2.c21
-rw-r--r--lib/builtins/ctzti2.c2
-rw-r--r--lib/builtins/divdc3.c2
-rw-r--r--lib/builtins/divdf3.c3
-rw-r--r--lib/builtins/divdi3.c2
-rw-r--r--lib/builtins/divmoddi4.c2
-rw-r--r--lib/builtins/divmodsi4.c3
-rw-r--r--lib/builtins/divsc3.c2
-rw-r--r--lib/builtins/divsf3.c3
-rw-r--r--lib/builtins/divsi3.c2
-rw-r--r--lib/builtins/divti3.c4
-rw-r--r--lib/builtins/divxc3.c2
-rw-r--r--lib/builtins/enable_execute_stack.c5
-rw-r--r--lib/builtins/eprintf.c5
-rw-r--r--lib/builtins/extendsfdf2.c3
-rw-r--r--lib/builtins/ffsti2.c2
-rw-r--r--lib/builtins/fixdfdi.c2
-rw-r--r--lib/builtins/fixdfsi.c3
-rw-r--r--lib/builtins/fixdfti.c2
-rw-r--r--lib/builtins/fixsfti.c2
-rw-r--r--lib/builtins/fixunsdfti.c2
-rw-r--r--lib/builtins/fixunssfti.c2
-rw-r--r--lib/builtins/fixunsxfdi.c2
-rw-r--r--lib/builtins/fixunsxfsi.c2
-rw-r--r--lib/builtins/fixunsxfti.c2
-rw-r--r--lib/builtins/fixxfdi.c2
-rw-r--r--lib/builtins/fixxfti.c2
-rw-r--r--lib/builtins/floatdixf.c2
-rw-r--r--lib/builtins/floatsidf.c3
-rw-r--r--lib/builtins/floatsisf.c3
-rw-r--r--lib/builtins/floattidf.c4
-rw-r--r--lib/builtins/floattisf.c4
-rw-r--r--lib/builtins/floattixf.c4
-rw-r--r--lib/builtins/floatundidf.c1
-rw-r--r--lib/builtins/floatundixf.c2
-rw-r--r--lib/builtins/floatunsidf.c3
-rw-r--r--lib/builtins/floatunsisf.c3
-rw-r--r--lib/builtins/floatuntidf.c4
-rw-r--r--lib/builtins/floatuntisf.c4
-rw-r--r--lib/builtins/floatuntixf.c4
-rw-r--r--lib/builtins/fp_lib.h3
-rw-r--r--lib/builtins/gcc_personality_v0.c16
-rw-r--r--lib/builtins/int_lib.h15
-rw-r--r--lib/builtins/lshrti3.c2
-rw-r--r--lib/builtins/moddi3.c2
-rw-r--r--lib/builtins/modsi3.c2
-rw-r--r--lib/builtins/modti3.c4
-rw-r--r--lib/builtins/muldc3.c2
-rw-r--r--lib/builtins/mulodi4.c2
-rw-r--r--lib/builtins/mulosi4.c2
-rw-r--r--lib/builtins/muloti4.c2
-rw-r--r--lib/builtins/mulsc3.c2
-rw-r--r--lib/builtins/multi3.c2
-rw-r--r--lib/builtins/mulvdi3.c2
-rw-r--r--lib/builtins/mulvsi3.c2
-rw-r--r--lib/builtins/mulvti3.c2
-rw-r--r--lib/builtins/mulxc3.c2
-rw-r--r--lib/builtins/negdf2.c3
-rw-r--r--lib/builtins/negdi2.c2
-rw-r--r--lib/builtins/negti2.c2
-rw-r--r--lib/builtins/negvti2.c2
-rw-r--r--lib/builtins/paritydi2.c2
-rw-r--r--lib/builtins/parityti2.c4
-rw-r--r--lib/builtins/popcountti2.c2
-rw-r--r--lib/builtins/powitf2.c2
-rw-r--r--lib/builtins/powixf2.c2
-rw-r--r--lib/builtins/subdf3.c3
-rw-r--r--lib/builtins/subsf3.c2
-rw-r--r--lib/builtins/subvti3.c2
-rw-r--r--lib/builtins/trampoline_setup.c5
-rw-r--r--lib/builtins/ucmpti2.c2
-rw-r--r--lib/builtins/udivdi3.c2
-rw-r--r--lib/builtins/udivmodsi4.c3
-rw-r--r--lib/builtins/udivmodti4.c2
-rw-r--r--lib/builtins/udivti3.c4
-rw-r--r--lib/builtins/umoddi3.c2
-rw-r--r--lib/builtins/umodsi3.c2
-rw-r--r--lib/builtins/umodti3.c4
87 files changed, 139 insertions, 145 deletions
diff --git a/lib/builtins/absvti2.c b/lib/builtins/absvti2.c
index 437bc3ddc..7927770c9 100644
--- a/lib/builtins/absvti2.c
+++ b/lib/builtins/absvti2.c
@@ -20,7 +20,7 @@
/* Effects: aborts if abs(x) < 0 */
-ti_int
+COMPILER_RT_ABI ti_int
__absvti2(ti_int a)
{
const int N = (int)(sizeof(ti_int) * CHAR_BIT);
diff --git a/lib/builtins/addsf3.c b/lib/builtins/addsf3.c
index 0268324de..d528c8a72 100644
--- a/lib/builtins/addsf3.c
+++ b/lib/builtins/addsf3.c
@@ -17,7 +17,8 @@
ARM_EABI_FNALIAS(fadd, addsf3)
-fp_t __addsf3(fp_t a, fp_t b) {
+COMPILER_RT_ABI fp_t
+__addsf3(fp_t a, fp_t b) {
rep_t aRep = toRep(a);
rep_t bRep = toRep(b);
diff --git a/lib/builtins/addvti3.c b/lib/builtins/addvti3.c
index f2a5c5669..79b9611f9 100644
--- a/lib/builtins/addvti3.c
+++ b/lib/builtins/addvti3.c
@@ -20,7 +20,7 @@
/* Effects: aborts if a + b overflows */
-ti_int
+COMPILER_RT_ABI ti_int
__addvti3(ti_int a, ti_int b)
{
ti_int s = a + b;
diff --git a/lib/builtins/ashlti3.c b/lib/builtins/ashlti3.c
index 08d2181d4..638ae845f 100644
--- a/lib/builtins/ashlti3.c
+++ b/lib/builtins/ashlti3.c
@@ -20,7 +20,7 @@
/* Precondition: 0 <= b < bits_in_tword */
-ti_int
+COMPILER_RT_ABI ti_int
__ashlti3(ti_int a, si_int b)
{
const int bits_in_dword = (int)(sizeof(di_int) * CHAR_BIT);
diff --git a/lib/builtins/ashrti3.c b/lib/builtins/ashrti3.c
index 6161bd599..f78205d96 100644
--- a/lib/builtins/ashrti3.c
+++ b/lib/builtins/ashrti3.c
@@ -20,7 +20,7 @@
/* Precondition: 0 <= b < bits_in_tword */
-ti_int
+COMPILER_RT_ABI ti_int
__ashrti3(ti_int a, si_int b)
{
const int bits_in_dword = (int)(sizeof(di_int) * CHAR_BIT);
diff --git a/lib/builtins/clear_cache.c b/lib/builtins/clear_cache.c
index 7aee28590..b2e95afc9 100644
--- a/lib/builtins/clear_cache.c
+++ b/lib/builtins/clear_cache.c
@@ -24,7 +24,8 @@
* specified range.
*/
-void __clear_cache(void* start, void* end)
+COMPILER_RT_ABI void
+__clear_cache(void* start, void* end)
{
#if __i386__ || __x86_64__
/*
diff --git a/lib/builtins/clzti2.c b/lib/builtins/clzti2.c
index d478db84d..15a7b3c90 100644
--- a/lib/builtins/clzti2.c
+++ b/lib/builtins/clzti2.c
@@ -20,7 +20,7 @@
/* Precondition: a != 0 */
-si_int
+COMPILER_RT_ABI si_int
__clzti2(ti_int a)
{
twords x;
diff --git a/lib/builtins/cmpti2.c b/lib/builtins/cmpti2.c
index d287fab82..2c8b56e29 100644
--- a/lib/builtins/cmpti2.c
+++ b/lib/builtins/cmpti2.c
@@ -21,7 +21,7 @@
* if (a > b) returns 2
*/
-si_int
+COMPILER_RT_ABI si_int
__cmpti2(ti_int a, ti_int b)
{
twords x;
diff --git a/lib/builtins/comparedf2.c b/lib/builtins/comparedf2.c
index de67784dc..877ed7d3a 100644
--- a/lib/builtins/comparedf2.c
+++ b/lib/builtins/comparedf2.c
@@ -47,7 +47,8 @@ enum LE_RESULT {
LE_UNORDERED = 1
};
-enum LE_RESULT __ledf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum LE_RESULT
+__ledf2(fp_t a, fp_t b) {
const srep_t aInt = toRep(a);
const srep_t bInt = toRep(b);
@@ -86,7 +87,8 @@ enum GE_RESULT {
GE_UNORDERED = -1 // Note: different from LE_UNORDERED
};
-enum GE_RESULT __gedf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum GE_RESULT
+__gedf2(fp_t a, fp_t b) {
const srep_t aInt = toRep(a);
const srep_t bInt = toRep(b);
@@ -108,7 +110,8 @@ enum GE_RESULT __gedf2(fp_t a, fp_t b) {
ARM_EABI_FNALIAS(dcmpun, unorddf2)
-int __unorddf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI int
+__unorddf2(fp_t a, fp_t b) {
const rep_t aAbs = toRep(a) & absMask;
const rep_t bAbs = toRep(b) & absMask;
return aAbs > infRep || bAbs > infRep;
@@ -116,19 +119,23 @@ int __unorddf2(fp_t a, fp_t b) {
// The following are alternative names for the preceeding routines.
-enum LE_RESULT __eqdf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum LE_RESULT
+__eqdf2(fp_t a, fp_t b) {
return __ledf2(a, b);
}
-enum LE_RESULT __ltdf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum LE_RESULT
+__ltdf2(fp_t a, fp_t b) {
return __ledf2(a, b);
}
-enum LE_RESULT __nedf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum LE_RESULT
+__nedf2(fp_t a, fp_t b) {
return __ledf2(a, b);
}
-enum GE_RESULT __gtdf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum GE_RESULT
+__gtdf2(fp_t a, fp_t b) {
return __gedf2(a, b);
}
diff --git a/lib/builtins/comparesf2.c b/lib/builtins/comparesf2.c
index c1c3a479c..df1c45796 100644
--- a/lib/builtins/comparesf2.c
+++ b/lib/builtins/comparesf2.c
@@ -47,7 +47,8 @@ enum LE_RESULT {
LE_UNORDERED = 1
};
-enum LE_RESULT __lesf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum LE_RESULT
+__lesf2(fp_t a, fp_t b) {
const srep_t aInt = toRep(a);
const srep_t bInt = toRep(b);
@@ -86,7 +87,8 @@ enum GE_RESULT {
GE_UNORDERED = -1 // Note: different from LE_UNORDERED
};
-enum GE_RESULT __gesf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum GE_RESULT
+__gesf2(fp_t a, fp_t b) {
const srep_t aInt = toRep(a);
const srep_t bInt = toRep(b);
@@ -108,7 +110,8 @@ enum GE_RESULT __gesf2(fp_t a, fp_t b) {
ARM_EABI_FNALIAS(fcmpun, unordsf2)
-int __unordsf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI int
+__unordsf2(fp_t a, fp_t b) {
const rep_t aAbs = toRep(a) & absMask;
const rep_t bAbs = toRep(b) & absMask;
return aAbs > infRep || bAbs > infRep;
@@ -116,18 +119,22 @@ int __unordsf2(fp_t a, fp_t b) {
// The following are alternative names for the preceeding routines.
-enum LE_RESULT __eqsf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum LE_RESULT
+__eqsf2(fp_t a, fp_t b) {
return __lesf2(a, b);
}
-enum LE_RESULT __ltsf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum LE_RESULT
+__ltsf2(fp_t a, fp_t b) {
return __lesf2(a, b);
}
-enum LE_RESULT __nesf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum LE_RESULT
+__nesf2(fp_t a, fp_t b) {
return __lesf2(a, b);
}
-enum GE_RESULT __gtsf2(fp_t a, fp_t b) {
+COMPILER_RT_ABI enum GE_RESULT
+__gtsf2(fp_t a, fp_t b) {
return __gesf2(a, b);
}
diff --git a/lib/builtins/ctzti2.c b/lib/builtins/ctzti2.c
index 43a8797a1..45de68270 100644
--- a/lib/builtins/ctzti2.c
+++ b/lib/builtins/ctzti2.c
@@ -20,7 +20,7 @@
/* Precondition: a != 0 */
-si_int
+COMPILER_RT_ABI si_int
__ctzti2(ti_int a)
{
twords x;
diff --git a/lib/builtins/divdc3.c b/lib/builtins/divdc3.c
index cfbc498e7..7de78c871 100644
--- a/lib/builtins/divdc3.c
+++ b/lib/builtins/divdc3.c
@@ -17,7 +17,7 @@
/* Returns: the quotient of (a + ib) / (c + id) */
-double _Complex
+COMPILER_RT_ABI double _Complex
__divdc3(double __a, double __b, double __c, double __d)
{
int __ilogbw = 0;
diff --git a/lib/builtins/divdf3.c b/lib/builtins/divdf3.c
index efce6bb4b..70da630e9 100644
--- a/lib/builtins/divdf3.c
+++ b/lib/builtins/divdf3.c
@@ -21,7 +21,8 @@
ARM_EABI_FNALIAS(ddiv, divdf3)
-fp_t __divdf3(fp_t a, fp_t b) {
+COMPILER_RT_ABI fp_t
+__divdf3(fp_t a, fp_t b) {
const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;
const unsigned int bExponent = toRep(b) >> significandBits & maxExponent;
diff --git a/lib/builtins/divdi3.c b/lib/builtins/divdi3.c
index 2c2bcc26d..b8eebcb20 100644
--- a/lib/builtins/divdi3.c
+++ b/lib/builtins/divdi3.c
@@ -14,8 +14,6 @@
#include "int_lib.h"
-du_int COMPILER_RT_ABI __udivmoddi4(du_int a, du_int b, du_int* rem);
-
/* Returns: a / b */
COMPILER_RT_ABI di_int
diff --git a/lib/builtins/divmoddi4.c b/lib/builtins/divmoddi4.c
index 2fe2b4818..0d4df67a6 100644
--- a/lib/builtins/divmoddi4.c
+++ b/lib/builtins/divmoddi4.c
@@ -14,8 +14,6 @@
#include "int_lib.h"
-extern COMPILER_RT_ABI di_int __divdi3(di_int a, di_int b);
-
/* Returns: a / b, *rem = a % b */
COMPILER_RT_ABI di_int
diff --git a/lib/builtins/divmodsi4.c b/lib/builtins/divmodsi4.c
index c7f7b1a7c..dabe28743 100644
--- a/lib/builtins/divmodsi4.c
+++ b/lib/builtins/divmodsi4.c
@@ -14,9 +14,6 @@
#include "int_lib.h"
-extern COMPILER_RT_ABI si_int __divsi3(si_int a, si_int b);
-
-
/* Returns: a / b, *rem = a % b */
COMPILER_RT_ABI si_int
diff --git a/lib/builtins/divsc3.c b/lib/builtins/divsc3.c
index caa0c4075..710d53208 100644
--- a/lib/builtins/divsc3.c
+++ b/lib/builtins/divsc3.c
@@ -17,7 +17,7 @@
/* Returns: the quotient of (a + ib) / (c + id) */
-float _Complex
+COMPILER_RT_ABI float _Complex
__divsc3(float __a, float __b, float __c, float __d)
{
int __ilogbw = 0;
diff --git a/lib/builtins/divsf3.c b/lib/builtins/divsf3.c
index c91c648fa..de2e37612 100644
--- a/lib/builtins/divsf3.c
+++ b/lib/builtins/divsf3.c
@@ -21,7 +21,8 @@
ARM_EABI_FNALIAS(fdiv, divsf3)
-fp_t __divsf3(fp_t a, fp_t b) {
+COMPILER_RT_ABI fp_t
+__divsf3(fp_t a, fp_t b) {
const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;
const unsigned int bExponent = toRep(b) >> significandBits & maxExponent;
diff --git a/lib/builtins/divsi3.c b/lib/builtins/divsi3.c
index cd19de952..bab4aefda 100644
--- a/lib/builtins/divsi3.c
+++ b/lib/builtins/divsi3.c
@@ -14,8 +14,6 @@
#include "int_lib.h"
-su_int COMPILER_RT_ABI __udivsi3(su_int n, su_int d);
-
/* Returns: a / b */
ARM_EABI_FNALIAS(idiv, divsi3)
diff --git a/lib/builtins/divti3.c b/lib/builtins/divti3.c
index ad365ab40..c73eae28f 100644
--- a/lib/builtins/divti3.c
+++ b/lib/builtins/divti3.c
@@ -16,11 +16,9 @@
#ifdef CRT_HAS_128BIT
-tu_int __udivmodti4(tu_int a, tu_int b, tu_int* rem);
-
/* Returns: a / b */
-ti_int
+COMPILER_RT_ABI ti_int
__divti3(ti_int a, ti_int b)
{
const int bits_in_tword_m1 = (int)(sizeof(ti_int) * CHAR_BIT) - 1;
diff --git a/lib/builtins/divxc3.c b/lib/builtins/divxc3.c
index 5f240e956..175ae3cf4 100644
--- a/lib/builtins/divxc3.c
+++ b/lib/builtins/divxc3.c
@@ -18,7 +18,7 @@
/* Returns: the quotient of (a + ib) / (c + id) */
-long double _Complex
+COMPILER_RT_ABI long double _Complex
__divxc3(long double __a, long double __b, long double __c, long double __d)
{
int __ilogbw = 0;
diff --git a/lib/builtins/enable_execute_stack.c b/lib/builtins/enable_execute_stack.c
index 278ca246f..63d836b31 100644
--- a/lib/builtins/enable_execute_stack.c
+++ b/lib/builtins/enable_execute_stack.c
@@ -36,7 +36,8 @@
* that means changing the protection on those page(s) to rwx.
*/
-void __enable_execute_stack(void* addr)
+COMPILER_RT_ABI void
+__enable_execute_stack(void* addr)
{
#if __APPLE__
@@ -55,5 +56,3 @@ void __enable_execute_stack(void* addr)
size_t length = endPage - startPage;
(void) mprotect((void *)startPage, length, PROT_READ | PROT_WRITE | PROT_EXEC);
}
-
-
diff --git a/lib/builtins/eprintf.c b/lib/builtins/eprintf.c
index 3626dbf8b..89f34b154 100644
--- a/lib/builtins/eprintf.c
+++ b/lib/builtins/eprintf.c
@@ -25,8 +25,9 @@
#ifndef _WIN32
__attribute__((visibility("hidden")))
#endif
-void __eprintf(const char* format, const char* assertion_expression,
- const char* line, const char* file)
+COMPILER_RT_ABI void
+__eprintf(const char* format, const char* assertion_expression,
+ const char* line, const char* file)
{
fprintf(stderr, format, assertion_expression, line, file);
fflush(stderr);
diff --git a/lib/builtins/extendsfdf2.c b/lib/builtins/extendsfdf2.c
index 91fd2b436..9e4c77b49 100644
--- a/lib/builtins/extendsfdf2.c
+++ b/lib/builtins/extendsfdf2.c
@@ -68,7 +68,8 @@ static inline dst_t dstFromRep(dst_rep_t x) {
ARM_EABI_FNALIAS(f2d, extendsfdf2)
-dst_t __extendsfdf2(src_t a) {
+COMPILER_RT_ABI dst_t
+__extendsfdf2(src_t a) {
// Various constants whose values follow from the type parameters.
// Any reasonable optimizer will fold and propagate all of these.
diff --git a/lib/builtins/ffsti2.c b/lib/builtins/ffsti2.c
index e64266d35..dcdb3bd7f 100644
--- a/lib/builtins/ffsti2.c
+++ b/lib/builtins/ffsti2.c
@@ -20,7 +20,7 @@
* the value zero if a is zero. The least significant bit is index one.
*/
-si_int
+COMPILER_RT_ABI si_int
__ffsti2(ti_int a)
{
twords x;
diff --git a/lib/builtins/fixdfdi.c b/lib/builtins/fixdfdi.c
index 7665ea5a3..86f9f6ce8 100644
--- a/lib/builtins/fixdfdi.c
+++ b/lib/builtins/fixdfdi.c
@@ -25,7 +25,7 @@
ARM_EABI_FNALIAS(d2lz, fixdfdi)
-di_int
+COMPILER_RT_ABI di_int
__fixdfdi(double a)
{
double_bits fb;
diff --git a/lib/builtins/fixdfsi.c b/lib/builtins/fixdfsi.c
index 614d032a4..88b2ff5e7 100644
--- a/lib/builtins/fixdfsi.c
+++ b/lib/builtins/fixdfsi.c
@@ -20,7 +20,8 @@
ARM_EABI_FNALIAS(d2iz, fixdfsi)
-int __fixdfsi(fp_t a) {
+COMPILER_RT_ABI int
+__fixdfsi(fp_t a) {
// Break a into sign, exponent, significand
const rep_t aRep = toRep(a);
diff --git a/lib/builtins/fixdfti.c b/lib/builtins/fixdfti.c
index 3b9ddb2cb..2c27f4bae 100644
--- a/lib/builtins/fixdfti.c
+++ b/lib/builtins/fixdfti.c
@@ -25,7 +25,7 @@
/* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
-ti_int
+COMPILER_RT_ABI ti_int
__fixdfti(double a)
{
double_bits fb;
diff --git a/lib/builtins/fixsfti.c b/lib/builtins/fixsfti.c
index 31c2702e3..6a1a1c6d5 100644
--- a/lib/builtins/fixsfti.c
+++ b/lib/builtins/fixsfti.c
@@ -25,7 +25,7 @@
/* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
-ti_int
+COMPILER_RT_ABI ti_int
__fixsfti(float a)
{
float_bits fb;
diff --git a/lib/builtins/fixunsdfti.c b/lib/builtins/fixunsdfti.c
index 76c859268..cc6c84ff5 100644
--- a/lib/builtins/fixunsdfti.c
+++ b/lib/builtins/fixunsdfti.c
@@ -28,7 +28,7 @@
/* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
-tu_int
+COMPILER_RT_ABI tu_int
__fixunsdfti(double a)
{
double_bits fb;
diff --git a/lib/builtins/fixunssfti.c b/lib/builtins/fixunssfti.c
index 2bb18afeb..4da9e242a 100644
--- a/lib/builtins/fixunssfti.c
+++ b/lib/builtins/fixunssfti.c
@@ -28,7 +28,7 @@
/* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
-tu_int
+COMPILER_RT_ABI tu_int
__fixunssfti(float a)
{
float_bits fb;
diff --git a/lib/builtins/fixunsxfdi.c b/lib/builtins/fixunsxfdi.c
index 6c817d8e1..7224d467e 100644
--- a/lib/builtins/fixunsxfdi.c
+++ b/lib/builtins/fixunsxfdi.c
@@ -30,7 +30,7 @@
* 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
*/
-du_int
+COMPILER_RT_ABI du_int
__fixunsxfdi(long double a)
{
long_double_bits fb;
diff --git a/lib/builtins/fixunsxfsi.c b/lib/builtins/fixunsxfsi.c
index b9da86c4f..df0a18e2c 100644
--- a/lib/builtins/fixunsxfsi.c
+++ b/lib/builtins/fixunsxfsi.c
@@ -30,7 +30,7 @@
* 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
*/
-su_int
+COMPILER_RT_ABI su_int
__fixunsxfsi(long double a)
{
long_double_bits fb;
diff --git a/lib/builtins/fixunsxfti.c b/lib/builtins/fixunsxfti.c
index db3c0706f..42e507304 100644
--- a/lib/builtins/fixunsxfti.c
+++ b/lib/builtins/fixunsxfti.c
@@ -30,7 +30,7 @@
* 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
*/
-tu_int
+COMPILER_RT_ABI tu_int
__fixunsxfti(long double a)
{
long_double_bits fb;
diff --git a/lib/builtins/fixxfdi.c b/lib/builtins/fixxfdi.c
index 9592ce430..afc79d866 100644
--- a/lib/builtins/fixxfdi.c
+++ b/lib/builtins/fixxfdi.c
@@ -27,7 +27,7 @@
* 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
*/
-di_int
+COMPILER_RT_ABI di_int
__fixxfdi(long double a)
{
long_double_bits fb;
diff --git a/lib/builtins/fixxfti.c b/lib/builtins/fixxfti.c
index ca3082e87..3d0a279b3 100644
--- a/lib/builtins/fixxfti.c
+++ b/lib/builtins/fixxfti.c
@@ -27,7 +27,7 @@
* 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
*/
-ti_int
+COMPILER_RT_ABI ti_int
__fixxfti(long double a)
{
long_double_bits fb;
diff --git a/lib/builtins/floatdixf.c b/lib/builtins/floatdixf.c
index ebf62dba0..d39e81d7c 100644
--- a/lib/builtins/floatdixf.c
+++ b/lib/builtins/floatdixf.c
@@ -26,7 +26,7 @@
* 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
*/
-long double
+COMPILER_RT_ABI long double
__floatdixf(di_int a)
{
if (a == 0)
diff --git a/lib/builtins/floatsidf.c b/lib/builtins/floatsidf.c
index 18f378f2a..1cf99b782 100644
--- a/lib/builtins/floatsidf.c
+++ b/lib/builtins/floatsidf.c
@@ -20,7 +20,8 @@
ARM_EABI_FNALIAS(i2d, floatsidf)
-fp_t __floatsidf(int a) {
+COMPILER_RT_ABI fp_t
+__floatsidf(int a) {
const int aWidth = sizeof a * CHAR_BIT;
diff --git a/lib/builtins/floatsisf.c b/lib/builtins/floatsisf.c
index 83983934f..467dd1d1e 100644
--- a/lib/builtins/floatsisf.c
+++ b/lib/builtins/floatsisf.c
@@ -20,7 +20,8 @@
ARM_EABI_FNALIAS(i2f, floatsisf)
-fp_t __floatsisf(int a) {
+COMPILER_RT_ABI fp_t
+__floatsisf(int a) {
const int aWidth = sizeof a * CHAR_BIT;
diff --git a/lib/builtins/floattidf.c b/lib/builtins/floattidf.c
index 042c2031a..6331ba573 100644
--- a/lib/builtins/floattidf.c
+++ b/lib/builtins/floattidf.c
@@ -24,9 +24,7 @@
/* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
-si_int __clzti2(ti_int a);
-
-double
+COMPILER_RT_ABI double
__floattidf(ti_int a)
{
if (a == 0)
diff --git a/lib/builtins/floattisf.c b/lib/builtins/floattisf.c
index cb4e29aab..f1b585f2c 100644
--- a/lib/builtins/floattisf.c
+++ b/lib/builtins/floattisf.c
@@ -24,9 +24,7 @@
/* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
-si_int __clzti2(ti_int a);
-
-float
+COMPILER_RT_ABI float
__floattisf(ti_int a)
{
if (a == 0)
diff --git a/lib/builtins/floattixf.c b/lib/builtins/floattixf.c
index 866051e2a..1203b3a96 100644
--- a/lib/builtins/floattixf.c
+++ b/lib/builtins/floattixf.c
@@ -26,9 +26,7 @@
* 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
*/
-si_int __clzti2(ti_int a);
-
-long double
+COMPILER_RT_ABI long double
__floattixf(ti_int a)
{
if (a == 0)
diff --git a/lib/builtins/floatundidf.c b/lib/builtins/floatundidf.c
index e52fa0a33..73b8bac1c 100644
--- a/lib/builtins/floatundidf.c
+++ b/lib/builtins/floatundidf.c
@@ -29,7 +29,6 @@ ARM_EABI_FNALIAS(ul2d, floatundidf)
* as a side-effect of this computation.
*/
-
COMPILER_RT_ABI double
__floatundidf(du_int a)
{
diff --git a/lib/builtins/floatundixf.c b/lib/builtins/floatundixf.c
index 64f7662d9..ca5e06d64 100644
--- a/lib/builtins/floatundixf.c
+++ b/lib/builtins/floatundixf.c
@@ -25,7 +25,7 @@
/* gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
* 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
*/
-long double
+COMPILER_RT_ABI long double
__floatundixf(du_int a)
{
if (a == 0)
diff --git a/lib/builtins/floatunsidf.c b/lib/builtins/floatunsidf.c
index ba6c2cfd2..445e18041 100644
--- a/lib/builtins/floatunsidf.c
+++ b/lib/builtins/floatunsidf.c
@@ -20,7 +20,8 @@
ARM_EABI_FNALIAS(ui2d, floatunsidf)
-fp_t __floatunsidf(unsigned int a) {
+COMPILER_RT_ABI fp_t
+__floatunsidf(unsigned int a) {
const int aWidth = sizeof a * CHAR_BIT;
diff --git a/lib/builtins/floatunsisf.c b/lib/builtins/floatunsisf.c
index e392c0ecf..ea6f161ad 100644
--- a/lib/builtins/floatunsisf.c
+++ b/lib/builtins/floatunsisf.c
@@ -20,7 +20,8 @@
ARM_EABI_FNALIAS(ui2f, floatunsisf)
-fp_t __floatunsisf(unsigned int a) {
+COMPILER_RT_ABI fp_t
+__floatunsisf(unsigned int a) {
const int aWidth = sizeof a * CHAR_BIT;
diff --git a/lib/builtins/floatuntidf.c b/lib/builtins/floatuntidf.c
index e7d6416c1..06202d967 100644
--- a/lib/builtins/floatuntidf.c
+++ b/lib/builtins/floatuntidf.c
@@ -24,9 +24,7 @@
/* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
-si_int __clzti2(ti_int a);
-
-double
+COMPILER_RT_ABI double
__floatuntidf(tu_int a)
{
if (a == 0)
diff --git a/lib/builtins/floatuntisf.c b/lib/builtins/floatuntisf.c
index e65db57f1..c0dd0275d 100644
--- a/lib/builtins/floatuntisf.c
+++ b/lib/builtins/floatuntisf.c
@@ -24,9 +24,7 @@
/* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
-si_int __clzti2(ti_int a);
-
-float
+COMPILER_RT_ABI float
__floatuntisf(tu_int a)
{
if (a == 0)
diff --git a/lib/builtins/floatuntixf.c b/lib/builtins/floatuntixf.c
index d607cc305..ea81cb1bc 100644
--- a/lib/builtins/floatuntixf.c
+++ b/lib/builtins/floatuntixf.c
@@ -26,9 +26,7 @@
* 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
*/
-si_int __clzti2(ti_int a);
-
-long double
+COMPILER_RT_ABI long double
__floatuntixf(tu_int a)
{
if (a == 0)
diff --git a/lib/builtins/fp_lib.h b/lib/builtins/fp_lib.h
index 31714b194..1d93dc379 100644
--- a/lib/builtins/fp_lib.h
+++ b/lib/builtins/fp_lib.h
@@ -143,4 +143,7 @@ static inline void wideRightShiftWithSticky(rep_t *hi, rep_t *lo, unsigned int c
}
}
+COMPILER_RT_ABI fp_t __adddf3(fp_t a, fp_t b);
+COMPILER_RT_ABI fp_t __addsf3(fp_t a, fp_t b);
+
#endif // FP_LIB_HEADER
diff --git a/lib/builtins/gcc_personality_v0.c b/lib/builtins/gcc_personality_v0.c
index 8a708cae5..963d73868 100644
--- a/lib/builtins/gcc_personality_v0.c
+++ b/lib/builtins/gcc_personality_v0.c
@@ -46,11 +46,11 @@ struct _Unwind_Exception {
uintptr_t private_2;
};
-extern const uint8_t* _Unwind_GetLanguageSpecificData(_Unwind_Context_t c);
-extern void _Unwind_SetGR(_Unwind_Context_t c, int i, uintptr_t n);
-extern void _Unwind_SetIP(_Unwind_Context_t, uintptr_t new_value);
-extern uintptr_t _Unwind_GetIP(_Unwind_Context_t context);
-extern uintptr_t _Unwind_GetRegionStart(_Unwind_Context_t context);
+COMPILER_RT_ABI const uint8_t* _Unwind_GetLanguageSpecificData(_Unwind_Context_t c);
+COMPILER_RT_ABI void _Unwind_SetGR(_Unwind_Context_t c, int i, uintptr_t n);
+COMPILER_RT_ABI void _Unwind_SetIP(_Unwind_Context_t, uintptr_t new_value);
+COMPILER_RT_ABI uintptr_t _Unwind_GetIP(_Unwind_Context_t context);
+COMPILER_RT_ABI uintptr_t _Unwind_GetRegionStart(_Unwind_Context_t context);
/*
@@ -182,11 +182,13 @@ static uintptr_t readEncodedPointer(const uint8_t** data, uint8_t encoding)
*/
#if __arm__
// the setjump-longjump based exceptions personality routine has a different name
-_Unwind_Reason_Code __gcc_personality_sj0(int version, _Unwind_Action actions,
+COMPILER_RT_ABI _Unwind_Reason_Code
+__gcc_personality_sj0(int version, _Unwind_Action actions,
uint64_t exceptionClass, struct _Unwind_Exception* exceptionObject,
_Unwind_Context_t context)
#else
-_Unwind_Reason_Code __gcc_personality_v0(int version, _Unwind_Action actions,
+COMPILER_RT_ABI _Unwind_Reason_Code
+__gcc_personality_v0(int version, _Unwind_Action actions,
uint64_t exceptionClass, struct _Unwind_Exception* exceptionObject,
_Unwind_Context_t context)
#endif
diff --git a/lib/builtins/int_lib.h b/lib/builtins/int_lib.h
index daeaa9e57..1af966789 100644
--- a/lib/builtins/int_lib.h
+++ b/lib/builtins/int_lib.h
@@ -53,4 +53,19 @@
/* Include internal utility function declarations. */
#include "int_util.h"
+COMPILER_RT_ABI si_int __clzti2(ti_int a);
+
+COMPILER_RT_ABI si_int __paritysi2(si_int a);
+COMPILER_RT_ABI si_int __paritydi2(di_int a);
+
+COMPILER_RT_ABI di_int __divdi3(di_int a, di_int b);
+COMPILER_RT_ABI si_int __divsi3(si_int a, si_int b);
+COMPILER_RT_ABI su_int __udivsi3(su_int n, su_int d);
+
+COMPILER_RT_ABI su_int __udivmodsi4(su_int a, su_int b, su_int* rem);
+COMPILER_RT_ABI du_int __udivmoddi4(du_int a, du_int b, du_int* rem);
+#ifdef CRT_HAS_128BIT
+COMPILER_RT_ABI tu_int __udivmodti4(tu_int a, tu_int b, tu_int* rem);
+#endif
+
#endif /* INT_LIB_H */
diff --git a/lib/builtins/lshrti3.c b/lib/builtins/lshrti3.c
index 6fc4e1f42..e4170ff84 100644
--- a/lib/builtins/lshrti3.c
+++ b/lib/builtins/lshrti3.c
@@ -20,7 +20,7 @@
/* Precondition: 0 <= b < bits_in_tword */
-ti_int
+COMPILER_RT_ABI ti_int
__lshrti3(ti_int a, si_int b)
{
const int bits_in_dword = (int)(sizeof(di_int) * CHAR_BIT);
diff --git a/lib/builtins/moddi3.c b/lib/builtins/moddi3.c
index 2f3b9cc4f..f2b7cd496 100644
--- a/lib/builtins/moddi3.c
+++ b/lib/builtins/moddi3.c
@@ -14,8 +14,6 @@
#include "int_lib.h"
-COMPILER_RT_ABI du_int __udivmoddi4(du_int a, du_int b, du_int* rem);
-
/* Returns: a % b */
COMPILER_RT_ABI di_int
diff --git a/lib/builtins/modsi3.c b/lib/builtins/modsi3.c
index d16213c49..86c73ce13 100644
--- a/lib/builtins/modsi3.c
+++ b/lib/builtins/modsi3.c
@@ -14,8 +14,6 @@
#include "int_lib.h"
-su_int COMPILER_RT_ABI __divsi3(si_int a, si_int b);
-
/* Returns: a % b */
COMPILER_RT_ABI si_int
diff --git a/lib/builtins/modti3.c b/lib/builtins/modti3.c
index ded24a017..da1b3b45a 100644
--- a/lib/builtins/modti3.c
+++ b/lib/builtins/modti3.c
@@ -16,11 +16,9 @@
#ifdef CRT_HAS_128BIT
-tu_int __udivmodti4(tu_int a, tu_int b, tu_int* rem);
-
/*Returns: a % b */
-ti_int
+COMPILER_RT_ABI ti_int
__modti3(ti_int a, ti_int b)
{
const int bits_in_tword_m1 = (int)(sizeof(ti_int) * CHAR_BIT) - 1;
diff --git a/lib/builtins/muldc3.c b/lib/builtins/muldc3.c
index 5f4a6d16e..3bfae2c52 100644
--- a/lib/builtins/muldc3.c
+++ b/lib/builtins/muldc3.c
@@ -17,7 +17,7 @@
/* Returns: the product of a + ib and c + id */
-double _Complex
+COMPILER_RT_ABI double _Complex
__muldc3(double __a, double __b, double __c, double __d)
{
double __ac = __a * __c;
diff --git a/lib/builtins/mulodi4.c b/lib/builtins/mulodi4.c
index 0c1b5cdae..d2fd7db2b 100644
--- a/lib/builtins/mulodi4.c
+++ b/lib/builtins/mulodi4.c
@@ -18,7 +18,7 @@
/* Effects: sets *overflow to 1 if a * b overflows */
-di_int
+COMPILER_RT_ABI di_int
__mulodi4(di_int a, di_int b, int* overflow)
{
const int N = (int)(sizeof(di_int) * CHAR_BIT);
diff --git a/lib/builtins/mulosi4.c b/lib/builtins/mulosi4.c
index f3398d1fc..422528085 100644
--- a/lib/builtins/mulosi4.c
+++ b/lib/builtins/mulosi4.c
@@ -18,7 +18,7 @@
/* Effects: sets *overflow to 1 if a * b overflows */
-si_int
+COMPILER_RT_ABI si_int
__mulosi4(si_int a, si_int b, int* overflow)
{
const int N = (int)(sizeof(si_int) * CHAR_BIT);
diff --git a/lib/builtins/muloti4.c b/lib/builtins/muloti4.c
index 0aa6f3b4c..16b218920 100644
--- a/lib/builtins/muloti4.c
+++ b/lib/builtins/muloti4.c
@@ -20,7 +20,7 @@
/* Effects: sets *overflow to 1 if a * b overflows */
-ti_int
+COMPILER_RT_ABI ti_int
__muloti4(ti_int a, ti_int b, int* overflow)
{
const int N = (int)(sizeof(ti_int) * CHAR_BIT);
diff --git a/lib/builtins/mulsc3.c b/lib/builtins/mulsc3.c
index 6d433fbc4..29d46c63a 100644
--- a/lib/builtins/mulsc3.c
+++ b/lib/builtins/mulsc3.c
@@ -17,7 +17,7 @@
/* Returns: the product of a + ib and c + id */
-float _Complex
+COMPILER_RT_ABI float _Complex
__mulsc3(float __a, float __b, float __c, float __d)
{
float __ac = __a * __c;
diff --git a/lib/builtins/multi3.c b/lib/builtins/multi3.c
index 85a6cf45f..e0d52d430 100644
--- a/lib/builtins/multi3.c
+++ b/lib/builtins/multi3.c
@@ -42,7 +42,7 @@ __mulddi3(du_int a, du_int b)
/* Returns: a * b */
-ti_int
+COMPILER_RT_ABI ti_int
__multi3(ti_int a, ti_int b)
{
twords x;
diff --git a/lib/builtins/mulvdi3.c b/lib/builtins/mulvdi3.c
index bcc8e659b..e63249e0a 100644
--- a/lib/builtins/mulvdi3.c
+++ b/lib/builtins/mulvdi3.c
@@ -18,7 +18,7 @@
/* Effects: aborts if a * b overflows */
-di_int
+COMPILER_RT_ABI di_int
__mulvdi3(di_int a, di_int b)
{
const int N = (int)(sizeof(di_int) * CHAR_BIT);
diff --git a/lib/builtins/mulvsi3.c b/lib/builtins/mulvsi3.c
index d372b2017..74ea4f2da 100644
--- a/lib/builtins/mulvsi3.c
+++ b/lib/builtins/mulvsi3.c
@@ -18,7 +18,7 @@
/* Effects: aborts if a * b overflows */
-si_int
+COMPILER_RT_ABI si_int
__mulvsi3(si_int a, si_int b)
{
const int N = (int)(sizeof(si_int) * CHAR_BIT);
diff --git a/lib/builtins/mulvti3.c b/lib/builtins/mulvti3.c
index 11d239ac9..f4c7d1612 100644
--- a/lib/builtins/mulvti3.c
+++ b/lib/builtins/mulvti3.c
@@ -20,7 +20,7 @@
/* Effects: aborts if a * b overflows */
-ti_int
+COMPILER_RT_ABI ti_int
__mulvti3(ti_int a, ti_int b)
{
const int N = (int)(sizeof(ti_int) * CHAR_BIT);
diff --git a/lib/builtins/mulxc3.c b/lib/builtins/mulxc3.c
index cec057368..161fd0ce0 100644
--- a/lib/builtins/mulxc3.c
+++ b/lib/builtins/mulxc3.c
@@ -19,7 +19,7 @@
/* Returns: the product of a + ib and c + id */
-long double _Complex
+COMPILER_RT_ABI long double _Complex
__mulxc3(long double __a, long double __b, long double __c, long double __d)
{
long double __ac = __a * __c;
diff --git a/lib/builtins/negdf2.c b/lib/builtins/negdf2.c
index 4e17513a9..d634b421c 100644
--- a/lib/builtins/negdf2.c
+++ b/lib/builtins/negdf2.c
@@ -16,6 +16,7 @@
ARM_EABI_FNALIAS(dneg, negdf2)
-fp_t __negdf2(fp_t a) {
+COMPILER_RT_ABI fp_t
+__negdf2(fp_t a) {
return fromRep(toRep(a) ^ signBit);
}
diff --git a/lib/builtins/negdi2.c b/lib/builtins/negdi2.c
index b000dda3b..3d49ba289 100644
--- a/lib/builtins/negdi2.c
+++ b/lib/builtins/negdi2.c
@@ -16,7 +16,7 @@
/* Returns: -a */
-di_int
+COMPILER_RT_ABI di_int
__negdi2(di_int a)
{
/* Note: this routine is here for API compatibility; any sane compiler
diff --git a/lib/builtins/negti2.c b/lib/builtins/negti2.c
index 28ef941e3..9b00b303f 100644
--- a/lib/builtins/negti2.c
+++ b/lib/builtins/negti2.c
@@ -18,7 +18,7 @@
/* Returns: -a */
-ti_int
+COMPILER_RT_ABI ti_int
__negti2(ti_int a)
{
/* Note: this routine is here for API compatibility; any sane compiler
diff --git a/lib/builtins/negvti2.c b/lib/builtins/negvti2.c
index d15167f53..85f9f7d19 100644
--- a/lib/builtins/negvti2.c
+++ b/lib/builtins/negvti2.c
@@ -20,7 +20,7 @@
/* Effects: aborts if -a overflows */
-ti_int
+COMPILER_RT_ABI ti_int
__negvti2(ti_int a)
{
const ti_int MIN = (ti_int)1 << ((int)(sizeof(ti_int) * CHAR_BIT)-1);
diff --git a/lib/builtins/paritydi2.c b/lib/builtins/paritydi2.c
index 2ded54c90..8ea5ab421 100644
--- a/lib/builtins/paritydi2.c
+++ b/lib/builtins/paritydi2.c
@@ -16,8 +16,6 @@
/* Returns: 1 if number of bits is odd else returns 0 */
-si_int COMPILER_RT_ABI __paritysi2(si_int a);
-
COMPILER_RT_ABI si_int
__paritydi2(di_int a)
{
diff --git a/lib/builtins/parityti2.c b/lib/builtins/parityti2.c
index fa2838087..5a4fe4924 100644
--- a/lib/builtins/parityti2.c
+++ b/lib/builtins/parityti2.c
@@ -18,9 +18,7 @@
/* Returns: 1 if number of bits is odd else returns 0 */
-si_int __paritydi2(di_int a);
-
-si_int
+COMPILER_RT_ABI si_int
__parityti2(ti_int a)
{
twords x;
diff --git a/lib/builtins/popcountti2.c b/lib/builtins/popcountti2.c
index d7223d926..7451bbb28 100644
--- a/lib/builtins/popcountti2.c
+++ b/lib/builtins/popcountti2.c
@@ -18,7 +18,7 @@
/* Returns: count of 1 bits */
-si_int
+COMPILER_RT_ABI si_int
__popcountti2(ti_int a)
{
tu_int x3 = (tu_int)a;
diff --git a/lib/builtins/powitf2.c b/lib/builtins/powitf2.c
index d3b934924..172f29f58 100644
--- a/lib/builtins/powitf2.c
+++ b/lib/builtins/powitf2.c
@@ -18,7 +18,7 @@
/* Returns: a ^ b */
-long double
+COMPILER_RT_ABI long double
__powitf2(long double a, si_int b)
{
const int recip = b < 0;
diff --git a/lib/builtins/powixf2.c b/lib/builtins/powixf2.c
index f050964d3..0fd96e503 100644
--- a/lib/builtins/powixf2.c
+++ b/lib/builtins/powixf2.c
@@ -18,7 +18,7 @@
/* Returns: a ^ b */
-long double
+COMPILER_RT_ABI long double
__powixf2(long double a, si_int b)
{
const int recip = b < 0;
diff --git a/lib/builtins/subdf3.c b/lib/builtins/subdf3.c
index 66fb1a54f..089e06241 100644
--- a/lib/builtins/subdf3.c
+++ b/lib/builtins/subdf3.c
@@ -15,9 +15,6 @@
#define DOUBLE_PRECISION
#include "fp_lib.h"
-fp_t COMPILER_RT_ABI __adddf3(fp_t a, fp_t b);
-
-
ARM_EABI_FNALIAS(dsub, subdf3)
// Subtraction; flip the sign bit of b and add.
diff --git a/lib/builtins/subsf3.c b/lib/builtins/subsf3.c
index 3659cd8b8..47f5e5e46 100644
--- a/lib/builtins/subsf3.c
+++ b/lib/builtins/subsf3.c
@@ -15,8 +15,6 @@
#define SINGLE_PRECISION
#include "fp_lib.h"
-fp_t COMPILER_RT_ABI __addsf3(fp_t a, fp_t b);
-
ARM_EABI_FNALIAS(fsub, subsf3)
// Subtraction; flip the sign bit of b and add.
diff --git a/lib/builtins/subvti3.c b/lib/builtins/subvti3.c
index 20a0814fc..8f1171430 100644
--- a/lib/builtins/subvti3.c
+++ b/lib/builtins/subvti3.c
@@ -20,7 +20,7 @@
/* Effects: aborts if a - b overflows */
-ti_int
+COMPILER_RT_ABI ti_int
__subvti3(ti_int a, ti_int b)
{
ti_int s = a - b;
diff --git a/lib/builtins/trampoline_setup.c b/lib/builtins/trampoline_setup.c
index e0765b16b..25b627ab7 100644
--- a/lib/builtins/trampoline_setup.c
+++ b/lib/builtins/trampoline_setup.c
@@ -21,8 +21,9 @@ extern void __clear_cache(void* start, void* end);
*/
#if __ppc__ && !defined(__powerpc64__)
-void __trampoline_setup(uint32_t* trampOnStack, int trampSizeAllocated,
- const void* realFunc, void* localsPtr)
+COMPILER_RT_ABI void
+__trampoline_setup(uint32_t* trampOnStack, int trampSizeAllocated,
+ const void* realFunc, void* localsPtr)
{
/* should never happen, but if compiler did not allocate */
/* enough space on stack for the trampoline, abort */
diff --git a/lib/builtins/ucmpti2.c b/lib/builtins/ucmpti2.c
index 95d1ff836..bda8083bb 100644
--- a/lib/builtins/ucmpti2.c
+++ b/lib/builtins/ucmpti2.c
@@ -21,7 +21,7 @@
* if (a > b) returns 2
*/
-si_int
+COMPILER_RT_ABI si_int
__ucmpti2(tu_int a, tu_int b)
{
utwords x;
diff --git a/lib/builtins/udivdi3.c b/lib/builtins/udivdi3.c
index 6c0303df3..dc68e154b 100644
--- a/lib/builtins/udivdi3.c
+++ b/lib/builtins/udivdi3.c
@@ -14,8 +14,6 @@
#include "int_lib.h"
-du_int COMPILER_RT_ABI __udivmoddi4(du_int a, du_int b, du_int* rem);
-
/* Returns: a / b */
COMPILER_RT_ABI du_int
diff --git a/lib/builtins/udivmodsi4.c b/lib/builtins/udivmodsi4.c
index 5b49089fc..789c4b506 100644
--- a/lib/builtins/udivmodsi4.c
+++ b/lib/builtins/udivmodsi4.c
@@ -14,9 +14,6 @@
#include "int_lib.h"
-extern su_int COMPILER_RT_ABI __udivsi3(su_int n, su_int d);
-
-
/* Returns: a / b, *rem = a % b */
COMPILER_RT_ABI su_int
diff --git a/lib/builtins/udivmodti4.c b/lib/builtins/udivmodti4.c
index d8cea2ab7..8e0bf1afe 100644
--- a/lib/builtins/udivmodti4.c
+++ b/lib/builtins/udivmodti4.c
@@ -22,7 +22,7 @@
/* Translated from Figure 3-40 of The PowerPC Compiler Writer's Guide */
-tu_int
+COMPILER_RT_ABI tu_int
__udivmodti4(tu_int a, tu_int b, tu_int* rem)
{
const unsigned n_udword_bits = sizeof(du_int) * CHAR_BIT;
diff --git a/lib/builtins/udivti3.c b/lib/builtins/udivti3.c
index 4a942b8ad..ec94673e2 100644
--- a/lib/builtins/udivti3.c
+++ b/lib/builtins/udivti3.c
@@ -16,11 +16,9 @@
#ifdef CRT_HAS_128BIT
-tu_int __udivmodti4(tu_int a, tu_int b, tu_int* rem);
-
/* Returns: a / b */
-tu_int
+COMPILER_RT_ABI tu_int
__udivti3(tu_int a, tu_int b)
{
return __udivmodti4(a, b, 0);
diff --git a/lib/builtins/umoddi3.c b/lib/builtins/umoddi3.c
index 3541ab6e9..d513f080a 100644
--- a/lib/builtins/umoddi3.c
+++ b/lib/builtins/umoddi3.c
@@ -14,8 +14,6 @@
#include "int_lib.h"
-du_int COMPILER_RT_ABI __udivmoddi4(du_int a, du_int b, du_int* rem);
-
/* Returns: a % b */
COMPILER_RT_ABI du_int
diff --git a/lib/builtins/umodsi3.c b/lib/builtins/umodsi3.c
index aae741d89..d5fda4a6a 100644
--- a/lib/builtins/umodsi3.c
+++ b/lib/builtins/umodsi3.c
@@ -16,8 +16,6 @@
/* Returns: a % b */
-su_int COMPILER_RT_ABI __udivsi3(su_int a, su_int b);
-
COMPILER_RT_ABI su_int
__umodsi3(su_int a, su_int b)
{
diff --git a/lib/builtins/umodti3.c b/lib/builtins/umodti3.c
index 2ab4dd250..6d1ca7a8c 100644
--- a/lib/builtins/umodti3.c
+++ b/lib/builtins/umodti3.c
@@ -16,11 +16,9 @@
#ifdef CRT_HAS_128BIT
-tu_int __udivmodti4(tu_int a, tu_int b, tu_int* rem);
-
/* Returns: a % b */
-tu_int
+COMPILER_RT_ABI tu_int
__umodti3(tu_int a, tu_int b)
{
tu_int r;