From 496932a88a8e5a7d9e716c5cd4d6047885b5fda5 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Wed, 21 Dec 2011 08:06:52 +0000 Subject: [PATCH] Remove mode specific disassembler classes and just call X86GenericDisassembler constructor with appropriate argument in the creation functions. This removes a few tables that needed to be anchored. llvm-svn: 147046 --- .../MBlaze/Disassembler/MBlazeDisassembler.h | 2 - .../X86/Disassembler/X86Disassembler.cpp | 10 +---- lib/Target/X86/Disassembler/X86Disassembler.h | 38 +++---------------- 3 files changed, 7 insertions(+), 43 deletions(-) diff --git a/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.h b/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.h index 0ac0d89efbe..16943826fca 100644 --- a/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.h +++ b/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.h @@ -17,8 +17,6 @@ #include "llvm/MC/MCDisassembler.h" -struct InternalInstruction; - namespace llvm { class MCInst; diff --git a/lib/Target/X86/Disassembler/X86Disassembler.cpp b/lib/Target/X86/Disassembler/X86Disassembler.cpp index 5b7316e73d0..eda5206a32f 100644 --- a/lib/Target/X86/Disassembler/X86Disassembler.cpp +++ b/lib/Target/X86/Disassembler/X86Disassembler.cpp @@ -79,12 +79,6 @@ EDInstInfo *X86GenericDisassembler::getEDInfo() const { return instInfoX86; } -void X86_16Disassembler::anchor() { } - -void X86_32Disassembler::anchor() { } - -void X86_64Disassembler::anchor() { } - /// regionReader - a callback function that wraps the readByte method from /// MemoryObject. /// @@ -597,11 +591,11 @@ static bool translateInstruction(MCInst &mcInst, } static MCDisassembler *createX86_32Disassembler(const Target &T, const MCSubtargetInfo &STI) { - return new X86Disassembler::X86_32Disassembler(STI); + return new X86Disassembler::X86GenericDisassembler(STI, MODE_32BIT); } static MCDisassembler *createX86_64Disassembler(const Target &T, const MCSubtargetInfo &STI) { - return new X86Disassembler::X86_64Disassembler(STI); + return new X86Disassembler::X86GenericDisassembler(STI, MODE_64BIT); } extern "C" void LLVMInitializeX86Disassembler() { diff --git a/lib/Target/X86/Disassembler/X86Disassembler.h b/lib/Target/X86/Disassembler/X86Disassembler.h index fb24e7e77ee..38c70846720 100644 --- a/lib/Target/X86/Disassembler/X86Disassembler.h +++ b/lib/Target/X86/Disassembler/X86Disassembler.h @@ -87,8 +87,6 @@ #include "llvm/MC/MCDisassembler.h" -struct InternalInstruction; - namespace llvm { class MCInst; @@ -104,13 +102,14 @@ namespace X86Disassembler { /// All each platform class should have to do is subclass the constructor, and /// provide a different disassemblerMode value. class X86GenericDisassembler : public MCDisassembler { -protected: +public: /// Constructor - Initializes the disassembler. /// /// @param mode - The X86 architecture mode to decode for. X86GenericDisassembler(const MCSubtargetInfo &STI, DisassemblerMode mode); -public: +private: ~X86GenericDisassembler(); +public: /// getInstruction - See MCDisassembler. DecodeStatus getInstruction(MCInst &instr, @@ -126,35 +125,8 @@ private: DisassemblerMode fMode; }; -/// X86_16Disassembler - 16-bit X86 disassembler. -class X86_16Disassembler : public X86GenericDisassembler { - virtual void anchor(); -public: - X86_16Disassembler(const MCSubtargetInfo &STI) : - X86GenericDisassembler(STI, MODE_16BIT) { - } -}; - -/// X86_32Disassembler - 32-bit X86 disassembler. -class X86_32Disassembler : public X86GenericDisassembler { - virtual void anchor(); -public: - X86_32Disassembler(const MCSubtargetInfo &STI) : - X86GenericDisassembler(STI, MODE_32BIT) { - } -}; - -/// X86_64Disassembler - 64-bit X86 disassembler. -class X86_64Disassembler : public X86GenericDisassembler { - virtual void anchor(); -public: - X86_64Disassembler(const MCSubtargetInfo &STI) : - X86GenericDisassembler(STI, MODE_64BIT) { - } -}; - } // namespace X86Disassembler - + } // namespace llvm - + #endif