builtins: Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA.
authorWeiming Zhao <weimingz@codeaurora.org>
Fri, 24 Mar 2017 17:06:00 +0000 (17:06 +0000)
committerWeiming Zhao <weimingz@codeaurora.org>
Fri, 24 Mar 2017 17:06:00 +0000 (17:06 +0000)
commit19bf8bfa158b1b63cee2285d3f99fd98199a32b9
tree5ac2112e529c061a4c3fe825a9b5bc465e5f87a0
parentdfbf049e7ffaf8cfcd5287e1a806bb085d5c2f90
builtins: Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA.

Summary:
Value of __ARM_ARCH_ISA_THUMB isn't based on the actual compilation
mode (-mthumb, -marm), it reflect's capability of given CPU.

Due to this:
 - use  __tbumb__ and __thumb2__ insteand of __ARM_ARCH_ISA_THUMB
 - use '.thumb' directive consistently  in all affected files
 - decorate all thumb functions using
   DEFINE_COMPILERRT_THUMB_FUNCTION()

---------
Note: This patch doesn't fix broken Thumb1 variant of __udivsi3 !

Reviewers: weimingz, rengolin, compnerd

Subscribers: aemerson, dim

Differential Revision: https://reviews.llvm.org/D30938

llvm-svn: 298713
14 files changed:
compiler-rt/lib/builtins/arm/aeabi_idivmod.S
compiler-rt/lib/builtins/arm/aeabi_uidivmod.S
compiler-rt/lib/builtins/arm/bswapdi2.S
compiler-rt/lib/builtins/arm/bswapsi2.S
compiler-rt/lib/builtins/arm/clzdi2.S
compiler-rt/lib/builtins/arm/clzsi2.S
compiler-rt/lib/builtins/arm/comparesf2.S
compiler-rt/lib/builtins/arm/divmodsi4.S
compiler-rt/lib/builtins/arm/divsi3.S
compiler-rt/lib/builtins/arm/modsi3.S
compiler-rt/lib/builtins/arm/udivmodsi4.S
compiler-rt/lib/builtins/arm/udivsi3.S
compiler-rt/lib/builtins/arm/umodsi3.S
compiler-rt/lib/builtins/assembly.h