aboutsummaryrefslogtreecommitdiff
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
parente60bb15982dc40517e078c3858fdc0716d43abb5 (diff)
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
-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 072df822bf..ed7dfb1a41 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 1b6a3607ba..de40770e90 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);
}