[llvm-commits] [llvm] r143152 - /llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp

Owen Anderson resistor at mac.com
Thu Oct 27 14:55:13 PDT 2011


Author: resistor
Date: Thu Oct 27 16:55:13 2011
New Revision: 143152

URL: http://llvm.org/viewvc/llvm-project?rev=143152&view=rev
Log:
Revert r143149, stubbing out symbolic disassembly support.  The symbolic disassembly support is too MC-engrained to be useful in llvm-objdump.

Modified:
    llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp

Modified: llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp?rev=143152&r1=143151&r2=143152&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp (original)
+++ llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp Thu Oct 27 16:55:13 2011
@@ -23,11 +23,9 @@
 #include "llvm/ADT/Triple.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/MC/MCAsmInfo.h"
-#include "llvm/MC/MCContext.h"
 #include "llvm/MC/MCDisassembler.h"
 #include "llvm/MC/MCInst.h"
 #include "llvm/MC/MCInstPrinter.h"
-#include "llvm/MC/MCRegisterInfo.h"
 #include "llvm/MC/MCSubtargetInfo.h"
 #include "llvm/Support/Casting.h"
 #include "llvm/Support/CommandLine.h"
@@ -161,30 +159,8 @@
   return a_addr < b_addr;
 }
 
-// OperandInfoCallback - Callback from the MCDisassembler to perform
-// relocation resolution for operands while disassembling.
-int OperandInfoCallback(void *ObjectFile, uint64_t PC, uint64_t Offset,
-                            uint64_t Size, int TagType, void *TagBuf) {
-  LLVMOpInfo1 *OpInfo = static_cast<LLVMOpInfo1*>(TagBuf);
-  OpInfo->AddSymbol.Present = 0;
-  OpInfo->SubtractSymbol.Present = 0;
-  OpInfo->VariantKind = LLVMDisassembler_VariantKind_None;
-
-  return 0;
-}
-
-// SymbolLookupCallback - Callback from the MCDisassembler to convert
-// offsets to symbolic references while disassembling.
-const char* SymbolLookupCallback(void *ObjectFile, uint64_t ReferenceValue,
-                          uint64_t *ReferenceType, uint64_t PC,
-                          const char **ReferenceName) {
-  *ReferenceType = LLVMDisassembler_ReferenceType_InOut_None;
-  return 0;
-}
-
 static void DisassembleObject(const ObjectFile *Obj, bool InlineRelocs) {
   const Target *TheTarget = GetTarget(Obj);
-
   if (!TheTarget) {
     // GetTarget prints out stuff.
     return;
@@ -251,14 +227,6 @@
       return;
     }
 
-    OwningPtr<const MCRegisterInfo>
-       RegInfo(TheTarget->createMCRegInfo(TripleName));
-
-    if (!RegInfo) {
-      errs() << "error: no register info for target " << TripleName << "\n";
-      return;
-    }
-
     OwningPtr<const MCSubtargetInfo> STI(
       TheTarget->createMCSubtargetInfo(TripleName, "", ""));
 
@@ -267,20 +235,13 @@
       return;
     }
 
-    MCContext Context(*AsmInfo, *RegInfo, 0);
-    OwningPtr<MCDisassembler> DisAsm(
+    OwningPtr<const MCDisassembler> DisAsm(
       TheTarget->createMCDisassembler(*STI));
     if (!DisAsm) {
       errs() << "error: no disassembler for target " << TripleName << "\n";
       return;
     }
 
-    // Setup the disassembler for symbolic decoding.
-    DisAsm->setupForSymbolicDisassembly(OperandInfoCallback,
-                                        SymbolLookupCallback,
-                                        const_cast<ObjectFile*>(Obj),
-                                        &Context);
-
     int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
     OwningPtr<MCInstPrinter> IP(TheTarget->createMCInstPrinter(
                                 AsmPrinterVariant, *AsmInfo, *STI));
@@ -328,7 +289,7 @@
 
         if (DisAsm->getInstruction(Inst, Size, memoryObject, Index,
                                    DebugOut, nulls())) {
-          outs() << format("%8x:\t", SectionAddr + Index);
+          outs() << format("%8llx:\t", SectionAddr + Index);
           DumpBytes(StringRef(Bytes.data() + Index, Size));
           IP->printInst(&Inst, outs(), "");
           outs() << "\n";
@@ -355,7 +316,7 @@
           if (error(rel_cur->getTypeName(name))) goto skip_print_rel;
           if (error(rel_cur->getValueString(val))) goto skip_print_rel;
 
-          outs() << format("\t\t\t%8x: ", SectionAddr + addr) << name << "\t"
+          outs() << format("\t\t\t%8llx: ", SectionAddr + addr) << name << "\t"
                  << val << "\n";
 
         skip_print_rel:
@@ -439,7 +400,7 @@
 
     // Dump out the content as hex and printable ascii characters.
     for (std::size_t addr = 0, end = Contents.size(); addr < end; addr += 16) {
-      outs() << format(" %04x ", BaseAddr + addr);
+      outs() << format(" %04llx ", BaseAddr + addr);
       // Dump line of hex.
       for (std::size_t i = 0; i < 16; ++i) {
         if (i != 0 && i % 4 == 0)
@@ -545,7 +506,7 @@
       else if (Type == SymbolRef::ST_Function)
         FileFunc = 'F';
 
-      outs() << format("%08x", Offset) << " "
+      outs() << format("%08llx", Offset) << " "
              << GlobLoc // Local -> 'l', Global -> 'g', Neither -> ' '
              << (Weak ? 'w' : ' ') // Weak?
              << ' ' // Constructor. Not supported yet.
@@ -565,7 +526,7 @@
         outs() << SectionName;
       }
       outs() << '\t'
-             << format("%08x ", Size)
+             << format("%08llx ", Size)
              << Name
              << '\n';
     }





More information about the llvm-commits mailing list