[ARM] Add support for ARMV6K subtarget (LLVM)
authorRenato Golin <renato.golin@linaro.org>
Tue, 17 Mar 2015 11:55:28 +0000 (11:55 +0000)
committerRenato Golin <renato.golin@linaro.org>
Tue, 17 Mar 2015 11:55:28 +0000 (11:55 +0000)
commitce1f16421f76b79e451e6e0627519b5b8b6af8d3
treeceae2a9545c1f996857f3dd6c2b1840ac8fff4eb
parenta0a7510711f408ff720aa516a2a274536c8bbf5f
[ARM] Add support for ARMV6K subtarget (LLVM)

ARMv6K is another layer between ARMV6 and ARMV6T2. This is the LLVM
side of the changes.

ARMV6 family LLVM implementation.

+-------------------------------------+
| ARMV6                               |
+----------------+--------------------+
| ARMV6M (thumb) | ARMV6K (arm,thumb) | <- From ARMV6K and ARMV6M processors
+----------------+--------------------+    have support for hint instructions
| ARMV6T2 (arm,thumb,thumb2)          |    (SEV/WFE/WFI/NOP/YIELD). They can
+-------------------------------------+    be either real or default to NOP.
| ARMV7 (arm,thumb,thumb2)            |    The two processors also use
+-------------------------------------+    different encoding for them.

Patch by Vinicius Tinti.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232468 91177308-0d34-0410-b5e6-96231b3b80d8
15 files changed:
include/llvm/ADT/Triple.h
include/llvm/Support/ARMBuildAttributes.h
lib/Support/Triple.cpp
lib/Target/ARM/ARM.td
lib/Target/ARM/ARMBaseInstrInfo.cpp
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMSubtarget.cpp
lib/Target/ARM/ARMSubtarget.h
lib/Target/ARM/MCTargetDesc/ARMArchName.def
lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
test/CodeGen/ARM/build-attributes.ll
test/MC/ARM/arm11-hint-instr.s [new file with mode: 0644]
test/MC/ARM/directive-arch-armv6k.s [new file with mode: 0644]
test/MC/ARM/thumb-diagnostics.s