From 31a38cc32f62047e5ddd25de2811039ce3c805a4 Mon Sep 17 00:00:00 2001 From: Stephen Hines Date: Thu, 17 Jul 2014 20:41:01 +0000 Subject: [PATCH] Revert Thumb-2 conversion of some ARM builtins. The udivmodsi4/modsi3/umodsi3 code computes jump targets based on ARM encodings (if CLZ is present and IDIV is not present). Reverts parts of r211032 and r211035. llvm-svn: 213309 --- compiler-rt/lib/builtins/arm/udivmodsi4.S | 16 +++------------- compiler-rt/lib/builtins/arm/udivsi3.S | 21 +++------------------ compiler-rt/lib/builtins/arm/umodsi3.S | 18 ++---------------- 3 files changed, 8 insertions(+), 47 deletions(-) diff --git a/compiler-rt/lib/builtins/arm/udivmodsi4.S b/compiler-rt/lib/builtins/arm/udivmodsi4.S index 5b4e1bc8fc4d..ddc875219b7c 100644 --- a/compiler-rt/lib/builtins/arm/udivmodsi4.S +++ b/compiler-rt/lib/builtins/arm/udivmodsi4.S @@ -16,9 +16,6 @@ .syntax unified .text -#if __ARM_ARCH_ISA_THUMB == 2 - .thumb -#endif .p2align 2 DEFINE_COMPILERRT_FUNCTION(__udivmodsi4) @@ -99,16 +96,9 @@ DEFINE_COMPILERRT_FUNCTION(__udivmodsi4) #define IMM # -#if __ARM_ARCH_ISA_THUMB == 2 -#define ITT itt -#else -#define ITT @ -#endif - -#define block(shift) \ - cmp r0, r1, lsl IMM shift; \ - ITT hs; \ - addhs r3, r3, IMM (1 << shift); \ +#define block(shift) \ + cmp r0, r1, lsl IMM shift; \ + addhs r3, r3, IMM (1 << shift); \ subhs r0, r0, r1, lsl IMM shift block(31) diff --git a/compiler-rt/lib/builtins/arm/udivsi3.S b/compiler-rt/lib/builtins/arm/udivsi3.S index 8695257ecb7d..8fb1dca0f0d2 100644 --- a/compiler-rt/lib/builtins/arm/udivsi3.S +++ b/compiler-rt/lib/builtins/arm/udivsi3.S @@ -16,17 +16,6 @@ .syntax unified .text -#if __ARM_ARCH_ISA_THUMB == 2 - .thumb -#endif - -#if __ARM_ARCH_ISA_THUMB == 2 -#define IT it -#define ITT itt -#else -#define IT @ -#define ITT @ -#endif .p2align 2 DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_uidiv, __udivsi3) @@ -40,12 +29,9 @@ DEFINE_COMPILERRT_FUNCTION(__udivsi3) bx lr #else cmp r1, #1 - IT cc bcc LOCAL_LABEL(divby0) - IT eq JMPc(lr, eq) cmp r0, r1 - ITT cc movcc r0, #0 JMPc(lr, cc) /* @@ -108,10 +94,9 @@ DEFINE_COMPILERRT_FUNCTION(__udivsi3) #define IMM # -#define block(shift) \ - cmp r0, r1, lsl IMM shift; \ - ITT hs; \ - addhs r3, r3, IMM (1 << shift); \ +#define block(shift) \ + cmp r0, r1, lsl IMM shift; \ + addhs r3, r3, IMM (1 << shift); \ subhs r0, r0, r1, lsl IMM shift block(31) diff --git a/compiler-rt/lib/builtins/arm/umodsi3.S b/compiler-rt/lib/builtins/arm/umodsi3.S index c690df37b76c..164646b1f449 100644 --- a/compiler-rt/lib/builtins/arm/umodsi3.S +++ b/compiler-rt/lib/builtins/arm/umodsi3.S @@ -16,17 +16,6 @@ .syntax unified .text -#if __ARM_ARCH_ISA_THUMB == 2 - .thumb -#endif - -#if __ARM_ARCH_ISA_THUMB == 2 -#define IT it -#define ITT itt -#else -#define IT @ -#define ITT @ -#endif .p2align 2 DEFINE_COMPILERRT_FUNCTION(__umodsi3) @@ -41,11 +30,9 @@ DEFINE_COMPILERRT_FUNCTION(__umodsi3) #else cmp r1, #1 bcc LOCAL_LABEL(divby0) - ITT eq moveq r0, #0 JMPc(lr, eq) cmp r0, r1 - IT cc JMPc(lr, cc) /* * Implement division using binary long division algorithm. @@ -103,9 +90,8 @@ DEFINE_COMPILERRT_FUNCTION(__umodsi3) #define IMM # -#define block(shift) \ - cmp r0, r1, lsl IMM shift; \ - IT hs; \ +#define block(shift) \ + cmp r0, r1, lsl IMM shift; \ subhs r0, r0, r1, lsl IMM shift block(31) -- 2.34.1