mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-21 18:24:23 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210700 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -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]
|
# CHECK: ldr r4, [pc, #0x20]
|
||||||
0x08 0x4c
|
0x08 0x4c
|
||||||
# CHECK: sub sp, #0x84
|
# CHECK: sub sp, #0x84
|
||||||
|
@ -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
|
# CHECK: movabsq $0x7fffffffffffffff, %rcx
|
||||||
0x48 0xb9 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f
|
0x48 0xb9 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# RUN: llvm-mc --hdis %s -triple=i686-linux-gnu-code16 | FileCheck --check-prefix=16 %s
|
# RUN: llvm-mc --disassemble --print-imm-hex %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 --disassemble --print-imm-hex %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=x86_64-linux-gnu | FileCheck --check-prefix=64 %s
|
||||||
|
|
||||||
# 16: movb 0x5a5a, %al
|
# 16: movb 0x5a5a, %al
|
||||||
# 32: movb 0x5a5a5a5a, %al
|
# 32: movb 0x5a5a5a5a, %al
|
||||||
|
@ -65,6 +65,10 @@ static cl::opt<unsigned>
|
|||||||
OutputAsmVariant("output-asm-variant",
|
OutputAsmVariant("output-asm-variant",
|
||||||
cl::desc("Syntax variant to use for output printing"));
|
cl::desc("Syntax variant to use for output printing"));
|
||||||
|
|
||||||
|
static cl::opt<bool>
|
||||||
|
PrintImmHex("print-imm-hex", cl::init(false),
|
||||||
|
cl::desc("Prefer hex format for immediate values"));
|
||||||
|
|
||||||
enum OutputFileType {
|
enum OutputFileType {
|
||||||
OFT_Null,
|
OFT_Null,
|
||||||
OFT_AssemblyFile,
|
OFT_AssemblyFile,
|
||||||
@ -167,7 +171,6 @@ enum ActionType {
|
|||||||
AC_Assemble,
|
AC_Assemble,
|
||||||
AC_Disassemble,
|
AC_Disassemble,
|
||||||
AC_MDisassemble,
|
AC_MDisassemble,
|
||||||
AC_HDisassemble
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static cl::opt<ActionType>
|
static cl::opt<ActionType>
|
||||||
@ -181,9 +184,6 @@ Action(cl::desc("Action to perform:"),
|
|||||||
"Disassemble strings of hex bytes"),
|
"Disassemble strings of hex bytes"),
|
||||||
clEnumValN(AC_MDisassemble, "mdis",
|
clEnumValN(AC_MDisassemble, "mdis",
|
||||||
"Marked up disassembly of strings of hex bytes"),
|
"Marked up disassembly of strings of hex bytes"),
|
||||||
clEnumValN(AC_HDisassemble, "hdis",
|
|
||||||
"Disassemble strings of hex bytes printing "
|
|
||||||
"immediates as hex"),
|
|
||||||
clEnumValEnd));
|
clEnumValEnd));
|
||||||
|
|
||||||
static const Target *GetTarget(const char *ProgName) {
|
static const Target *GetTarget(const char *ProgName) {
|
||||||
@ -445,6 +445,11 @@ int main(int argc, char **argv) {
|
|||||||
if (FileType == OFT_AssemblyFile) {
|
if (FileType == OFT_AssemblyFile) {
|
||||||
IP =
|
IP =
|
||||||
TheTarget->createMCInstPrinter(OutputAsmVariant, *MAI, *MCII, *MRI, *STI);
|
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;
|
MCCodeEmitter *CE = nullptr;
|
||||||
MCAsmBackend *MAB = nullptr;
|
MCAsmBackend *MAB = nullptr;
|
||||||
if (ShowEncoding) {
|
if (ShowEncoding) {
|
||||||
@ -480,11 +485,6 @@ int main(int argc, char **argv) {
|
|||||||
IP->setUseMarkup(1);
|
IP->setUseMarkup(1);
|
||||||
disassemble = true;
|
disassemble = true;
|
||||||
break;
|
break;
|
||||||
case AC_HDisassemble:
|
|
||||||
assert(IP && "Expected assembly output");
|
|
||||||
IP->setPrintImmHex(1);
|
|
||||||
disassemble = true;
|
|
||||||
break;
|
|
||||||
case AC_Disassemble:
|
case AC_Disassemble:
|
||||||
disassemble = true;
|
disassemble = true;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user