diff options
author | Lang Hames <lhames@gmail.com> | 2014-04-15 04:40:56 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2014-04-15 04:40:56 +0000 |
commit | a1bc0f56623b4ca1851d27c9f64cccdfdc055c06 (patch) | |
tree | dd9fe4641d2c5e95538962439dc0030c923df47a /llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp | |
parent | 33ec29ace9e2437fa818fba61d3ed8c558bba6ce (diff) | |
download | bcm5719-llvm-a1bc0f56623b4ca1851d27c9f64cccdfdc055c06.tar.gz bcm5719-llvm-a1bc0f56623b4ca1851d27c9f64cccdfdc055c06.zip |
[MC] Require an MCContext when constructing an MCDisassembler.
This patch re-introduces the MCContext member that was removed from
MCDisassembler in r206063, and requires that an MCContext be passed in at
MCDisassembler construction time. (Previously the MCContext member had been
initialized in an ad-hoc fashion after construction). The MCCContext member
can be used by MCDisassembler sub-classes to construct constant or
target-specific MCExprs.
This patch updates disassemblers for in-tree targets, and provides the
MCRegisterInfo instance that some disassemblers were using through the
MCContext (previously those backends were constructing their own
MCRegisterInfo instances).
llvm-svn: 206241
Diffstat (limited to 'llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp')
-rw-r--r-- | llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp index 6681e77eb79..f03ed13d13c 100644 --- a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp +++ b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp @@ -76,8 +76,9 @@ static bool translateInstruction(MCInst &target, X86GenericDisassembler::X86GenericDisassembler( const MCSubtargetInfo &STI, + MCContext &Ctx, std::unique_ptr<const MCInstrInfo> MII) - : MCDisassembler(STI), MII(std::move(MII)) { + : MCDisassembler(STI, Ctx), MII(std::move(MII)) { switch (STI.getFeatureBits() & (X86::Mode16Bit | X86::Mode32Bit | X86::Mode64Bit)) { case X86::Mode16Bit: @@ -800,9 +801,10 @@ static bool translateInstruction(MCInst &mcInst, } static MCDisassembler *createX86Disassembler(const Target &T, - const MCSubtargetInfo &STI) { + const MCSubtargetInfo &STI, + MCContext &Ctx) { std::unique_ptr<const MCInstrInfo> MII(T.createMCInstrInfo()); - return new X86Disassembler::X86GenericDisassembler(STI, std::move(MII)); + return new X86Disassembler::X86GenericDisassembler(STI, Ctx, std::move(MII)); } extern "C" void LLVMInitializeX86Disassembler() { |