diff options
-rw-r--r-- | compiler-rt/lib/arm/divmodsi4.S | 2 | ||||
-rw-r--r-- | compiler-rt/lib/arm/divsi3.S | 2 | ||||
-rw-r--r-- | compiler-rt/lib/arm/modsi3.S | 2 | ||||
-rw-r--r-- | compiler-rt/lib/assembly.h | 24 |
4 files changed, 17 insertions, 13 deletions
diff --git a/compiler-rt/lib/arm/divmodsi4.S b/compiler-rt/lib/arm/divmodsi4.S index b11a4a8ebf8..cec39a7926f 100644 --- a/compiler-rt/lib/arm/divmodsi4.S +++ b/compiler-rt/lib/arm/divmodsi4.S @@ -36,7 +36,7 @@ DEFINE_COMPILERRT_FUNCTION(__divmodsi4) sub r0, ip, r0, asr #31 sub r1, lr, r1, asr #31 // Unsigned divmod: - bl ___udivmodsi4 + bl SYMBOL_NAME(__udivmodsi4) // Apply the sign of quotient and modulus ldr r1, [r6] eor r0, r0, r4, asr #31 diff --git a/compiler-rt/lib/arm/divsi3.S b/compiler-rt/lib/arm/divsi3.S index 69ef20c4a76..045ae4fdb79 100644 --- a/compiler-rt/lib/arm/divsi3.S +++ b/compiler-rt/lib/arm/divsi3.S @@ -32,7 +32,7 @@ DEFINE_COMPILERRT_FUNCTION(__divsi3) sub r0, r2, r0, asr #31 sub r1, r3, r1, asr #31 // abs(a) / abs(b) - bl ___udivsi3 + bl SYMBOL_NAME(__udivsi3) // Apply sign of quotient to result and return. eor r0, r0, r4, asr #31 sub r0, r0, r4, asr #31 diff --git a/compiler-rt/lib/arm/modsi3.S b/compiler-rt/lib/arm/modsi3.S index 97573395ddf..a4cd2ee54e7 100644 --- a/compiler-rt/lib/arm/modsi3.S +++ b/compiler-rt/lib/arm/modsi3.S @@ -32,7 +32,7 @@ DEFINE_COMPILERRT_FUNCTION(__modsi3) sub r0, r2, r0, asr #31 sub r1, r3, r1, asr #31 // abs(a) % abs(b) - bl ___umodsi3 + bl SYMBOL_NAME(__umodsi3) // Apply sign of dividend to result and return. eor r0, r0, r4, asr #31 sub r0, r0, r4, asr #31 diff --git a/compiler-rt/lib/assembly.h b/compiler-rt/lib/assembly.h index 41c24d74ead..928f5fd70a8 100644 --- a/compiler-rt/lib/assembly.h +++ b/compiler-rt/lib/assembly.h @@ -26,29 +26,33 @@ *values* of two macros. This is quite brittle, though. */ #if defined(__APPLE__) #define SYMBOL_NAME(name) _##name +#define HIDDEN_DIRECTIVE .private_extern +#define LOCAL_LABEL(name) L_##name #else #define SYMBOL_NAME(name) name +#define HIDDEN_DIRECTIVE .hidden +#define LOCAL_LABEL(name) .L_##name #endif #ifdef VISIBILITY_HIDDEN -#define DEFINE_COMPILERRT_FUNCTION(name) \ - .globl SYMBOL_NAME(name) SEPARATOR \ - .private_extern SYMBOL_NAME(name) SEPARATOR \ +#define DEFINE_COMPILERRT_FUNCTION(name) \ + .globl SYMBOL_NAME(name) SEPARATOR \ + HIDDEN_DIRECTIVE SYMBOL_NAME(name) SEPARATOR \ SYMBOL_NAME(name): #else -#define DEFINE_COMPILERRT_FUNCTION(name) \ - .globl SYMBOL_NAME(name) SEPARATOR \ +#define DEFINE_COMPILERRT_FUNCTION(name) \ + .globl SYMBOL_NAME(name) SEPARATOR \ SYMBOL_NAME(name): #endif -#define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name) \ - .globl SYMBOL_NAME(name) SEPARATOR \ - .private_extern SYMBOL_NAME(name) SEPARATOR \ +#define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name) \ + .globl SYMBOL_NAME(name) SEPARATOR \ + HIDDEN_DIRECTIVE SYMBOL_NAME(name) SEPARATOR \ SYMBOL_NAME(name): #define DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(name) \ - .globl name SEPARATOR \ - .private_extern name SEPARATOR \ + .globl name SEPARATOR \ + HIDDEN_DIRECTIVE name SEPARATOR \ name: #endif /* COMPILERRT_ASSEMBLY_H */ |