Fixed printing of offset operand for RETURN instruction.
authorVikram S. Adve <vadve@cs.uiuc.edu>
Sat, 20 Oct 2001 21:33:50 +0000 (21:33 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Sat, 20 Oct 2001 21:33:50 +0000 (21:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@928 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/SparcV9AsmPrinter.cpp

index 6c6d3a3de89beb05c18cab7c4e9bd25860268d4b..1280d5ac6de46ad00c9a10ae3ab0aad1f2399916 100644 (file)
@@ -110,7 +110,7 @@ private :
     case BRLEZ: case BRLZ:
     case BRNZ:  case BRGZ:
     case BRGEZ:   return 1 << 0;
-    case RETURN:  return 1 << 1;  // Remove Arg #2 which is zero
+      // case RETURN:  return 1 << 1;  // Remove Arg #2 which is zero
 
     default:      return 0;       // By default, don't hack operands...
     }
@@ -140,6 +140,8 @@ void SparcAsmPrinter::printOperand(const MachineOperand &Op) {
       Out << "\t<*NULL Value*>";
     } else if (const BasicBlock *BB = dyn_cast<const BasicBlock>(Val)) {
       Out << getID(BB);
+    } else if (const Method *M = dyn_cast<const Method>(Val)) {
+      Out << getID(M);
     } else {
       Out << "<unknown value=" << Val << ">";
     }
@@ -171,6 +173,15 @@ void SparcAsmPrinter::emitMachineInst(const MachineInstr *MI) {
     printOperand(MI->getOperand(2));
     Out << endl;
     return;
+    
+  case RETURN:
+    assert(MI->getNumOperands() == 2 && "Unexpected RETURN instr!");
+    printOperand(MI->getOperand(0));
+    Out << "+";
+    printOperand(MI->getOperand(1));
+    Out << endl;
+    return;
+    
   default: break;
   }