[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)
commit12350607344c9dba651ae1daf7560019a693f42d
tree3ee4d4e457ab113803af5f4640d8f66514570aa9
parent3df471c32de4bba7395662f01e2036ff45e40e18
[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.

llvm-svn: 232468
15 files changed:
llvm/include/llvm/ADT/Triple.h
llvm/include/llvm/Support/ARMBuildAttributes.h
llvm/lib/Support/Triple.cpp
llvm/lib/Target/ARM/ARM.td
llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
llvm/lib/Target/ARM/ARMInstrInfo.td
llvm/lib/Target/ARM/ARMSubtarget.cpp
llvm/lib/Target/ARM/ARMSubtarget.h
llvm/lib/Target/ARM/MCTargetDesc/ARMArchName.def
llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
llvm/test/CodeGen/ARM/build-attributes.ll
llvm/test/MC/ARM/arm11-hint-instr.s [new file with mode: 0644]
llvm/test/MC/ARM/directive-arch-armv6k.s [new file with mode: 0644]
llvm/test/MC/ARM/thumb-diagnostics.s