From 8cc8dbc06236ff7baa359b59a29d843d22475f66 Mon Sep 17 00:00:00 2001 From: Colin LeMahieu Date: Sun, 7 Jun 2015 21:07:17 +0000 Subject: [PATCH] [objdump] Moving PrintImmHex out of MachODump and in to llvm-objdump and setting instprinter appropriately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239265 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/MC/X86/hex-immediates.s | 10 ++++++++++ tools/llvm-objdump/MachODump.cpp | 4 ---- tools/llvm-objdump/llvm-objdump.cpp | 5 +++++ tools/llvm-objdump/llvm-objdump.h | 1 + 4 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 test/MC/X86/hex-immediates.s diff --git a/test/MC/X86/hex-immediates.s b/test/MC/X86/hex-immediates.s new file mode 100644 index 00000000000..03f30423ae0 --- /dev/null +++ b/test/MC/X86/hex-immediates.s @@ -0,0 +1,10 @@ +# RUN: llvm-mc -filetype=obj %s -triple=x86_64-apple-darwin9 | llvm-objdump -d --print-imm-hex - | FileCheck %s + +# CHECK: movabsq $0x7fffffffffffffff, %rcx +movabsq $0x7fffffffffffffff, %rcx +# CHECK: leaq 0x3e2(%rip), %rdi +leaq 0x3e2(%rip), %rdi +# CHECK: subq $0x40, %rsp +subq $0x40, %rsp +# CHECK: leal (,%r14,4), %eax +leal (,%r14,4), %eax diff --git a/tools/llvm-objdump/MachODump.cpp b/tools/llvm-objdump/MachODump.cpp index f5e39fc073d..bf7451eb86d 100644 --- a/tools/llvm-objdump/MachODump.cpp +++ b/tools/llvm-objdump/MachODump.cpp @@ -67,10 +67,6 @@ static cl::opt FullLeadingAddr("full-leading-addr", static cl::opt NoLeadingAddr("no-leading-addr", cl::desc("Print no leading address")); -static cl::opt - PrintImmHex("print-imm-hex", - cl::desc("Use hex format for immediate values")); - cl::opt llvm::UniversalHeaders("universal-headers", cl::desc("Print Mach-O universal headers " "(requires -macho)")); diff --git a/tools/llvm-objdump/llvm-objdump.cpp b/tools/llvm-objdump/llvm-objdump.cpp index 58f6db0465d..1460fb0f0ab 100644 --- a/tools/llvm-objdump/llvm-objdump.cpp +++ b/tools/llvm-objdump/llvm-objdump.cpp @@ -149,6 +149,10 @@ static cl::alias PrivateHeadersShort("p", cl::desc("Alias for --private-headers"), cl::aliasopt(PrivateHeaders)); +cl::opt + llvm::PrintImmHex("print-imm-hex", + cl::desc("Use hex format for immediate values")); + static StringRef ToolName; static int ReturnValue = EXIT_SUCCESS; @@ -743,6 +747,7 @@ static void DisassembleObject(const ObjectFile *Obj, bool InlineRelocs) { << '\n'; return; } + IP->setPrintImmHex(PrintImmHex); PrettyPrinter &PIP = selectPrettyPrinter(Triple(TripleName)); StringRef Fmt = Obj->getBytesInAddress() > 4 ? "\t\t%016" PRIx64 ": " : diff --git a/tools/llvm-objdump/llvm-objdump.h b/tools/llvm-objdump/llvm-objdump.h index 276bdffb9f4..b4d34f4033b 100644 --- a/tools/llvm-objdump/llvm-objdump.h +++ b/tools/llvm-objdump/llvm-objdump.h @@ -51,6 +51,7 @@ extern cl::opt SectionHeaders; extern cl::opt SectionContents; extern cl::opt SymbolTable; extern cl::opt UnwindInfo; +extern cl::opt PrintImmHex; // Various helper functions. bool error(std::error_code ec); -- 2.34.1