]> granicus.if.org Git - llvm/commit
Merging r311921:
authorJoerg Sonnenberger <joerg@bec.de>
Thu, 28 Sep 2017 14:13:54 +0000 (14:13 +0000)
committerJoerg Sonnenberger <joerg@bec.de>
Thu, 28 Sep 2017 14:13:54 +0000 (14:13 +0000)
commit43bd69c68c109e89158d4d3cafc6be4a4f56e299
tree5121e161fee91bdcb1e15929685451d51441e635
parentfe7556b49ac5f8fbea10b00e35ebe0500773075c
Merging r311921:
------------------------------------------------------------------------
r311921 | joerg | 2017-08-28 22:20:47 +0200 (Mon, 28 Aug 2017) | 16 lines

Fix ARMv4 support

ARMv4 doesn't support the "BX" instruction, which has been introduced
with ARMv4t. Adjust the call lowering and tail call implementation
accordingly.

Further changes are necessary to ensure that presence of the v4t feature
is correctly set. Most importantly, the "generic" CPU for thumb-*
triples should include ARMv4t, since thumb mode without thumb support
would naturally be pointless.

Add a couple of asserts to ensure thumb instructions are not emitted
without CPU support.

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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_50@314417 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
lib/Target/ARM/ARMAsmPrinter.cpp
lib/Target/ARM/ARMCallLowering.cpp
lib/Target/ARM/ARMExpandPseudoInsts.cpp
lib/Target/ARM/ARMFastISel.cpp
lib/Target/ARM/ARMFrameLowering.cpp
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMLoadStoreOptimizer.cpp
lib/Target/ARM/ARMSubtarget.h
lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll
test/CodeGen/ARM/armv4.ll
test/CodeGen/ARM/debug-segmented-stacks.ll
test/CodeGen/ARM/segmented-stacks-dynamic.ll
test/CodeGen/ARM/segmented-stacks.ll