From 3fdf7cfba014838471cb056f44c038815d2826ad Mon Sep 17 00:00:00 2001 From: Jim Grosbach Date: Wed, 11 Jun 2014 20:26:40 +0000 Subject: [PATCH] llvm-mc: Add option for prefering hex format disassembly. Previously there was a separate mode entirely (--hdis vs. --disassemble). It makes a bit more sense for the immediate printing style to be a flag for --disassmeble rather than an entirely different thing. llvm-svn: 210700 --- llvm/test/MC/Disassembler/ARM/hex-immediates.txt | 2 +- llvm/test/MC/Disassembler/X86/hex-immediates.txt | 2 +- llvm/test/MC/Disassembler/X86/moffs.txt | 6 +++--- llvm/tools/llvm-mc/llvm-mc.cpp | 18 +++++++++--------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/llvm/test/MC/Disassembler/ARM/hex-immediates.txt b/llvm/test/MC/Disassembler/ARM/hex-immediates.txt index 2634d7e..f30e05b 100644 --- a/llvm/test/MC/Disassembler/ARM/hex-immediates.txt +++ b/llvm/test/MC/Disassembler/ARM/hex-immediates.txt @@ -1,4 +1,4 @@ -# RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -hdis < %s | FileCheck %s +# RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 --disassemble --print-imm-hex < %s | FileCheck %s # CHECK: ldr r4, [pc, #0x20] 0x08 0x4c # CHECK: sub sp, #0x84 diff --git a/llvm/test/MC/Disassembler/X86/hex-immediates.txt b/llvm/test/MC/Disassembler/X86/hex-immediates.txt index 80d2448..fb76c26 100644 --- a/llvm/test/MC/Disassembler/X86/hex-immediates.txt +++ b/llvm/test/MC/Disassembler/X86/hex-immediates.txt @@ -1,4 +1,4 @@ -# RUN: llvm-mc --hdis %s -triple=x86_64-apple-darwin9 2>&1 | FileCheck %s +# RUN: llvm-mc --print-imm-hex --disassemble %s -triple=x86_64-apple-darwin9 2>&1 | FileCheck %s # CHECK: movabsq $0x7fffffffffffffff, %rcx 0x48 0xb9 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f diff --git a/llvm/test/MC/Disassembler/X86/moffs.txt b/llvm/test/MC/Disassembler/X86/moffs.txt index 67d64e8..dd2664c 100644 --- a/llvm/test/MC/Disassembler/X86/moffs.txt +++ b/llvm/test/MC/Disassembler/X86/moffs.txt @@ -1,6 +1,6 @@ -# RUN: llvm-mc --hdis %s -triple=i686-linux-gnu-code16 | FileCheck --check-prefix=16 %s -# RUN: llvm-mc --hdis %s -triple=i686-linux-gnu | FileCheck --check-prefix=32 %s -# RUN: llvm-mc --hdis %s -triple=x86_64-linux-gnu | FileCheck --check-prefix=64 %s +# RUN: llvm-mc --disassemble --print-imm-hex %s -triple=i686-linux-gnu-code16 | FileCheck --check-prefix=16 %s +# RUN: llvm-mc --disassemble --print-imm-hex %s -triple=i686-linux-gnu | FileCheck --check-prefix=32 %s +# RUN: llvm-mc --disassemble --print-imm-hex %s -triple=x86_64-linux-gnu | FileCheck --check-prefix=64 %s # 16: movb 0x5a5a, %al # 32: movb 0x5a5a5a5a, %al diff --git a/llvm/tools/llvm-mc/llvm-mc.cpp b/llvm/tools/llvm-mc/llvm-mc.cpp index 84d578b..e5d38d2 100644 --- a/llvm/tools/llvm-mc/llvm-mc.cpp +++ b/llvm/tools/llvm-mc/llvm-mc.cpp @@ -65,6 +65,10 @@ static cl::opt OutputAsmVariant("output-asm-variant", cl::desc("Syntax variant to use for output printing")); +static cl::opt +PrintImmHex("print-imm-hex", cl::init(false), + cl::desc("Prefer hex format for immediate values")); + enum OutputFileType { OFT_Null, OFT_AssemblyFile, @@ -167,7 +171,6 @@ enum ActionType { AC_Assemble, AC_Disassemble, AC_MDisassemble, - AC_HDisassemble }; static cl::opt @@ -181,9 +184,6 @@ Action(cl::desc("Action to perform:"), "Disassemble strings of hex bytes"), clEnumValN(AC_MDisassemble, "mdis", "Marked up disassembly of strings of hex bytes"), - clEnumValN(AC_HDisassemble, "hdis", - "Disassemble strings of hex bytes printing " - "immediates as hex"), clEnumValEnd)); static const Target *GetTarget(const char *ProgName) { @@ -445,6 +445,11 @@ int main(int argc, char **argv) { if (FileType == OFT_AssemblyFile) { IP = TheTarget->createMCInstPrinter(OutputAsmVariant, *MAI, *MCII, *MRI, *STI); + + // Set the display preference for hex vs. decimal immediates. + IP->setPrintImmHex(PrintImmHex); + + // Set up the AsmStreamer. MCCodeEmitter *CE = nullptr; MCAsmBackend *MAB = nullptr; if (ShowEncoding) { @@ -480,11 +485,6 @@ int main(int argc, char **argv) { IP->setUseMarkup(1); disassemble = true; break; - case AC_HDisassemble: - assert(IP && "Expected assembly output"); - IP->setPrintImmHex(1); - disassemble = true; - break; case AC_Disassemble: disassemble = true; break; -- 2.7.4