mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-25 10:27:04 +00:00
Add the option, -no-leading-addr llvm-objdump used with -macho and
-disassemble or -section to not print the leading addresses on each line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232547 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -63,6 +63,10 @@ static cl::opt<std::string> DSYMFile("dsym",
|
||||
static cl::opt<bool> FullLeadingAddr("full-leading-addr",
|
||||
cl::desc("Print full leading address"));
|
||||
|
||||
static cl::opt<bool> NoLeadingAddr("no-leading-addr",
|
||||
cl::desc("Print no leading address"));
|
||||
|
||||
|
||||
static cl::opt<bool>
|
||||
PrintImmHex("print-imm-hex",
|
||||
cl::desc("Use hex format for immediate values"));
|
||||
@@ -1072,20 +1076,20 @@ static void DumpSectionContents(StringRef Filename, MachOObjectFile *O,
|
||||
outs() << "zerofill section and has no contents in the file\n";
|
||||
break;
|
||||
case MachO::S_CSTRING_LITERALS:
|
||||
DumpCstringSection(O, sect, sect_size, sect_addr, verbose);
|
||||
DumpCstringSection(O, sect, sect_size, sect_addr, !NoLeadingAddr);
|
||||
break;
|
||||
case MachO::S_4BYTE_LITERALS:
|
||||
DumpLiteral4Section(O, sect, sect_size, sect_addr, verbose);
|
||||
DumpLiteral4Section(O, sect, sect_size, sect_addr, !NoLeadingAddr);
|
||||
break;
|
||||
case MachO::S_8BYTE_LITERALS:
|
||||
DumpLiteral8Section(O, sect, sect_size, sect_addr, verbose);
|
||||
DumpLiteral8Section(O, sect, sect_size, sect_addr, !NoLeadingAddr);
|
||||
break;
|
||||
case MachO::S_16BYTE_LITERALS:
|
||||
DumpLiteral16Section(O, sect, sect_size, sect_addr, verbose);
|
||||
break;
|
||||
DumpLiteral16Section(O, sect, sect_size, sect_addr, !NoLeadingAddr);
|
||||
break;
|
||||
case MachO::S_LITERAL_POINTERS:
|
||||
DumpLiteralPointerSection(O, Section, sect, sect_size, sect_addr,
|
||||
verbose);
|
||||
!NoLeadingAddr);
|
||||
break;
|
||||
case MachO::S_MOD_INIT_FUNC_POINTERS:
|
||||
case MachO::S_MOD_TERM_FUNC_POINTERS:
|
||||
@@ -3290,13 +3294,15 @@ static void DisassembleMachO(StringRef Filename, MachOObjectFile *MachOOF,
|
||||
MCInst Inst;
|
||||
|
||||
uint64_t PC = SectAddress + Index;
|
||||
if (FullLeadingAddr) {
|
||||
if (MachOOF->is64Bit())
|
||||
outs() << format("%016" PRIx64, PC);
|
||||
else
|
||||
outs() << format("%08" PRIx64, PC);
|
||||
} else {
|
||||
outs() << format("%8" PRIx64 ":", PC);
|
||||
if (!NoLeadingAddr) {
|
||||
if (FullLeadingAddr) {
|
||||
if (MachOOF->is64Bit())
|
||||
outs() << format("%016" PRIx64, PC);
|
||||
else
|
||||
outs() << format("%08" PRIx64, PC);
|
||||
} else {
|
||||
outs() << format("%8" PRIx64 ":", PC);
|
||||
}
|
||||
}
|
||||
if (!NoShowRawInsn)
|
||||
outs() << "\t";
|
||||
@@ -3388,13 +3394,15 @@ static void DisassembleMachO(StringRef Filename, MachOObjectFile *MachOOF,
|
||||
uint64_t PC = SectAddress + Index;
|
||||
if (DisAsm->getInstruction(Inst, InstSize, Bytes.slice(Index), PC,
|
||||
DebugOut, nulls())) {
|
||||
if (FullLeadingAddr) {
|
||||
if (MachOOF->is64Bit())
|
||||
outs() << format("%016" PRIx64, PC);
|
||||
else
|
||||
outs() << format("%08" PRIx64, PC);
|
||||
} else {
|
||||
outs() << format("%8" PRIx64 ":", PC);
|
||||
if (!NoLeadingAddr) {
|
||||
if (FullLeadingAddr) {
|
||||
if (MachOOF->is64Bit())
|
||||
outs() << format("%016" PRIx64, PC);
|
||||
else
|
||||
outs() << format("%08" PRIx64, PC);
|
||||
} else {
|
||||
outs() << format("%8" PRIx64 ":", PC);
|
||||
}
|
||||
}
|
||||
if (!NoShowRawInsn) {
|
||||
outs() << "\t";
|
||||
|
||||
Reference in New Issue
Block a user