Enable streaming of bitcode
[oota-llvm.git] / lib / Target / X86 / Disassembler / X86Disassembler.cpp
index 884e690efae4fdca1b9a6198364ebe79bdf52fcc..f57075f105b85f6e4ee80af025bb9eb3b4a5a929 100644 (file)
@@ -112,16 +112,20 @@ static void logger(void* arg, const char* log) {
 MCDisassembler::DecodeStatus
 X86GenericDisassembler::getInstruction(MCInst &instr,
                                        uint64_t &size,
-                                       const MemoryObject &region,
+                                       MemoryObject &region,
                                        uint64_t address,
                                        raw_ostream &vStream,
                                        raw_ostream &cStream) const {
   InternalInstruction internalInstr;
+
+  dlog_t loggerFn = logger;
+  if (&vStream == &nulls())
+    loggerFn = 0; // Disable logging completely if it's going to nulls().
   
   int ret = decodeInstruction(&internalInstr,
                               regionReader,
                               (void*)&region,
-                              logger,
+                              loggerFn,
                               (void*)&vStream,
                               address,
                               fMode);
@@ -587,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() {