ARM: do not generate BLX instructions on Cortex-M CPUs.
authorTim Northover <tnorthover@apple.com>
Wed, 6 Aug 2014 11:13:14 +0000 (11:13 +0000)
committerTim Northover <tnorthover@apple.com>
Wed, 6 Aug 2014 11:13:14 +0000 (11:13 +0000)
commit2c0d42ac9a619e85cd6d22faf605af6f58ec9d5a
tree8d8c0fc80c38a813819fd9f4786af843a94843c2
parent08828a979a9c3b57e54af9b97d83e348e128b441
ARM: do not generate BLX instructions on Cortex-M CPUs.

Particularly on MachO, we were generating "blx _dest" instructions on M-class
CPUs, which don't actually exist. They happen to get fixed up by the linker
into valid "bl _dest" instructions (which is why such a massive issue has
remained largely undetected), but we shouldn't rely on that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214959 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMInstrThumb.td
test/CodeGen/ARM/atomic-op.ll
test/CodeGen/ARM/darwin-eabi.ll
test/CodeGen/ARM/interrupt-attr.ll
test/CodeGen/ARM/none-macho.ll
test/CodeGen/Thumb2/cortex-fp.ll