Fix a bug I introduced (assertion failed: Unknown operand type), and convert to predi...
authorChris Lattner <sabre@nondot.org>
Mon, 10 Sep 2001 19:43:38 +0000 (19:43 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 10 Sep 2001 19:43:38 +0000 (19:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@531 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MachineInstr.cpp

index 7a5214d260d99fd9317500f11927314d937e0d16..63acea14b4139bb6723a787ce464f322401ab7d3 100644 (file)
@@ -127,17 +127,12 @@ ostream &operator<<(ostream &os, const MachineOperand &mop) {
   case MachineOperand::MO_CCRegister:
     os << "%ccreg";
     return OutputOperand(os, mop);
-    
   case MachineOperand::MO_SignExtendedImmed:
     return os << mop.immedVal;
-    
   case MachineOperand::MO_UnextendedImmed:
     return os << mop.immedVal;
-    
   case MachineOperand::MO_PCRelativeDisp:
-    os << "%disp(label ";
-    return OutputOperand(os, mop) << ")";
-    
+    return os << "%disp(label " << mop.getVRegValue() << ")";
   default:
     assert(0 && "Unrecognized operand type");
     break;
@@ -212,12 +207,12 @@ Set3OperandsFromInstrJUNK(MachineInstr* minstr,
     minstr->SetMachineOperand(op1Position, /*regNum*/ target.zeroRegNum);
   else
     {
-      if (op1Value->getValueType() == Value::ConstantVal)
-       {// value is constant and must be loaded from constant pool
-         returnFlags = returnFlags | (1 << op1Position);
-       }
-      minstr->SetMachineOperand(op1Position,MachineOperand::MO_VirtualRegister,
-                                           op1Value);
+      if (op1Value->isConstant()) {
+       // value is constant and must be loaded from constant pool
+       returnFlags = returnFlags | (1 << op1Position);
+      }
+      minstr->SetMachineOperand(op1Position, MachineOperand::MO_VirtualRegister,
+                               op1Value);
     }
   
   // Check if operand 2 (if any) fits in the immed. field of the instruction,
@@ -237,10 +232,10 @@ Set3OperandsFromInstrJUNK(MachineInstr* minstr,
        minstr->SetMachineOperand(op2Position, machineRegNum);
       else if (op2type == MachineOperand::MO_VirtualRegister)
        {
-         if (op2Value->getValueType() == Value::ConstantVal)
-           {// value is constant and must be loaded from constant pool
-             returnFlags = returnFlags | (1 << op2Position);
-           }
+         if (op2Value->isConstant()) {
+           // value is constant and must be loaded from constant pool
+           returnFlags = returnFlags | (1 << op2Position);
+         }
          minstr->SetMachineOperand(op2Position, op2type, op2Value);
        }
       else