aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/MCTargetDesc
diff options
context:
space:
mode:
authorAmara Emerson <amara.emerson@arm.com>2013-10-03 09:31:51 +0000
committerAmara Emerson <amara.emerson@arm.com>2013-10-03 09:31:51 +0000
commit6eef361b73b457896b310d411251aedd5e72476a (patch)
treedfc0acbe041f65d4048244b45475bceefb97b8d9 /lib/Target/ARM/MCTargetDesc
parent9d08d69fd4562a4433cf19eb4b96c17b34f6da2e (diff)
downloadexternal_llvm-6eef361b73b457896b310d411251aedd5e72476a.tar.gz
external_llvm-6eef361b73b457896b310d411251aedd5e72476a.tar.bz2
external_llvm-6eef361b73b457896b310d411251aedd5e72476a.zip
[ARM] Warn on deprecated IT blocks in v8 AArch32 assembly.
Patch by Artyom Skrobov. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191885 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/MCTargetDesc')
-rw-r--r--lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
index 94069cd001..28d921213c 100644
--- a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
+++ b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
@@ -63,6 +63,17 @@ static bool getMCRDeprecationInfo(MCInst &MI, MCSubtargetInfo &STI,
return false;
}
+static bool getITDeprecationInfo(MCInst &MI, MCSubtargetInfo &STI,
+ std::string &Info) {
+ if (STI.getFeatureBits() & llvm::ARM::HasV8Ops &&
+ MI.getOperand(1).isImm() && MI.getOperand(1).getImm() != 8) {
+ Info = "applying IT instruction to more than one subsequent instruction is deprecated";
+ return true;
+ }
+
+ return false;
+}
+
#define GET_INSTRINFO_MC_DESC
#include "ARMGenInstrInfo.inc"