diff --git a/tools/llvm-objdump/llvm-objdump.cpp b/tools/llvm-objdump/llvm-objdump.cpp
index c0022d4..4cfd4f4 100644
--- a/tools/llvm-objdump/llvm-objdump.cpp
+++ b/tools/llvm-objdump/llvm-objdump.cpp
@@ -262,13 +262,14 @@
       if (!CFG) {
         for (Index = Start; Index < End; Index += Size) {
           MCInst Inst;
+
           if (DisAsm->getInstruction(Inst, Size, memoryObject, Index,
-                                     DebugOut)) {
+                                     DebugOut, nulls())) {
             uint64_t addr;
             if (error(i->getAddress(addr))) break;
             outs() << format("%8x:\t", addr + Index);
             DumpBytes(StringRef(Bytes.data() + Index, Size));
-            IP->printInst(&Inst, outs());
+            IP->printInst(&Inst, outs(), "");
             outs() << "\n";
           } else {
             errs() << ToolName << ": warning: invalid instruction encoding\n";
@@ -323,7 +324,7 @@
             // Simple loops.
             if (fi->second.contains(&fi->second))
               outs() << '\t';
-            IP->printInst(&Inst.Inst, outs());
+            IP->printInst(&Inst.Inst, outs(), "");
             outs() << '\n';
           }
         }
@@ -359,7 +360,7 @@
             // Escape special chars and print the instruction in mnemonic form.
             std::string Str;
             raw_string_ostream OS(Str);
-            IP->printInst(&i->second.getInsts()[ii].Inst, OS);
+            IP->printInst(&i->second.getInsts()[ii].Inst, OS, "");
             Out << DOT::EscapeString(OS.str()) << '|';
           }
           Out << "<o>\" shape=\"record\" ];\n";
