aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/DisassemblerEmitter.cpp
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2014-05-06 14:15:14 +0000
committerTim Northover <tnorthover@apple.com>2014-05-06 14:15:14 +0000
commit618850b6a50c9e06218c314ad55a0d03756e6cba (patch)
tree9ea06819e86c9d65d1363efaec013ea2ede182d7 /llvm/utils/TableGen/DisassemblerEmitter.cpp
parent166c19bd373ca6fcdce897a6a540c610434c7171 (diff)
downloadllvm-618850b6a50c9e06218c314ad55a0d03756e6cba.zip
llvm-618850b6a50c9e06218c314ad55a0d03756e6cba.tar.gz
llvm-618850b6a50c9e06218c314ad55a0d03756e6cba.tar.bz2
AArch64/ARM64: implement diagnosis of unpredictable loads & stores
llvm-svn: 208091
Diffstat (limited to 'llvm/utils/TableGen/DisassemblerEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/DisassemblerEmitter.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/utils/TableGen/DisassemblerEmitter.cpp b/llvm/utils/TableGen/DisassemblerEmitter.cpp
index 0020de6..f02051a 100644
--- a/llvm/utils/TableGen/DisassemblerEmitter.cpp
+++ b/llvm/utils/TableGen/DisassemblerEmitter.cpp
@@ -127,10 +127,13 @@ void EmitDisassembler(RecordKeeper &Records, raw_ostream &OS) {
}
// ARM and Thumb have a CHECK() macro to deal with DecodeStatuses.
- if (Target.getName() == "ARM" ||
- Target.getName() == "Thumb" ||
- Target.getName() == "AArch64") {
- EmitFixedLenDecoder(Records, OS, Target.getName() == "AArch64" ? "AArch64" : "ARM",
+ if (Target.getName() == "ARM" || Target.getName() == "Thumb" ||
+ Target.getName() == "AArch64" || Target.getName() == "ARM64") {
+ std::string PredicateNamespace = Target.getName();
+ if (PredicateNamespace == "Thumb")
+ PredicateNamespace = "ARM";
+
+ EmitFixedLenDecoder(Records, OS, PredicateNamespace,
"if (!Check(S, ", ")) return MCDisassembler::Fail;",
"S", "MCDisassembler::Fail",
" MCDisassembler::DecodeStatus S = "