aboutsummaryrefslogtreecommitdiffstats
path: root/tools/edis
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2010-04-09 00:11:15 +0000
committerSean Callanan <scallanan@apple.com>2010-04-09 00:11:15 +0000
commit4285b294a86f507822b8c00d85888e78f69672e5 (patch)
tree06247dc513d78e7fee78170ee1abdb1afd72cef7 /tools/edis
parente60bb15982dc40517e078c3858fdc0716d43abb5 (diff)
downloadexternal_llvm-4285b294a86f507822b8c00d85888e78f69672e5.zip
external_llvm-4285b294a86f507822b8c00d85888e78f69672e5.tar.gz
external_llvm-4285b294a86f507822b8c00d85888e78f69672e5.tar.bz2
Bugfixes for edis. Code to initialize instruction
state was being executed too lazily, and the LLVM assembly syntax for the disassembler was not being written into the proper disassembler state variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100830 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/edis')
-rw-r--r--tools/edis/EDDisassembler.cpp6
-rw-r--r--tools/edis/EDInst.cpp3
2 files changed, 4 insertions, 5 deletions
diff --git a/tools/edis/EDDisassembler.cpp b/tools/edis/EDDisassembler.cpp
index 072df82..ed7dfb1 100644
--- a/tools/edis/EDDisassembler.cpp
+++ b/tools/edis/EDDisassembler.cpp
@@ -171,9 +171,9 @@ EDDisassembler::EDDisassembler(CPUKey &key) :
const char *triple = infoMap->String;
- int syntaxVariant = getLLVMSyntaxVariant(key.Arch, key.Syntax);
+ LLVMSyntaxVariant = getLLVMSyntaxVariant(key.Arch, key.Syntax);
- if (syntaxVariant < 0)
+ if (LLVMSyntaxVariant < 0)
return;
std::string tripleString(triple);
@@ -210,7 +210,7 @@ EDDisassembler::EDDisassembler(CPUKey &key) :
InstString.reset(new std::string);
InstStream.reset(new raw_string_ostream(*InstString));
- InstPrinter.reset(Tgt->createMCInstPrinter(syntaxVariant, *AsmInfo));
+ InstPrinter.reset(Tgt->createMCInstPrinter(LLVMSyntaxVariant, *AsmInfo));
if (!InstPrinter)
return;
diff --git a/tools/edis/EDInst.cpp b/tools/edis/EDInst.cpp
index 1b6a360..de40770 100644
--- a/tools/edis/EDInst.cpp
+++ b/tools/edis/EDInst.cpp
@@ -33,6 +33,7 @@ EDInst::EDInst(llvm::MCInst *inst,
BranchTarget(-1),
MoveSource(-1),
MoveTarget(-1) {
+ OperandOrder = ThisInstInfo->operandOrders[Disassembler.llvmSyntaxVariant()];
}
EDInst::~EDInst() {
@@ -60,8 +61,6 @@ int EDInst::stringify() {
if (Disassembler.printInst(String, *Inst))
return StringifyResult.setResult(-1);
-
- OperandOrder = ThisInstInfo->operandOrders[Disassembler.llvmSyntaxVariant()];
return StringifyResult.setResult(0);
}