teach asmprinter to print s8/s14 operands
authorDuraid Madina <duraid@octopus.com.au>
Thu, 7 Apr 2005 12:34:36 +0000 (12:34 +0000)
committerDuraid Madina <duraid@octopus.com.au>
Thu, 7 Apr 2005 12:34:36 +0000 (12:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21131 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/IA64/IA64AsmPrinter.cpp

index 3b182d59453802fdf394c249ff8ff02ae88289a0..2759301d6b0324160773fde8eaf23476929f6899 100644 (file)
@@ -233,6 +233,18 @@ namespace {
                             MVT::ValueType VT) {
       O << (unsigned short)MI->getOperand(OpNo).getImmedValue();
     }
+    void printS8ImmOperand(const MachineInstr *MI, unsigned OpNo,
+                            MVT::ValueType VT) {
+      int val=(unsigned int)MI->getOperand(OpNo).getImmedValue();
+      if(val>=128) val=val-256; // if negative, flip sign
+      O << val;
+    }
+    void printS14ImmOperand(const MachineInstr *MI, unsigned OpNo,
+                            MVT::ValueType VT) {
+      int val=(unsigned int)MI->getOperand(OpNo).getImmedValue();
+      if(val>=8192) val=val-16384; // if negative, flip sign
+      O << val;
+    }
     void printS21ImmOperand(const MachineInstr *MI, unsigned OpNo,
                             MVT::ValueType VT) {
       O << (int)MI->getOperand(OpNo).getImmedValue(); // FIXME (21, not 32!)