diff options
| author | Kevin Enderby <enderby@apple.com> | 2016-04-28 20:14:13 +0000 |
|---|---|---|
| committer | Kevin Enderby <enderby@apple.com> | 2016-04-28 20:14:13 +0000 |
| commit | 4b627beea86a50b67cd8346fb4e35374576ad01d (patch) | |
| tree | 81eb7f7a16445c95bf63723593a16195adbc82e9 /llvm | |
| parent | 84c3a8ba3dfcb0771ea6bbbd3bbb53e7b0e8d1a3 (diff) | |
| download | bcm5719-llvm-4b627beea86a50b67cd8346fb4e35374576ad01d.tar.gz bcm5719-llvm-4b627beea86a50b67cd8346fb4e35374576ad01d.zip | |
Update llvm-objdump for disassembly of ARM Mach-O files to always include the opcode bytes.
As this is the expected behavior of the old darwin otool(1) for ARM Mach-O files.
rdar://25896249
llvm-svn: 267929
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test | 8 | ||||
| -rw-r--r-- | llvm/tools/llvm-objdump/MachODump.cpp | 8 |
2 files changed, 9 insertions, 7 deletions
diff --git a/llvm/test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test b/llvm/test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test index eeeab526cf8..2b7e44e940b 100644 --- a/llvm/test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test +++ b/llvm/test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test @@ -1,8 +1,8 @@ // RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.obj.macho-arm | FileCheck %s -check-prefix=OBJ // RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.exe.macho-arm | FileCheck %s -check-prefix=EXE -OBJ: 00000006 movw r3, :lower16:((54-14)-4) -OBJ: 0000000a movt r3, :upper16:((54-14)-4) -OBJ: 00000024 bl _printf +OBJ: 00000006 40 f2 24 03 movw r3, :lower16:((54-14)-4) +OBJ: 0000000a c0 f2 00 03 movt r3, :upper16:((54-14)-4) +OBJ: 00000024 ff f7 ec ff bl _printf -EXE: 0000bfa8 blx 0xbffc @ symbol stub for: _printf +EXE: 0000bfa8 00 f0 28 e8 blx 0xbffc @ symbol stub for: _printf diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp index bcce08ec51b..1632e37063c 100644 --- a/llvm/tools/llvm-objdump/MachODump.cpp +++ b/llvm/tools/llvm-objdump/MachODump.cpp @@ -6215,6 +6215,8 @@ static void DisassembleMachO(StringRef Filename, MachOObjectFile *MachOOF, ThumbSymbolizerInfo.adrp_addr = 0; ThumbSymbolizerInfo.adrp_inst = 0; + unsigned int Arch = MachOOF->getArch(); + // Disassemble symbol by symbol. for (unsigned SymIdx = 0; SymIdx != Symbols.size(); SymIdx++) { Expected<StringRef> SymNameOrErr = Symbols[SymIdx].getName(); @@ -6297,7 +6299,7 @@ static void DisassembleMachO(StringRef Filename, MachOObjectFile *MachOOF, outs() << format("%8" PRIx64 ":", PC); } } - if (!NoShowRawInsn) + if (!NoShowRawInsn || Arch == Triple::arm) outs() << "\t"; // Check the data in code table here to see if this is data not an @@ -6330,7 +6332,7 @@ static void DisassembleMachO(StringRef Filename, MachOObjectFile *MachOOF, gotInst = DisAsm->getInstruction(Inst, Size, Bytes.slice(Index), PC, DebugOut, Annotations); if (gotInst) { - if (!NoShowRawInsn) { + if (!NoShowRawInsn || Arch == Triple::arm) { dumpBytes(makeArrayRef(Bytes.data() + Index, Size), outs()); } formatted_raw_ostream FormattedOS(outs()); @@ -6400,7 +6402,7 @@ static void DisassembleMachO(StringRef Filename, MachOObjectFile *MachOOF, outs() << format("%8" PRIx64 ":", PC); } } - if (!NoShowRawInsn) { + if (!NoShowRawInsn || Arch == Triple::arm) { outs() << "\t"; dumpBytes(makeArrayRef(Bytes.data() + Index, InstSize), outs()); } |

