diff options
author | Sean Callanan <scallanan@apple.com> | 2010-04-09 00:11:15 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2010-04-09 00:11:15 +0000 |
commit | 4285b294a86f507822b8c00d85888e78f69672e5 (patch) | |
tree | 06247dc513d78e7fee78170ee1abdb1afd72cef7 /tools/edis | |
parent | e60bb15982dc40517e078c3858fdc0716d43abb5 (diff) | |
download | external_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.cpp | 6 | ||||
-rw-r--r-- | tools/edis/EDInst.cpp | 3 |
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); } |