From 0c40c548c08c145c5fe387e3c326ee572428b291 Mon Sep 17 00:00:00 2001 From: Duraid Madina Date: Thu, 14 Apr 2005 10:08:01 +0000 Subject: [PATCH] print negative 64 bit immediates as negative numbers, makes things a little easier on the eyes, not that numbers like 18446744073709541376 are bad or anything llvm-svn: 21300 --- lib/Target/IA64/IA64AsmPrinter.cpp | 6 +++++- lib/Target/IA64/IA64InstrInfo.td | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/Target/IA64/IA64AsmPrinter.cpp b/lib/Target/IA64/IA64AsmPrinter.cpp index 2846a044a28..c1a9c40d517 100644 --- a/lib/Target/IA64/IA64AsmPrinter.cpp +++ b/lib/Target/IA64/IA64AsmPrinter.cpp @@ -247,7 +247,11 @@ namespace { MVT::ValueType VT) { O << (uint64_t)MI->getOperand(OpNo).getImmedValue(); } - + void printS64ImmOperand(const MachineInstr *MI, unsigned OpNo, + MVT::ValueType VT) { + O << (int64_t)MI->getOperand(OpNo).getImmedValue(); + } + void printCallOperand(const MachineInstr *MI, unsigned OpNo, MVT::ValueType VT) { printOp(MI->getOperand(OpNo), true); // this is a br.call instruction diff --git a/lib/Target/IA64/IA64InstrInfo.td b/lib/Target/IA64/IA64InstrInfo.td index 5cc33120838..92e68eb02c4 100644 --- a/lib/Target/IA64/IA64InstrInfo.td +++ b/lib/Target/IA64/IA64InstrInfo.td @@ -28,6 +28,9 @@ def s22imm : Operand { def u64imm : Operand { let PrintMethod = "printU64ImmOperand"; } +def s64imm : Operand { + let PrintMethod = "printS64ImmOperand"; +} // the asmprinter needs to know about calls let PrintMethod = "printCallOperand" in @@ -89,7 +92,7 @@ def MOVSIMM14 : AForm<0x03, 0x0b, (ops GR:$dst, s14imm:$imm), "mov $dst = $imm;;">; def MOVSIMM22 : AForm<0x03, 0x0b, (ops GR:$dst, s22imm:$imm), "mov $dst = $imm;;">; -def MOVLIMM64 : AForm<0x03, 0x0b, (ops GR:$dst, u64imm:$imm), +def MOVLIMM64 : AForm<0x03, 0x0b, (ops GR:$dst, s64imm:$imm), "movl $dst = $imm;;">; def AND : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src1, GR:$src2),