Index: llvm/tools/llvm-objdump/MachODump.h =================================================================== --- llvm/tools/llvm-objdump/MachODump.h +++ llvm/tools/llvm-objdump/MachODump.h @@ -33,11 +33,11 @@ void parseMachOOptions(const llvm::opt::InputArgList &InputArgs); // MachO specific options -extern cl::OptionCategory MachOCat; extern bool Bind; extern bool DataInCode; -extern bool DylibsUsed; +extern std::string DisSymName; extern bool DylibId; +extern bool DylibsUsed; extern bool ExportsTrie; extern bool FirstPrivateHeader; extern bool FullLeadingAddr; @@ -45,14 +45,13 @@ extern bool IndirectSymbols; extern bool InfoPlist; extern bool LazyBind; +extern bool LeadingHeaders; extern bool LinkOptHints; -extern bool NoLeadingHeaders; -extern bool NoSymbolicOperands; -extern bool NonVerbose; extern bool ObjcMetaData; -extern std::string DisSymName; extern bool Rebase; +extern bool SymbolicOperands; extern bool UniversalHeaders; +extern bool Verbose; extern bool WeakBind; Error getMachORelocationValueString(const object::MachOObjectFile *Obj, Index: llvm/tools/llvm-objdump/MachODump.cpp =================================================================== --- llvm/tools/llvm-objdump/MachODump.cpp +++ llvm/tools/llvm-objdump/MachODump.cpp @@ -72,7 +72,7 @@ static bool UseDbg; static std::string DSYMFile; bool objdump::FullLeadingAddr; -bool objdump::NoLeadingHeaders; +bool objdump::LeadingHeaders; bool objdump::UniversalHeaders; static bool ArchiveMemberOffsets; bool objdump::IndirectSymbols; @@ -82,10 +82,10 @@ bool objdump::InfoPlist; bool objdump::DylibsUsed; bool objdump::DylibId; -bool objdump::NonVerbose; +bool objdump::Verbose; bool objdump::ObjcMetaData; std::string objdump::DisSymName; -bool objdump::NoSymbolicOperands; +bool objdump::SymbolicOperands; static std::vector ArchFlags; static bool ArchAll = false; @@ -101,7 +101,7 @@ UseDbg = InputArgs.hasArg(OBJDUMP_g); DSYMFile = InputArgs.getLastArgValue(OBJDUMP_dsym_EQ).str(); FullLeadingAddr = InputArgs.hasArg(OBJDUMP_full_leading_addr); - NoLeadingHeaders = InputArgs.hasArg(OBJDUMP_no_leading_headers); + LeadingHeaders = !InputArgs.hasArg(OBJDUMP_no_leading_headers); UniversalHeaders = InputArgs.hasArg(OBJDUMP_universal_headers); ArchiveMemberOffsets = InputArgs.hasArg(OBJDUMP_archive_member_offsets); IndirectSymbols = InputArgs.hasArg(OBJDUMP_indirect_symbols); @@ -111,10 +111,10 @@ InfoPlist = InputArgs.hasArg(OBJDUMP_info_plist); DylibsUsed = InputArgs.hasArg(OBJDUMP_dylibs_used); DylibId = InputArgs.hasArg(OBJDUMP_dylib_id); - NonVerbose = InputArgs.hasArg(OBJDUMP_non_verbose); + Verbose = !InputArgs.hasArg(OBJDUMP_non_verbose); ObjcMetaData = InputArgs.hasArg(OBJDUMP_objc_meta_data); DisSymName = InputArgs.getLastArgValue(OBJDUMP_dis_symname).str(); - NoSymbolicOperands = InputArgs.hasArg(OBJDUMP_no_symbolic_operands); + SymbolicOperands = !InputArgs.hasArg(OBJDUMP_no_symbolic_operands); ArchFlags = InputArgs.getAllArgValues(OBJDUMP_arch_EQ); } @@ -233,19 +233,19 @@ default: case MachO::DICE_KIND_DATA: if (Length >= 4) { - if (!NoShowRawInsn) + if (ShowRawInsn) dumpBytes(makeArrayRef(bytes, 4), outs()); Value = bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]; outs() << "\t.long " << Value; Size = 4; } else if (Length >= 2) { - if (!NoShowRawInsn) + if (ShowRawInsn) dumpBytes(makeArrayRef(bytes, 2), outs()); Value = bytes[1] << 8 | bytes[0]; outs() << "\t.short " << Value; Size = 2; } else { - if (!NoShowRawInsn) + if (ShowRawInsn) dumpBytes(makeArrayRef(bytes, 2), outs()); Value = bytes[0]; outs() << "\t.byte " << Value; @@ -257,14 +257,14 @@ outs() << "\t@ data in code kind = " << Kind << "\n"; break; case MachO::DICE_KIND_JUMP_TABLE8: - if (!NoShowRawInsn) + if (ShowRawInsn) dumpBytes(makeArrayRef(bytes, 1), outs()); Value = bytes[0]; outs() << "\t.byte " << format("%3u", Value) << "\t@ KIND_JUMP_TABLE8\n"; Size = 1; break; case MachO::DICE_KIND_JUMP_TABLE16: - if (!NoShowRawInsn) + if (ShowRawInsn) dumpBytes(makeArrayRef(bytes, 2), outs()); Value = bytes[1] << 8 | bytes[0]; outs() << "\t.short " << format("%5u", Value & 0xffff) @@ -273,7 +273,7 @@ break; case MachO::DICE_KIND_JUMP_TABLE32: case MachO::DICE_KIND_ABS_JUMP_TABLE32: - if (!NoShowRawInsn) + if (ShowRawInsn) dumpBytes(makeArrayRef(bytes, 4), outs()); Value = bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]; outs() << "\t.long " << Value; @@ -1743,7 +1743,7 @@ uint32_t sect_size = BytesStr.size(); uint64_t sect_addr = Section.getAddress(); - if (!NoLeadingHeaders) + if (LeadingHeaders) outs() << "Contents of (" << SegName << "," << SectName << ") section\n"; @@ -1763,7 +1763,7 @@ } #ifdef HAVE_LIBXAR if (SegName == "__LLVM" && SectName == "__bundle") { - DumpBitcodeSection(O, sect, sect_size, verbose, !NoSymbolicOperands, + DumpBitcodeSection(O, sect, sect_size, verbose, SymbolicOperands, ArchiveHeaders, ""); continue; } @@ -1776,20 +1776,20 @@ outs() << "zerofill section and has no contents in the file\n"; break; case MachO::S_CSTRING_LITERALS: - DumpCstringSection(O, sect, sect_size, sect_addr, !NoLeadingAddr); + DumpCstringSection(O, sect, sect_size, sect_addr, LeadingAddr); break; case MachO::S_4BYTE_LITERALS: - DumpLiteral4Section(O, sect, sect_size, sect_addr, !NoLeadingAddr); + DumpLiteral4Section(O, sect, sect_size, sect_addr, LeadingAddr); break; case MachO::S_8BYTE_LITERALS: - DumpLiteral8Section(O, sect, sect_size, sect_addr, !NoLeadingAddr); + DumpLiteral8Section(O, sect, sect_size, sect_addr, LeadingAddr); break; case MachO::S_16BYTE_LITERALS: - DumpLiteral16Section(O, sect, sect_size, sect_addr, !NoLeadingAddr); + DumpLiteral16Section(O, sect, sect_size, sect_addr, LeadingAddr); break; case MachO::S_LITERAL_POINTERS: DumpLiteralPointerSection(O, Section, sect, sect_size, sect_addr, - !NoLeadingAddr); + LeadingAddr); break; case MachO::S_MOD_INIT_FUNC_POINTERS: case MachO::S_MOD_TERM_FUNC_POINTERS: @@ -1826,7 +1826,7 @@ DataRefImpl Ref = Section.getRawDataRefImpl(); StringRef SegName = O->getSectionFinalSegmentName(Ref); if (SegName == "__TEXT" && SectName == "__info_plist") { - if (!NoLeadingHeaders) + if (LeadingHeaders) outs() << "Contents of (" << SegName << "," << SectName << ") section\n"; StringRef BytesStr = unwrapOrError(Section.getContents(), O->getFileName()); @@ -1886,7 +1886,7 @@ Bind || SymbolTable || LazyBind || WeakBind || IndirectSymbols || DataInCode || FunctionStarts || LinkOptHints || DylibsUsed || DylibId || ObjcMetaData || (!FilterSections.empty())) { - if (!NoLeadingHeaders) { + if (LeadingHeaders) { outs() << Name; if (!ArchiveMemberName.empty()) outs() << '(' << ArchiveMemberName << ')'; @@ -1937,21 +1937,21 @@ DisassembleMachO(FileName, MachOOF, "__TEXT", "__text"); } if (IndirectSymbols) - PrintIndirectSymbols(MachOOF, !NonVerbose); + PrintIndirectSymbols(MachOOF, Verbose); if (DataInCode) - PrintDataInCodeTable(MachOOF, !NonVerbose); + PrintDataInCodeTable(MachOOF, Verbose); if (FunctionStarts) PrintFunctionStarts(MachOOF); if (LinkOptHints) PrintLinkOptHints(MachOOF); if (Relocations) - PrintRelocations(MachOOF, !NonVerbose); + PrintRelocations(MachOOF, Verbose); if (SectionHeaders) printSectionHeaders(MachOOF); if (SectionContents) printSectionContents(MachOOF); if (!FilterSections.empty()) - DumpSectionContents(FileName, MachOOF, !NonVerbose); + DumpSectionContents(FileName, MachOOF, Verbose); if (InfoPlist) DumpInfoPlistSectionContents(FileName, MachOOF); if (DylibsUsed) @@ -1969,7 +1969,7 @@ if (FirstPrivateHeader) printMachOFileHeader(MachOOF); if (ObjcMetaData) - printObjcMetaData(MachOOF, !NonVerbose); + printObjcMetaData(MachOOF, Verbose); if (ExportsTrie) printExportsTrie(MachOOF); if (Rebase) @@ -2308,7 +2308,7 @@ if (Archive *A = dyn_cast(&Bin)) { outs() << "Archive : " << Filename << "\n"; if (ArchiveHeaders) - printArchiveHeaders(Filename, A, !NonVerbose, ArchiveMemberOffsets); + printArchiveHeaders(Filename, A, Verbose, ArchiveMemberOffsets); Error Err = Error::success(); unsigned I = -1; @@ -2355,7 +2355,7 @@ auto Filename = UB->getFileName(); if (UniversalHeaders) - printMachOUniversalHeaders(UB, !NonVerbose); + printMachOUniversalHeaders(UB, Verbose); // If we have a list of architecture flags specified dump only those. if (!ArchAll && !ArchFlags.empty()) { @@ -2389,7 +2389,7 @@ outs() << " (architecture " << ArchitectureName << ")"; outs() << "\n"; if (ArchiveHeaders) - printArchiveHeaders(Filename, A.get(), !NonVerbose, + printArchiveHeaders(Filename, A.get(), Verbose, ArchiveMemberOffsets, ArchitectureName); Error Err = Error::success(); unsigned I = -1; @@ -2450,7 +2450,7 @@ std::unique_ptr &A = *AOrErr; outs() << "Archive : " << Filename << "\n"; if (ArchiveHeaders) - printArchiveHeaders(Filename, A.get(), !NonVerbose, + printArchiveHeaders(Filename, A.get(), Verbose, ArchiveMemberOffsets); Error Err = Error::success(); unsigned I = -1; @@ -2503,7 +2503,7 @@ outs() << " (architecture " << ArchitectureName << ")"; outs() << "\n"; if (ArchiveHeaders) - printArchiveHeaders(Filename, A.get(), !NonVerbose, + printArchiveHeaders(Filename, A.get(), Verbose, ArchiveMemberOffsets, ArchitectureName); Error Err = Error::success(); unsigned I = -1; @@ -7458,13 +7458,13 @@ return; } // Set up the block of info used by the Symbolizer call backs. - SymbolizerInfo.verbose = !NoSymbolicOperands; + SymbolizerInfo.verbose = SymbolicOperands; SymbolizerInfo.O = MachOOF; SymbolizerInfo.S = Sections[SectIdx]; SymbolizerInfo.AddrMap = &AddrMap; SymbolizerInfo.Sections = &Sections; // Same for the ThumbSymbolizer - ThumbSymbolizerInfo.verbose = !NoSymbolicOperands; + ThumbSymbolizerInfo.verbose = SymbolicOperands; ThumbSymbolizerInfo.O = MachOOF; ThumbSymbolizerInfo.S = Sections[SectIdx]; ThumbSymbolizerInfo.AddrMap = &AddrMap; @@ -7589,7 +7589,7 @@ outs() << SymName << ":\n"; uint64_t PC = SectAddress + Index; - if (!NoLeadingAddr) { + if (LeadingAddr) { if (FullLeadingAddr) { if (MachOOF->is64Bit()) outs() << format("%016" PRIx64, PC); @@ -7599,7 +7599,7 @@ outs() << format("%8" PRIx64 ":", PC); } } - if (!NoShowRawInsn || Arch == Triple::arm) + if (ShowRawInsn || Arch == Triple::arm) outs() << "\t"; if (DumpAndSkipDataInCode(PC, Bytes.data() + Index, Dices, Size)) @@ -7616,7 +7616,7 @@ gotInst = DisAsm->getInstruction(Inst, Size, Bytes.slice(Index), PC, Annotations); if (gotInst) { - if (!NoShowRawInsn || Arch == Triple::arm) { + if (ShowRawInsn || Arch == Triple::arm) { dumpBytes(makeArrayRef(Bytes.data() + Index, Size), outs()); } formatted_raw_ostream FormattedOS(outs()); @@ -7686,7 +7686,7 @@ raw_svector_ostream Annotations(AnnotationsBytes); if (DisAsm->getInstruction(Inst, InstSize, Bytes.slice(Index), PC, Annotations)) { - if (!NoLeadingAddr) { + if (LeadingAddr) { if (FullLeadingAddr) { if (MachOOF->is64Bit()) outs() << format("%016" PRIx64, PC); @@ -7696,7 +7696,7 @@ outs() << format("%8" PRIx64 ":", PC); } } - if (!NoShowRawInsn || Arch == Triple::arm) { + if (ShowRawInsn || Arch == Triple::arm) { outs() << "\t"; dumpBytes(makeArrayRef(Bytes.data() + Index, InstSize), outs()); } @@ -10211,7 +10211,7 @@ void objdump::printMachOFileHeader(const object::ObjectFile *Obj) { const MachOObjectFile *file = dyn_cast(Obj); - PrintMachHeader(file, !NonVerbose); + PrintMachHeader(file, Verbose); } void objdump::printMachOLoadCommands(const object::ObjectFile *Obj) { @@ -10229,7 +10229,7 @@ filetype = H.filetype; cputype = H.cputype; } - PrintLoadCommands(file, filetype, cputype, !NonVerbose); + PrintLoadCommands(file, filetype, cputype, Verbose); } //===----------------------------------------------------------------------===// Index: llvm/tools/llvm-objdump/llvm-objdump.h =================================================================== --- llvm/tools/llvm-objdump/llvm-objdump.h +++ llvm/tools/llvm-objdump/llvm-objdump.h @@ -36,10 +36,9 @@ extern bool DisassembleAll; extern DIDumpType DwarfDumpType; extern std::vector FilterSections; +extern bool LeadingAddr; extern std::vector MAttrs; extern std::string MCPU; -extern bool NoShowRawInsn; -extern bool NoLeadingAddr; extern std::string Prefix; extern uint32_t PrefixStrip; extern bool PrintImmHex; @@ -47,6 +46,7 @@ extern bool Relocations; extern bool SectionHeaders; extern bool SectionContents; +extern bool ShowRawInsn; extern bool SymbolDescription; extern bool SymbolTable; extern std::string TripleName; Index: llvm/tools/llvm-objdump/llvm-objdump.cpp =================================================================== --- llvm/tools/llvm-objdump/llvm-objdump.cpp +++ llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -193,8 +193,8 @@ static bool MachOOpt; std::string objdump::MCPU; std::vector objdump::MAttrs; -bool objdump::NoShowRawInsn; -bool objdump::NoLeadingAddr; +bool objdump::ShowRawInsn; +bool objdump::LeadingAddr; static bool RawClangAST; bool objdump::Relocations; bool objdump::PrintImmHex; @@ -432,7 +432,7 @@ /// Get the column at which we want to start printing the instruction /// disassembly, taking into account anything which appears to the left of it. unsigned getInstStartColumn(const MCSubtargetInfo &STI) { - return NoShowRawInsn ? 16 : STI.getTargetTriple().isX86() ? 40 : 24; + return !ShowRawInsn ? 16 : STI.getTargetTriple().isX86() ? 40 : 24; } /// Stores a single expression representing the location of a source-level @@ -998,9 +998,9 @@ LVP.printBetweenInsts(OS, false); size_t Start = OS.tell(); - if (!NoLeadingAddr) + if (LeadingAddr) OS << format("%8" PRIx64 ":", Address.Address); - if (!NoShowRawInsn) { + if (ShowRawInsn) { OS << ' '; dumpBytes(Bytes, OS); } @@ -1031,9 +1031,9 @@ formatted_raw_ostream &OS) { uint32_t opcode = (Bytes[3] << 24) | (Bytes[2] << 16) | (Bytes[1] << 8) | Bytes[0]; - if (!NoLeadingAddr) + if (LeadingAddr) OS << format("%8" PRIx64 ":", Address); - if (!NoShowRawInsn) { + if (ShowRawInsn) { OS << "\t"; dumpBytes(Bytes.slice(0, 4), OS); OS << format("\t%08" PRIx32, opcode); @@ -1168,9 +1168,9 @@ LiveVariablePrinter &LVP) override { if (SP && (PrintSource || PrintLines)) SP->printSourceLine(OS, Address, ObjectFilename, LVP); - if (!NoLeadingAddr) + if (LeadingAddr) OS << format("%8" PRId64 ":", Address.Address / 8); - if (!NoShowRawInsn) { + if (ShowRawInsn) { OS << "\t"; dumpBytes(Bytes, OS); } @@ -1735,7 +1735,7 @@ } outs() << '\n'; - if (!NoLeadingAddr) + if (LeadingAddr) outs() << format(Is64Bits ? "%016" PRIx64 " " : "%08" PRIx64 " ", SectionAddr + Start + VMAAdjustment); if (Obj->isXCOFF() && SymbolDescription) { @@ -2853,7 +2853,7 @@ DataInCode = InputArgs.hasArg(OTOOL_G); FirstPrivateHeader = InputArgs.hasArg(OTOOL_h); IndirectSymbols = InputArgs.hasArg(OTOOL_I); - NoShowRawInsn = !InputArgs.hasArg(OTOOL_j); + ShowRawInsn = InputArgs.hasArg(OTOOL_j); PrivateHeaders = InputArgs.hasArg(OTOOL_l); DylibsUsed = InputArgs.hasArg(OTOOL_L); MCPU = InputArgs.getLastArgValue(OTOOL_mcpu_EQ).str(); @@ -2867,12 +2867,12 @@ } if (InputArgs.hasArg(OTOOL_t)) FilterSections.push_back("__TEXT,__text"); - NonVerbose = !(InputArgs.hasArg(OTOOL_v) || InputArgs.hasArg(OTOOL_V) || - InputArgs.hasArg(OTOOL_o)); - NoSymbolicOperands = !InputArgs.hasArg(OTOOL_V); + Verbose = InputArgs.hasArg(OTOOL_v) || InputArgs.hasArg(OTOOL_V) || + InputArgs.hasArg(OTOOL_o); + SymbolicOperands = InputArgs.hasArg(OTOOL_V); if (InputArgs.hasArg(OTOOL_x)) FilterSections.push_back(",__text"); - NoLeadingAddr = NoLeadingHeaders = InputArgs.hasArg(OTOOL_X); + LeadingAddr = LeadingHeaders = !InputArgs.hasArg(OTOOL_X); InputFilenames = InputArgs.getAllArgValues(OTOOL_INPUT); if (InputFilenames.empty()) @@ -2914,8 +2914,8 @@ MachOOpt = InputArgs.hasArg(OBJDUMP_macho); MCPU = InputArgs.getLastArgValue(OBJDUMP_mcpu_EQ).str(); MAttrs = commaSeparatedValues(InputArgs, OBJDUMP_mattr_EQ); - NoShowRawInsn = InputArgs.hasArg(OBJDUMP_no_show_raw_insn); - NoLeadingAddr = InputArgs.hasArg(OBJDUMP_no_leading_addr); + ShowRawInsn = !InputArgs.hasArg(OBJDUMP_no_show_raw_insn); + LeadingAddr = !InputArgs.hasArg(OBJDUMP_no_leading_addr); RawClangAST = InputArgs.hasArg(OBJDUMP_raw_clang_ast); Relocations = InputArgs.hasArg(OBJDUMP_reloc); PrintImmHex =