Changes for migrating to using register mask operands.
[oota-llvm.git] / lib / Target / Mips / MipsISelLowering.cpp
index 725e4a61a962e9065e7db1bc4c35833b8ac61883..dc894d9e31be8ca5db440f2cdb0e21ed43a0b0c2 100644 (file)
@@ -2455,6 +2455,12 @@ MipsTargetLowering::LowerCall(SDValue InChain, SDValue Callee,
     Ops.push_back(DAG.getRegister(RegsToPass[i].first,
                                   RegsToPass[i].second.getValueType()));
 
+  // Add a register mask operand representing the call-preserved registers.
+  const TargetRegisterInfo *TRI = getTargetMachine().getRegisterInfo();
+  const uint32_t *Mask = TRI->getCallPreservedMask(CallConv);
+  assert(Mask && "Missing call preserved mask for calling convention");
+  Ops.push_back(DAG.getRegisterMask(Mask));
+
   if (InFlag.getNode())
     Ops.push_back(InFlag);