diff options
Diffstat (limited to 'lib/Target/Mips/Mips16ISelDAGToDAG.cpp')
-rw-r--r-- | lib/Target/Mips/Mips16ISelDAGToDAG.cpp | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/lib/Target/Mips/Mips16ISelDAGToDAG.cpp b/lib/Target/Mips/Mips16ISelDAGToDAG.cpp index ce193b1734f3..a0d5bd9ef305 100644 --- a/lib/Target/Mips/Mips16ISelDAGToDAG.cpp +++ b/lib/Target/Mips/Mips16ISelDAGToDAG.cpp @@ -192,41 +192,6 @@ bool Mips16DAGToDAGISel::trySelect(SDNode *Node) { default: break; - case ISD::SUBE: - case ISD::ADDE: { - SDValue InFlag = Node->getOperand(2), CmpLHS; - unsigned Opc = InFlag.getOpcode(); - (void)Opc; - assert(((Opc == ISD::ADDC || Opc == ISD::ADDE) || - (Opc == ISD::SUBC || Opc == ISD::SUBE)) && - "(ADD|SUB)E flag operand must come from (ADD|SUB)C/E insn"); - - unsigned MOp; - if (Opcode == ISD::ADDE) { - CmpLHS = InFlag.getValue(0); - MOp = Mips::AdduRxRyRz16; - } else { - CmpLHS = InFlag.getOperand(0); - MOp = Mips::SubuRxRyRz16; - } - - SDValue Ops[] = {CmpLHS, InFlag.getOperand(1)}; - - SDValue LHS = Node->getOperand(0); - SDValue RHS = Node->getOperand(1); - - EVT VT = LHS.getValueType(); - - unsigned Sltu_op = Mips::SltuRxRyRz16; - SDNode *Carry = CurDAG->getMachineNode(Sltu_op, DL, VT, Ops); - unsigned Addu_op = Mips::AdduRxRyRz16; - SDNode *AddCarry = - CurDAG->getMachineNode(Addu_op, DL, VT, SDValue(Carry, 0), RHS); - - CurDAG->SelectNodeTo(Node, MOp, VT, MVT::Glue, LHS, SDValue(AddCarry, 0)); - return true; - } - /// Mul with two results case ISD::SMUL_LOHI: case ISD::UMUL_LOHI: { |