From 4285b294a86f507822b8c00d85888e78f69672e5 Mon Sep 17 00:00:00 2001 From: Sean Callanan Date: Fri, 9 Apr 2010 00:11:15 +0000 Subject: 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 --- tools/edis/EDDisassembler.cpp | 6 +++--- tools/edis/EDInst.cpp | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'tools/edis') 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); } -- cgit v1.2.3