From bfbb8bbc8e4a4fce3538aa85b095543fee291df7 Mon Sep 17 00:00:00 2001 From: Joerg Sonnenberger Date: Sat, 1 Mar 2014 15:30:50 +0000 Subject: 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 --- lib/builtins/absvti2.c | 2 +- lib/builtins/addsf3.c | 3 ++- lib/builtins/addvti3.c | 2 +- lib/builtins/ashlti3.c | 2 +- lib/builtins/ashrti3.c | 2 +- lib/builtins/clear_cache.c | 3 ++- lib/builtins/clzti2.c | 2 +- lib/builtins/cmpti2.c | 2 +- lib/builtins/comparedf2.c | 21 ++++++++++++++------- lib/builtins/comparesf2.c | 21 ++++++++++++++------- lib/builtins/ctzti2.c | 2 +- lib/builtins/divdc3.c | 2 +- lib/builtins/divdf3.c | 3 ++- lib/builtins/divdi3.c | 2 -- lib/builtins/divmoddi4.c | 2 -- lib/builtins/divmodsi4.c | 3 --- lib/builtins/divsc3.c | 2 +- lib/builtins/divsf3.c | 3 ++- lib/builtins/divsi3.c | 2 -- lib/builtins/divti3.c | 4 +--- lib/builtins/divxc3.c | 2 +- lib/builtins/enable_execute_stack.c | 5 ++--- lib/builtins/eprintf.c | 5 +++-- lib/builtins/extendsfdf2.c | 3 ++- lib/builtins/ffsti2.c | 2 +- lib/builtins/fixdfdi.c | 2 +- lib/builtins/fixdfsi.c | 3 ++- lib/builtins/fixdfti.c | 2 +- lib/builtins/fixsfti.c | 2 +- lib/builtins/fixunsdfti.c | 2 +- lib/builtins/fixunssfti.c | 2 +- lib/builtins/fixunsxfdi.c | 2 +- lib/builtins/fixunsxfsi.c | 2 +- lib/builtins/fixunsxfti.c | 2 +- lib/builtins/fixxfdi.c | 2 +- lib/builtins/fixxfti.c | 2 +- lib/builtins/floatdixf.c | 2 +- lib/builtins/floatsidf.c | 3 ++- lib/builtins/floatsisf.c | 3 ++- lib/builtins/floattidf.c | 4 +--- lib/builtins/floattisf.c | 4 +--- lib/builtins/floattixf.c | 4 +--- lib/builtins/floatundidf.c | 1 - lib/builtins/floatundixf.c | 2 +- lib/builtins/floatunsidf.c | 3 ++- lib/builtins/floatunsisf.c | 3 ++- lib/builtins/floatuntidf.c | 4 +--- lib/builtins/floatuntisf.c | 4 +--- lib/builtins/floatuntixf.c | 4 +--- lib/builtins/fp_lib.h | 3 +++ lib/builtins/gcc_personality_v0.c | 16 +++++++++------- lib/builtins/int_lib.h | 15 +++++++++++++++ lib/builtins/lshrti3.c | 2 +- lib/builtins/moddi3.c | 2 -- lib/builtins/modsi3.c | 2 -- lib/builtins/modti3.c | 4 +--- lib/builtins/muldc3.c | 2 +- lib/builtins/mulodi4.c | 2 +- lib/builtins/mulosi4.c | 2 +- lib/builtins/muloti4.c | 2 +- lib/builtins/mulsc3.c | 2 +- lib/builtins/multi3.c | 2 +- lib/builtins/mulvdi3.c | 2 +- lib/builtins/mulvsi3.c | 2 +- lib/builtins/mulvti3.c | 2 +- lib/builtins/mulxc3.c | 2 +- lib/builtins/negdf2.c | 3 ++- lib/builtins/negdi2.c | 2 +- lib/builtins/negti2.c | 2 +- lib/builtins/negvti2.c | 2 +- lib/builtins/paritydi2.c | 2 -- lib/builtins/parityti2.c | 4 +--- lib/builtins/popcountti2.c | 2 +- lib/builtins/powitf2.c | 2 +- lib/builtins/powixf2.c | 2 +- lib/builtins/subdf3.c | 3 --- lib/builtins/subsf3.c | 2 -- lib/builtins/subvti3.c | 2 +- lib/builtins/trampoline_setup.c | 5 +++-- lib/builtins/ucmpti2.c | 2 +- lib/builtins/udivdi3.c | 2 -- lib/builtins/udivmodsi4.c | 3 --- lib/builtins/udivmodti4.c | 2 +- lib/builtins/udivti3.c | 4 +--- lib/builtins/umoddi3.c | 2 -- lib/builtins/umodsi3.c | 2 -- lib/builtins/umodti3.c | 4 +--- 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; -- cgit v1.2.3