From: Sean Callanan Date: Fri, 9 Apr 2010 00:11:15 +0000 (+0000) Subject: Bugfixes for edis. Code to initialize instruction X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=4285b294a86f507822b8c00d85888e78f69672e5;p=oota-llvm.git 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 --- diff --git a/tools/edis/EDDisassembler.cpp b/tools/edis/EDDisassembler.cpp index 072df822bf3..ed7dfb1a412 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 1b6a3607ba8..de40770e900 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); }