mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-07 11:33:44 +00:00
ArrayRefize getMachineNode(). No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179901 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
87c1e42be7
commit
2a8bea7a8e
@ -810,31 +810,32 @@ public:
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT,
|
||||
SDValue Op1, SDValue Op2);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT,
|
||||
SDValue Op1, SDValue Op2, SDValue Op3);
|
||||
SDValue Op1, SDValue Op2, SDValue Op3);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT,
|
||||
const SDValue *Ops, unsigned NumOps);
|
||||
ArrayRef<SDValue> Ops);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1, EVT VT2);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1, EVT VT2,
|
||||
SDValue Op1);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1,
|
||||
EVT VT2, SDValue Op1, SDValue Op2);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1,
|
||||
EVT VT2, SDValue Op1, SDValue Op2, SDValue Op3);
|
||||
SDValue Op1);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1, EVT VT2,
|
||||
const SDValue *Ops, unsigned NumOps);
|
||||
SDValue Op1, SDValue Op2);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1, EVT VT2,
|
||||
EVT VT3, SDValue Op1, SDValue Op2);
|
||||
SDValue Op1, SDValue Op2, SDValue Op3);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1, EVT VT2,
|
||||
EVT VT3, SDValue Op1, SDValue Op2, SDValue Op3);
|
||||
ArrayRef<SDValue> Ops);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1, EVT VT2,
|
||||
EVT VT3, const SDValue *Ops, unsigned NumOps);
|
||||
EVT VT3, SDValue Op1, SDValue Op2);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1, EVT VT2,
|
||||
EVT VT3, EVT VT4, const SDValue *Ops, unsigned NumOps);
|
||||
EVT VT3, SDValue Op1, SDValue Op2,
|
||||
SDValue Op3);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1, EVT VT2,
|
||||
EVT VT3, ArrayRef<SDValue> Ops);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1, EVT VT2,
|
||||
EVT VT3, EVT VT4, ArrayRef<SDValue> Ops);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl,
|
||||
ArrayRef<EVT> ResultTys, const SDValue *Ops,
|
||||
unsigned NumOps);
|
||||
ArrayRef<EVT> ResultTys,
|
||||
ArrayRef<SDValue> Ops);
|
||||
MachineSDNode *getMachineNode(unsigned Opcode, DebugLoc dl, SDVTList VTs,
|
||||
const SDValue *Ops, unsigned NumOps);
|
||||
ArrayRef<SDValue> Ops);
|
||||
|
||||
/// getTargetExtractSubreg - A convenience function for creating
|
||||
/// TargetInstrInfo::EXTRACT_SUBREG nodes.
|
||||
|
@ -5252,14 +5252,14 @@ SDNode *SelectionDAG::MorphNodeTo(SDNode *N, unsigned Opc,
|
||||
MachineSDNode *
|
||||
SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT) {
|
||||
SDVTList VTs = getVTList(VT);
|
||||
return getMachineNode(Opcode, dl, VTs, 0, 0);
|
||||
return getMachineNode(Opcode, dl, VTs, ArrayRef<SDValue>());
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT, SDValue Op1) {
|
||||
SDVTList VTs = getVTList(VT);
|
||||
SDValue Ops[] = { Op1 };
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, array_lengthof(Ops));
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
@ -5267,7 +5267,7 @@ SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT,
|
||||
SDValue Op1, SDValue Op2) {
|
||||
SDVTList VTs = getVTList(VT);
|
||||
SDValue Ops[] = { Op1, Op2 };
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, array_lengthof(Ops));
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
@ -5275,20 +5275,20 @@ SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT,
|
||||
SDValue Op1, SDValue Op2, SDValue Op3) {
|
||||
SDVTList VTs = getVTList(VT);
|
||||
SDValue Ops[] = { Op1, Op2, Op3 };
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, array_lengthof(Ops));
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT,
|
||||
const SDValue *Ops, unsigned NumOps) {
|
||||
ArrayRef<SDValue> Ops) {
|
||||
SDVTList VTs = getVTList(VT);
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, NumOps);
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1, EVT VT2) {
|
||||
SDVTList VTs = getVTList(VT1, VT2);
|
||||
return getMachineNode(Opcode, dl, VTs, 0, 0);
|
||||
return getMachineNode(Opcode, dl, VTs, ArrayRef<SDValue>());
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
@ -5296,7 +5296,7 @@ SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl,
|
||||
EVT VT1, EVT VT2, SDValue Op1) {
|
||||
SDVTList VTs = getVTList(VT1, VT2);
|
||||
SDValue Ops[] = { Op1 };
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, array_lengthof(Ops));
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
@ -5304,7 +5304,7 @@ SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl,
|
||||
EVT VT1, EVT VT2, SDValue Op1, SDValue Op2) {
|
||||
SDVTList VTs = getVTList(VT1, VT2);
|
||||
SDValue Ops[] = { Op1, Op2 };
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, array_lengthof(Ops));
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
@ -5313,15 +5313,15 @@ SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl,
|
||||
SDValue Op2, SDValue Op3) {
|
||||
SDVTList VTs = getVTList(VT1, VT2);
|
||||
SDValue Ops[] = { Op1, Op2, Op3 };
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, array_lengthof(Ops));
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl,
|
||||
EVT VT1, EVT VT2,
|
||||
const SDValue *Ops, unsigned NumOps) {
|
||||
ArrayRef<SDValue> Ops) {
|
||||
SDVTList VTs = getVTList(VT1, VT2);
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, NumOps);
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
@ -5330,7 +5330,7 @@ SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl,
|
||||
SDValue Op1, SDValue Op2) {
|
||||
SDVTList VTs = getVTList(VT1, VT2, VT3);
|
||||
SDValue Ops[] = { Op1, Op2 };
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, array_lengthof(Ops));
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
@ -5339,39 +5339,41 @@ SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl,
|
||||
SDValue Op1, SDValue Op2, SDValue Op3) {
|
||||
SDVTList VTs = getVTList(VT1, VT2, VT3);
|
||||
SDValue Ops[] = { Op1, Op2, Op3 };
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, array_lengthof(Ops));
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl,
|
||||
EVT VT1, EVT VT2, EVT VT3,
|
||||
const SDValue *Ops, unsigned NumOps) {
|
||||
ArrayRef<SDValue> Ops) {
|
||||
SDVTList VTs = getVTList(VT1, VT2, VT3);
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, NumOps);
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl, EVT VT1,
|
||||
EVT VT2, EVT VT3, EVT VT4,
|
||||
const SDValue *Ops, unsigned NumOps) {
|
||||
ArrayRef<SDValue> Ops) {
|
||||
SDVTList VTs = getVTList(VT1, VT2, VT3, VT4);
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, NumOps);
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc dl,
|
||||
ArrayRef<EVT> ResultTys,
|
||||
const SDValue *Ops, unsigned NumOps) {
|
||||
ArrayRef<SDValue> Ops) {
|
||||
SDVTList VTs = getVTList(&ResultTys[0], ResultTys.size());
|
||||
return getMachineNode(Opcode, dl, VTs, Ops, NumOps);
|
||||
return getMachineNode(Opcode, dl, VTs, Ops);
|
||||
}
|
||||
|
||||
MachineSDNode *
|
||||
SelectionDAG::getMachineNode(unsigned Opcode, DebugLoc DL, SDVTList VTs,
|
||||
const SDValue *Ops, unsigned NumOps) {
|
||||
ArrayRef<SDValue> OpsArray) {
|
||||
bool DoCSE = VTs.VTs[VTs.NumVTs-1] != MVT::Glue;
|
||||
MachineSDNode *N;
|
||||
void *IP = 0;
|
||||
const SDValue *Ops = OpsArray.data();
|
||||
unsigned NumOps = OpsArray.size();
|
||||
|
||||
if (DoCSE) {
|
||||
FoldingSetNodeID ID;
|
||||
|
@ -2796,7 +2796,7 @@ SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable,
|
||||
// If this is a normal EmitNode command, just create the new node and
|
||||
// add the results to the RecordedNodes list.
|
||||
Res = CurDAG->getMachineNode(TargetOpc, NodeToMatch->getDebugLoc(),
|
||||
VTList, Ops.data(), Ops.size());
|
||||
VTList, Ops);
|
||||
|
||||
// Add all the non-glue/non-chain results to the RecordedNodes list.
|
||||
for (unsigned i = 0, e = VTs.size(); i != e; ++i) {
|
||||
|
@ -1469,14 +1469,14 @@ SDNode *ARMDAGToDAGISel::SelectARMIndexedLoad(SDNode *N) {
|
||||
SDValue Ops[]= { Base, AMOpc, getAL(CurDAG),
|
||||
CurDAG->getRegister(0, MVT::i32), Chain };
|
||||
return CurDAG->getMachineNode(Opcode, N->getDebugLoc(), MVT::i32,
|
||||
MVT::i32, MVT::Other, Ops, 5);
|
||||
MVT::i32, MVT::Other, Ops);
|
||||
} else {
|
||||
SDValue Chain = LD->getChain();
|
||||
SDValue Base = LD->getBasePtr();
|
||||
SDValue Ops[]= { Base, Offset, AMOpc, getAL(CurDAG),
|
||||
CurDAG->getRegister(0, MVT::i32), Chain };
|
||||
return CurDAG->getMachineNode(Opcode, N->getDebugLoc(), MVT::i32,
|
||||
MVT::i32, MVT::Other, Ops, 6);
|
||||
MVT::i32, MVT::Other, Ops);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1525,7 +1525,7 @@ SDNode *ARMDAGToDAGISel::SelectT2IndexedLoad(SDNode *N) {
|
||||
SDValue Ops[]= { Base, Offset, getAL(CurDAG),
|
||||
CurDAG->getRegister(0, MVT::i32), Chain };
|
||||
return CurDAG->getMachineNode(Opcode, N->getDebugLoc(), MVT::i32, MVT::i32,
|
||||
MVT::Other, Ops, 5);
|
||||
MVT::Other, Ops);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
@ -1539,7 +1539,7 @@ SDNode *ARMDAGToDAGISel::createGPRPairNode(EVT VT, SDValue V0, SDValue V1) {
|
||||
SDValue SubReg0 = CurDAG->getTargetConstant(ARM::gsub_0, MVT::i32);
|
||||
SDValue SubReg1 = CurDAG->getTargetConstant(ARM::gsub_1, MVT::i32);
|
||||
const SDValue Ops[] = { RegClass, V0, SubReg0, V1, SubReg1 };
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops, 5);
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
|
||||
}
|
||||
|
||||
/// \brief Form a D register from a pair of S registers.
|
||||
@ -1550,7 +1550,7 @@ SDNode *ARMDAGToDAGISel::createSRegPairNode(EVT VT, SDValue V0, SDValue V1) {
|
||||
SDValue SubReg0 = CurDAG->getTargetConstant(ARM::ssub_0, MVT::i32);
|
||||
SDValue SubReg1 = CurDAG->getTargetConstant(ARM::ssub_1, MVT::i32);
|
||||
const SDValue Ops[] = { RegClass, V0, SubReg0, V1, SubReg1 };
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops, 5);
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
|
||||
}
|
||||
|
||||
/// \brief Form a quad register from a pair of D registers.
|
||||
@ -1560,7 +1560,7 @@ SDNode *ARMDAGToDAGISel::createDRegPairNode(EVT VT, SDValue V0, SDValue V1) {
|
||||
SDValue SubReg0 = CurDAG->getTargetConstant(ARM::dsub_0, MVT::i32);
|
||||
SDValue SubReg1 = CurDAG->getTargetConstant(ARM::dsub_1, MVT::i32);
|
||||
const SDValue Ops[] = { RegClass, V0, SubReg0, V1, SubReg1 };
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops, 5);
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
|
||||
}
|
||||
|
||||
/// \brief Form 4 consecutive D registers from a pair of Q registers.
|
||||
@ -1570,7 +1570,7 @@ SDNode *ARMDAGToDAGISel::createQRegPairNode(EVT VT, SDValue V0, SDValue V1) {
|
||||
SDValue SubReg0 = CurDAG->getTargetConstant(ARM::qsub_0, MVT::i32);
|
||||
SDValue SubReg1 = CurDAG->getTargetConstant(ARM::qsub_1, MVT::i32);
|
||||
const SDValue Ops[] = { RegClass, V0, SubReg0, V1, SubReg1 };
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops, 5);
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
|
||||
}
|
||||
|
||||
/// \brief Form 4 consecutive S registers.
|
||||
@ -1585,7 +1585,7 @@ SDNode *ARMDAGToDAGISel::createQuadSRegsNode(EVT VT, SDValue V0, SDValue V1,
|
||||
SDValue SubReg3 = CurDAG->getTargetConstant(ARM::ssub_3, MVT::i32);
|
||||
const SDValue Ops[] = { RegClass, V0, SubReg0, V1, SubReg1,
|
||||
V2, SubReg2, V3, SubReg3 };
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops, 9);
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
|
||||
}
|
||||
|
||||
/// \brief Form 4 consecutive D registers.
|
||||
@ -1599,7 +1599,7 @@ SDNode *ARMDAGToDAGISel::createQuadDRegsNode(EVT VT, SDValue V0, SDValue V1,
|
||||
SDValue SubReg3 = CurDAG->getTargetConstant(ARM::dsub_3, MVT::i32);
|
||||
const SDValue Ops[] = { RegClass, V0, SubReg0, V1, SubReg1,
|
||||
V2, SubReg2, V3, SubReg3 };
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops, 9);
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
|
||||
}
|
||||
|
||||
/// \brief Form 4 consecutive Q registers.
|
||||
@ -1613,7 +1613,7 @@ SDNode *ARMDAGToDAGISel::createQuadQRegsNode(EVT VT, SDValue V0, SDValue V1,
|
||||
SDValue SubReg3 = CurDAG->getTargetConstant(ARM::qsub_3, MVT::i32);
|
||||
const SDValue Ops[] = { RegClass, V0, SubReg0, V1, SubReg1,
|
||||
V2, SubReg2, V3, SubReg3 };
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops, 9);
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
|
||||
}
|
||||
|
||||
/// GetVLDSTAlign - Get the alignment (in bytes) for the alignment operand
|
||||
@ -1761,7 +1761,7 @@ SDNode *ARMDAGToDAGISel::SelectVLD(SDNode *N, bool isUpdating, unsigned NumVecs,
|
||||
Ops.push_back(Pred);
|
||||
Ops.push_back(Reg0);
|
||||
Ops.push_back(Chain);
|
||||
VLd = CurDAG->getMachineNode(Opc, dl, ResTys, Ops.data(), Ops.size());
|
||||
VLd = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
|
||||
|
||||
} else {
|
||||
// Otherwise, quad registers are loaded with two separate instructions,
|
||||
@ -1774,7 +1774,7 @@ SDNode *ARMDAGToDAGISel::SelectVLD(SDNode *N, bool isUpdating, unsigned NumVecs,
|
||||
SDValue(CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, dl, ResTy), 0);
|
||||
const SDValue OpsA[] = { MemAddr, Align, Reg0, ImplDef, Pred, Reg0, Chain };
|
||||
SDNode *VLdA = CurDAG->getMachineNode(QOpcodes0[OpcodeIndex], dl,
|
||||
ResTy, AddrTy, MVT::Other, OpsA, 7);
|
||||
ResTy, AddrTy, MVT::Other, OpsA);
|
||||
Chain = SDValue(VLdA, 2);
|
||||
|
||||
// Load the odd subregs.
|
||||
@ -1791,8 +1791,7 @@ SDNode *ARMDAGToDAGISel::SelectVLD(SDNode *N, bool isUpdating, unsigned NumVecs,
|
||||
Ops.push_back(Pred);
|
||||
Ops.push_back(Reg0);
|
||||
Ops.push_back(Chain);
|
||||
VLd = CurDAG->getMachineNode(QOpcodes1[OpcodeIndex], dl, ResTys,
|
||||
Ops.data(), Ops.size());
|
||||
VLd = CurDAG->getMachineNode(QOpcodes1[OpcodeIndex], dl, ResTys, Ops);
|
||||
}
|
||||
|
||||
// Transfer memoperands.
|
||||
@ -1913,8 +1912,7 @@ SDNode *ARMDAGToDAGISel::SelectVST(SDNode *N, bool isUpdating, unsigned NumVecs,
|
||||
Ops.push_back(Pred);
|
||||
Ops.push_back(Reg0);
|
||||
Ops.push_back(Chain);
|
||||
SDNode *VSt =
|
||||
CurDAG->getMachineNode(Opc, dl, ResTys, Ops.data(), Ops.size());
|
||||
SDNode *VSt = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
|
||||
|
||||
// Transfer memoperands.
|
||||
cast<MachineSDNode>(VSt)->setMemRefs(MemOp, MemOp + 1);
|
||||
@ -1939,7 +1937,7 @@ SDNode *ARMDAGToDAGISel::SelectVST(SDNode *N, bool isUpdating, unsigned NumVecs,
|
||||
const SDValue OpsA[] = { MemAddr, Align, Reg0, RegSeq, Pred, Reg0, Chain };
|
||||
SDNode *VStA = CurDAG->getMachineNode(QOpcodes0[OpcodeIndex], dl,
|
||||
MemAddr.getValueType(),
|
||||
MVT::Other, OpsA, 7);
|
||||
MVT::Other, OpsA);
|
||||
cast<MachineSDNode>(VStA)->setMemRefs(MemOp, MemOp + 1);
|
||||
Chain = SDValue(VStA, 1);
|
||||
|
||||
@ -1958,7 +1956,7 @@ SDNode *ARMDAGToDAGISel::SelectVST(SDNode *N, bool isUpdating, unsigned NumVecs,
|
||||
Ops.push_back(Reg0);
|
||||
Ops.push_back(Chain);
|
||||
SDNode *VStB = CurDAG->getMachineNode(QOpcodes1[OpcodeIndex], dl, ResTys,
|
||||
Ops.data(), Ops.size());
|
||||
Ops);
|
||||
cast<MachineSDNode>(VStB)->setMemRefs(MemOp, MemOp + 1);
|
||||
return VStB;
|
||||
}
|
||||
@ -2063,8 +2061,7 @@ SDNode *ARMDAGToDAGISel::SelectVLDSTLane(SDNode *N, bool IsLoad,
|
||||
|
||||
unsigned Opc = (is64BitVector ? DOpcodes[OpcodeIndex] :
|
||||
QOpcodes[OpcodeIndex]);
|
||||
SDNode *VLdLn = CurDAG->getMachineNode(Opc, dl, ResTys,
|
||||
Ops.data(), Ops.size());
|
||||
SDNode *VLdLn = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
|
||||
cast<MachineSDNode>(VLdLn)->setMemRefs(MemOp, MemOp + 1);
|
||||
if (!IsLoad)
|
||||
return VLdLn;
|
||||
@ -2150,8 +2147,7 @@ SDNode *ARMDAGToDAGISel::SelectVLDDup(SDNode *N, bool isUpdating,
|
||||
if (isUpdating)
|
||||
ResTys.push_back(MVT::i32);
|
||||
ResTys.push_back(MVT::Other);
|
||||
SDNode *VLdDup =
|
||||
CurDAG->getMachineNode(Opc, dl, ResTys, Ops.data(), Ops.size());
|
||||
SDNode *VLdDup = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
|
||||
cast<MachineSDNode>(VLdDup)->setMemRefs(MemOp, MemOp + 1);
|
||||
SuperReg = SDValue(VLdDup, 0);
|
||||
|
||||
@ -2197,7 +2193,7 @@ SDNode *ARMDAGToDAGISel::SelectVTBL(SDNode *N, bool IsExt, unsigned NumVecs,
|
||||
Ops.push_back(N->getOperand(FirstTblReg + NumVecs));
|
||||
Ops.push_back(getAL(CurDAG)); // predicate
|
||||
Ops.push_back(CurDAG->getRegister(0, MVT::i32)); // predicate register
|
||||
return CurDAG->getMachineNode(Opc, dl, VT, Ops.data(), Ops.size());
|
||||
return CurDAG->getMachineNode(Opc, dl, VT, Ops);
|
||||
}
|
||||
|
||||
SDNode *ARMDAGToDAGISel::SelectV6T2BitfieldExtractOp(SDNode *N,
|
||||
@ -2542,7 +2538,7 @@ SDNode *ARMDAGToDAGISel::SelectAtomic64(SDNode *Node, unsigned Opc) {
|
||||
MemOp[0] = cast<MemSDNode>(Node)->getMemOperand();
|
||||
SDNode *ResNode = CurDAG->getMachineNode(Opc, Node->getDebugLoc(),
|
||||
MVT::i32, MVT::i32, MVT::Other,
|
||||
Ops.data() ,Ops.size());
|
||||
Ops);
|
||||
cast<MachineSDNode>(ResNode)->setMemRefs(MemOp, MemOp + 1);
|
||||
return ResNode;
|
||||
}
|
||||
@ -2599,7 +2595,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
|
||||
SDValue Ops[] = { CPIdx, Pred, PredReg, CurDAG->getEntryNode() };
|
||||
ResNode = CurDAG->getMachineNode(ARM::tLDRpci, dl, MVT::i32, MVT::Other,
|
||||
Ops, 4);
|
||||
Ops);
|
||||
} else {
|
||||
SDValue Ops[] = {
|
||||
CPIdx,
|
||||
@ -2609,7 +2605,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
CurDAG->getEntryNode()
|
||||
};
|
||||
ResNode=CurDAG->getMachineNode(ARM::LDRcp, dl, MVT::i32, MVT::Other,
|
||||
Ops, 5);
|
||||
Ops);
|
||||
}
|
||||
ReplaceUses(SDValue(N, 0), SDValue(ResNode, 0));
|
||||
return NULL;
|
||||
@ -2719,7 +2715,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
MVT::i32);
|
||||
SDValue Ops[] = { N0.getOperand(0), Imm16,
|
||||
getAL(CurDAG), CurDAG->getRegister(0, MVT::i32) };
|
||||
return CurDAG->getMachineNode(Opc, dl, VT, Ops, 4);
|
||||
return CurDAG->getMachineNode(Opc, dl, VT, Ops);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -2733,16 +2729,15 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
break;
|
||||
if (Subtarget->isThumb()) {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1),
|
||||
getAL(CurDAG), CurDAG->getRegister(0, MVT::i32),
|
||||
CurDAG->getRegister(0, MVT::i32) };
|
||||
return CurDAG->getMachineNode(ARM::t2UMULL, dl, MVT::i32, MVT::i32,Ops,4);
|
||||
getAL(CurDAG), CurDAG->getRegister(0, MVT::i32) };
|
||||
return CurDAG->getMachineNode(ARM::t2UMULL, dl, MVT::i32, MVT::i32, Ops);
|
||||
} else {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1),
|
||||
getAL(CurDAG), CurDAG->getRegister(0, MVT::i32),
|
||||
CurDAG->getRegister(0, MVT::i32) };
|
||||
return CurDAG->getMachineNode(Subtarget->hasV6Ops() ?
|
||||
ARM::UMULL : ARM::UMULLv5,
|
||||
dl, MVT::i32, MVT::i32, Ops, 5);
|
||||
dl, MVT::i32, MVT::i32, Ops);
|
||||
}
|
||||
}
|
||||
case ISD::SMUL_LOHI: {
|
||||
@ -2751,14 +2746,14 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
if (Subtarget->isThumb()) {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1),
|
||||
getAL(CurDAG), CurDAG->getRegister(0, MVT::i32) };
|
||||
return CurDAG->getMachineNode(ARM::t2SMULL, dl, MVT::i32, MVT::i32,Ops,4);
|
||||
return CurDAG->getMachineNode(ARM::t2SMULL, dl, MVT::i32, MVT::i32, Ops);
|
||||
} else {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1),
|
||||
getAL(CurDAG), CurDAG->getRegister(0, MVT::i32),
|
||||
CurDAG->getRegister(0, MVT::i32) };
|
||||
return CurDAG->getMachineNode(Subtarget->hasV6Ops() ?
|
||||
ARM::SMULL : ARM::SMULLv5,
|
||||
dl, MVT::i32, MVT::i32, Ops, 5);
|
||||
dl, MVT::i32, MVT::i32, Ops);
|
||||
}
|
||||
}
|
||||
case ARMISD::UMLAL:{
|
||||
@ -2766,7 +2761,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3), getAL(CurDAG),
|
||||
CurDAG->getRegister(0, MVT::i32)};
|
||||
return CurDAG->getMachineNode(ARM::t2UMLAL, dl, MVT::i32, MVT::i32, Ops, 6);
|
||||
return CurDAG->getMachineNode(ARM::t2UMLAL, dl, MVT::i32, MVT::i32, Ops);
|
||||
}else{
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3), getAL(CurDAG),
|
||||
@ -2774,7 +2769,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
CurDAG->getRegister(0, MVT::i32) };
|
||||
return CurDAG->getMachineNode(Subtarget->hasV6Ops() ?
|
||||
ARM::UMLAL : ARM::UMLALv5,
|
||||
dl, MVT::i32, MVT::i32, Ops, 7);
|
||||
dl, MVT::i32, MVT::i32, Ops);
|
||||
}
|
||||
}
|
||||
case ARMISD::SMLAL:{
|
||||
@ -2782,7 +2777,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3), getAL(CurDAG),
|
||||
CurDAG->getRegister(0, MVT::i32)};
|
||||
return CurDAG->getMachineNode(ARM::t2SMLAL, dl, MVT::i32, MVT::i32, Ops, 6);
|
||||
return CurDAG->getMachineNode(ARM::t2SMLAL, dl, MVT::i32, MVT::i32, Ops);
|
||||
}else{
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3), getAL(CurDAG),
|
||||
@ -2790,7 +2785,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
CurDAG->getRegister(0, MVT::i32) };
|
||||
return CurDAG->getMachineNode(Subtarget->hasV6Ops() ?
|
||||
ARM::SMLAL : ARM::SMLALv5,
|
||||
dl, MVT::i32, MVT::i32, Ops, 7);
|
||||
dl, MVT::i32, MVT::i32, Ops);
|
||||
}
|
||||
}
|
||||
case ISD::LOAD: {
|
||||
@ -2833,7 +2828,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
MVT::i32);
|
||||
SDValue Ops[] = { N1, Tmp2, N3, Chain, InFlag };
|
||||
SDNode *ResNode = CurDAG->getMachineNode(Opc, dl, MVT::Other,
|
||||
MVT::Glue, Ops, 5);
|
||||
MVT::Glue, Ops);
|
||||
Chain = SDValue(ResNode, 0);
|
||||
if (N->getNumValues() == 2) {
|
||||
InFlag = SDValue(ResNode, 1);
|
||||
@ -2863,7 +2858,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
SDValue Pred = getAL(CurDAG);
|
||||
SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1), Pred, PredReg };
|
||||
return CurDAG->getMachineNode(Opc, dl, VT, VT, Ops, 4);
|
||||
return CurDAG->getMachineNode(Opc, dl, VT, VT, Ops);
|
||||
}
|
||||
case ARMISD::VUZP: {
|
||||
unsigned Opc = 0;
|
||||
@ -2883,7 +2878,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
SDValue Pred = getAL(CurDAG);
|
||||
SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1), Pred, PredReg };
|
||||
return CurDAG->getMachineNode(Opc, dl, VT, VT, Ops, 4);
|
||||
return CurDAG->getMachineNode(Opc, dl, VT, VT, Ops);
|
||||
}
|
||||
case ARMISD::VTRN: {
|
||||
unsigned Opc = 0;
|
||||
@ -2902,7 +2897,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
SDValue Pred = getAL(CurDAG);
|
||||
SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1), Pred, PredReg };
|
||||
return CurDAG->getMachineNode(Opc, dl, VT, VT, Ops, 4);
|
||||
return CurDAG->getMachineNode(Opc, dl, VT, VT, Ops);
|
||||
}
|
||||
case ARMISD::BUILD_VECTOR: {
|
||||
EVT VecVT = N->getValueType(0);
|
||||
@ -3147,8 +3142,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
Ops.push_back(getAL(CurDAG));
|
||||
Ops.push_back(CurDAG->getRegister(0, MVT::i32));
|
||||
Ops.push_back(Chain);
|
||||
SDNode *Ld = CurDAG->getMachineNode(NewOpc, dl, ResTys, Ops.data(),
|
||||
Ops.size());
|
||||
SDNode *Ld = CurDAG->getMachineNode(NewOpc, dl, ResTys, Ops);
|
||||
// Transfer memoperands.
|
||||
MachineSDNode::mmo_iterator MemOp = MF->allocateMemRefsArray(1);
|
||||
MemOp[0] = cast<MemIntrinsicSDNode>(N)->getMemOperand();
|
||||
@ -3211,8 +3205,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
|
||||
unsigned NewOpc = isThumb ? ARM::t2STREXD : ARM::STREXD;
|
||||
|
||||
SDNode *St = CurDAG->getMachineNode(NewOpc, dl, ResTys, Ops.data(),
|
||||
Ops.size());
|
||||
SDNode *St = CurDAG->getMachineNode(NewOpc, dl, ResTys, Ops);
|
||||
// Transfer memoperands.
|
||||
MachineSDNode::mmo_iterator MemOp = MF->allocateMemRefsArray(1);
|
||||
MemOp[0] = cast<MemIntrinsicSDNode>(N)->getMemOperand();
|
||||
@ -3398,7 +3391,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
Ops.push_back(N->getOperand(1));
|
||||
Ops.push_back(getAL(CurDAG)); // Predicate
|
||||
Ops.push_back(CurDAG->getRegister(0, MVT::i32)); // Predicate Register
|
||||
return CurDAG->getMachineNode(ARM::VTBL1, dl, VT, Ops.data(), Ops.size());
|
||||
return CurDAG->getMachineNode(ARM::VTBL1, dl, VT, Ops);
|
||||
}
|
||||
case ARMISD::VTBL2: {
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
@ -3414,8 +3407,7 @@ SDNode *ARMDAGToDAGISel::Select(SDNode *N) {
|
||||
Ops.push_back(N->getOperand(2));
|
||||
Ops.push_back(getAL(CurDAG)); // Predicate
|
||||
Ops.push_back(CurDAG->getRegister(0, MVT::i32)); // Predicate Register
|
||||
return CurDAG->getMachineNode(ARM::VTBL2, dl, VT,
|
||||
Ops.data(), Ops.size());
|
||||
return CurDAG->getMachineNode(ARM::VTBL2, dl, VT, Ops);
|
||||
}
|
||||
|
||||
case ISD::CONCAT_VECTORS:
|
||||
|
@ -697,7 +697,7 @@ SDNode *HexagonDAGToDAGISel::SelectIndexedStore(StoreSDNode *ST, DebugLoc dl) {
|
||||
|
||||
// Build post increment store.
|
||||
SDNode* Result = CurDAG->getMachineNode(Opcode, dl, MVT::i32,
|
||||
MVT::Other, Ops, 4);
|
||||
MVT::Other, Ops);
|
||||
MachineSDNode::mmo_iterator MemOp = MF->allocateMemRefsArray(1);
|
||||
MemOp[0] = ST->getMemOperand();
|
||||
cast<MachineSDNode>(Result)->setMemRefs(MemOp, MemOp + 1);
|
||||
@ -723,8 +723,7 @@ SDNode *HexagonDAGToDAGISel::SelectIndexedStore(StoreSDNode *ST, DebugLoc dl) {
|
||||
|
||||
// Build regular store.
|
||||
SDValue TargetConstVal = CurDAG->getTargetConstant(Val, MVT::i32);
|
||||
SDNode* Result_1 = CurDAG->getMachineNode(Opcode, dl, MVT::Other, Ops,
|
||||
4);
|
||||
SDNode* Result_1 = CurDAG->getMachineNode(Opcode, dl, MVT::Other, Ops);
|
||||
// Build splitted incriment instruction.
|
||||
SDNode* Result_2 = CurDAG->getMachineNode(Hexagon::ADD_ri, dl, MVT::i32,
|
||||
Base,
|
||||
@ -780,7 +779,7 @@ SDNode *HexagonDAGToDAGISel::SelectBaseOffsetStore(StoreSDNode *ST,
|
||||
Value, Chain};
|
||||
// build indexed store
|
||||
SDNode* Result = CurDAG->getMachineNode(Opcode, dl,
|
||||
MVT::Other, Ops, 4);
|
||||
MVT::Other, Ops);
|
||||
MachineSDNode::mmo_iterator MemOp = MF->allocateMemRefsArray(1);
|
||||
MemOp[0] = ST->getMemOperand();
|
||||
cast<MachineSDNode>(Result)->setMemRefs(MemOp, MemOp + 1);
|
||||
@ -1230,8 +1229,7 @@ SDNode *HexagonDAGToDAGISel::SelectIntrinsicWOChain(SDNode *N) {
|
||||
}
|
||||
EVT ReturnValueVT = N->getValueType(0);
|
||||
SDNode *Result = CurDAG->getMachineNode(IntrinsicWithPred, dl,
|
||||
ReturnValueVT,
|
||||
Ops.data(), Ops.size());
|
||||
ReturnValueVT, Ops);
|
||||
ReplaceUses(N, Result);
|
||||
return Result;
|
||||
}
|
||||
|
@ -237,7 +237,7 @@ SDNode* MBlazeDAGToDAGISel::Select(SDNode *Node) {
|
||||
// Use load to get GOT target
|
||||
SDValue Ops[] = { Callee, GPReg, Chain };
|
||||
SDValue Load = SDValue(CurDAG->getMachineNode(MBlaze::LW, dl,
|
||||
MVT::i32, MVT::Other, Ops, 3), 0);
|
||||
MVT::i32, MVT::Other, Ops), 0);
|
||||
Chain = Load.getValue(1);
|
||||
|
||||
// Call target must be on T9
|
||||
|
@ -272,7 +272,7 @@ std::pair<bool, SDNode*> Mips16DAGToDAGISel::selectNode(SDNode *Node) {
|
||||
EVT VT = LHS.getValueType();
|
||||
|
||||
unsigned Sltu_op = Mips::SltuRxRyRz16;
|
||||
SDNode *Carry = CurDAG->getMachineNode(Sltu_op, DL, VT, Ops, 2);
|
||||
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);
|
||||
|
@ -195,7 +195,7 @@ SDNode *MipsSEDAGToDAGISel::selectAddESubE(unsigned MOp, SDValue InFlag,
|
||||
SDValue LHS = Node->getOperand(0), RHS = Node->getOperand(1);
|
||||
EVT VT = LHS.getValueType();
|
||||
|
||||
SDNode *Carry = CurDAG->getMachineNode(Mips::SLTu, DL, VT, Ops, 2);
|
||||
SDNode *Carry = CurDAG->getMachineNode(Mips::SLTu, DL, VT, Ops);
|
||||
SDNode *AddCarry = CurDAG->getMachineNode(Mips::ADDu, DL, VT,
|
||||
SDValue(Carry, 0), RHS);
|
||||
return CurDAG->SelectNodeTo(Node, MOp, VT, MVT::Glue, LHS,
|
||||
@ -404,7 +404,7 @@ std::pair<bool, SDNode*> MipsSEDAGToDAGISel::selectNode(SDNode *Node) {
|
||||
const SDValue Ops[] = { RegClass, Node->getOperand(0), LoIdx,
|
||||
Node->getOperand(1), HiIdx };
|
||||
SDNode *Res = CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, DL,
|
||||
MVT::Untyped, Ops, 5);
|
||||
MVT::Untyped, Ops);
|
||||
return std::make_pair(true, Res);
|
||||
}
|
||||
}
|
||||
|
@ -241,7 +241,7 @@ SDNode *NVPTXDAGToDAGISel::SelectLoad(SDNode *N) {
|
||||
SDValue Ops[] = { getI32Imm(isVolatile), getI32Imm(codeAddrSpace),
|
||||
getI32Imm(vecType), getI32Imm(fromType),
|
||||
getI32Imm(fromTypeWidth), Addr, Chain };
|
||||
NVPTXLD = CurDAG->getMachineNode(Opcode, dl, TargetVT, MVT::Other, Ops, 7);
|
||||
NVPTXLD = CurDAG->getMachineNode(Opcode, dl, TargetVT, MVT::Other, Ops);
|
||||
} else if (Subtarget.is64Bit()
|
||||
? SelectADDRsi64(N1.getNode(), N1, Base, Offset)
|
||||
: SelectADDRsi(N1.getNode(), N1, Base, Offset)) {
|
||||
@ -270,7 +270,7 @@ SDNode *NVPTXDAGToDAGISel::SelectLoad(SDNode *N) {
|
||||
SDValue Ops[] = { getI32Imm(isVolatile), getI32Imm(codeAddrSpace),
|
||||
getI32Imm(vecType), getI32Imm(fromType),
|
||||
getI32Imm(fromTypeWidth), Base, Offset, Chain };
|
||||
NVPTXLD = CurDAG->getMachineNode(Opcode, dl, TargetVT, MVT::Other, Ops, 8);
|
||||
NVPTXLD = CurDAG->getMachineNode(Opcode, dl, TargetVT, MVT::Other, Ops);
|
||||
} else if (Subtarget.is64Bit()
|
||||
? SelectADDRri64(N1.getNode(), N1, Base, Offset)
|
||||
: SelectADDRri(N1.getNode(), N1, Base, Offset)) {
|
||||
@ -324,7 +324,7 @@ SDNode *NVPTXDAGToDAGISel::SelectLoad(SDNode *N) {
|
||||
SDValue Ops[] = { getI32Imm(isVolatile), getI32Imm(codeAddrSpace),
|
||||
getI32Imm(vecType), getI32Imm(fromType),
|
||||
getI32Imm(fromTypeWidth), Base, Offset, Chain };
|
||||
NVPTXLD = CurDAG->getMachineNode(Opcode, dl, TargetVT, MVT::Other, Ops, 8);
|
||||
NVPTXLD = CurDAG->getMachineNode(Opcode, dl, TargetVT, MVT::Other, Ops);
|
||||
} else {
|
||||
if (Subtarget.is64Bit()) {
|
||||
switch (TargetVT) {
|
||||
@ -376,7 +376,7 @@ SDNode *NVPTXDAGToDAGISel::SelectLoad(SDNode *N) {
|
||||
SDValue Ops[] = { getI32Imm(isVolatile), getI32Imm(codeAddrSpace),
|
||||
getI32Imm(vecType), getI32Imm(fromType),
|
||||
getI32Imm(fromTypeWidth), N1, Chain };
|
||||
NVPTXLD = CurDAG->getMachineNode(Opcode, dl, TargetVT, MVT::Other, Ops, 7);
|
||||
NVPTXLD = CurDAG->getMachineNode(Opcode, dl, TargetVT, MVT::Other, Ops);
|
||||
}
|
||||
|
||||
if (NVPTXLD != NULL) {
|
||||
@ -501,7 +501,7 @@ SDNode *NVPTXDAGToDAGISel::SelectLoadVector(SDNode *N) {
|
||||
SDValue Ops[] = { getI32Imm(IsVolatile), getI32Imm(CodeAddrSpace),
|
||||
getI32Imm(VecType), getI32Imm(FromType),
|
||||
getI32Imm(FromTypeWidth), Addr, Chain };
|
||||
LD = CurDAG->getMachineNode(Opcode, DL, N->getVTList(), Ops, 7);
|
||||
LD = CurDAG->getMachineNode(Opcode, DL, N->getVTList(), Ops);
|
||||
} else if (Subtarget.is64Bit()
|
||||
? SelectADDRsi64(Op1.getNode(), Op1, Base, Offset)
|
||||
: SelectADDRsi(Op1.getNode(), Op1, Base, Offset)) {
|
||||
@ -555,7 +555,7 @@ SDNode *NVPTXDAGToDAGISel::SelectLoadVector(SDNode *N) {
|
||||
SDValue Ops[] = { getI32Imm(IsVolatile), getI32Imm(CodeAddrSpace),
|
||||
getI32Imm(VecType), getI32Imm(FromType),
|
||||
getI32Imm(FromTypeWidth), Base, Offset, Chain };
|
||||
LD = CurDAG->getMachineNode(Opcode, DL, N->getVTList(), Ops, 8);
|
||||
LD = CurDAG->getMachineNode(Opcode, DL, N->getVTList(), Ops);
|
||||
} else if (Subtarget.is64Bit()
|
||||
? SelectADDRri64(Op1.getNode(), Op1, Base, Offset)
|
||||
: SelectADDRri(Op1.getNode(), Op1, Base, Offset)) {
|
||||
@ -659,7 +659,7 @@ SDNode *NVPTXDAGToDAGISel::SelectLoadVector(SDNode *N) {
|
||||
getI32Imm(VecType), getI32Imm(FromType),
|
||||
getI32Imm(FromTypeWidth), Base, Offset, Chain };
|
||||
|
||||
LD = CurDAG->getMachineNode(Opcode, DL, N->getVTList(), Ops, 8);
|
||||
LD = CurDAG->getMachineNode(Opcode, DL, N->getVTList(), Ops);
|
||||
} else {
|
||||
if (Subtarget.is64Bit()) {
|
||||
switch (N->getOpcode()) {
|
||||
@ -760,7 +760,7 @@ SDNode *NVPTXDAGToDAGISel::SelectLoadVector(SDNode *N) {
|
||||
SDValue Ops[] = { getI32Imm(IsVolatile), getI32Imm(CodeAddrSpace),
|
||||
getI32Imm(VecType), getI32Imm(FromType),
|
||||
getI32Imm(FromTypeWidth), Op1, Chain };
|
||||
LD = CurDAG->getMachineNode(Opcode, DL, N->getVTList(), Ops, 7);
|
||||
LD = CurDAG->getMachineNode(Opcode, DL, N->getVTList(), Ops);
|
||||
}
|
||||
|
||||
MachineSDNode::mmo_iterator MemRefs0 = MF->allocateMemRefsArray(1);
|
||||
@ -962,7 +962,7 @@ SDNode *NVPTXDAGToDAGISel::SelectLDGLDUVector(SDNode *N) {
|
||||
}
|
||||
|
||||
SDValue Ops[] = { Op1, Chain };
|
||||
LD = CurDAG->getMachineNode(Opcode, DL, N->getVTList(), &Ops[0], 2);
|
||||
LD = CurDAG->getMachineNode(Opcode, DL, N->getVTList(), Ops);
|
||||
|
||||
MachineSDNode::mmo_iterator MemRefs0 = MF->allocateMemRefsArray(1);
|
||||
MemRefs0[0] = cast<MemSDNode>(N)->getMemOperand();
|
||||
@ -1055,7 +1055,7 @@ SDNode *NVPTXDAGToDAGISel::SelectStore(SDNode *N) {
|
||||
SDValue Ops[] = { N1, getI32Imm(isVolatile), getI32Imm(codeAddrSpace),
|
||||
getI32Imm(vecType), getI32Imm(toType),
|
||||
getI32Imm(toTypeWidth), Addr, Chain };
|
||||
NVPTXST = CurDAG->getMachineNode(Opcode, dl, MVT::Other, Ops, 8);
|
||||
NVPTXST = CurDAG->getMachineNode(Opcode, dl, MVT::Other, Ops);
|
||||
} else if (Subtarget.is64Bit()
|
||||
? SelectADDRsi64(N2.getNode(), N2, Base, Offset)
|
||||
: SelectADDRsi(N2.getNode(), N2, Base, Offset)) {
|
||||
@ -1084,7 +1084,7 @@ SDNode *NVPTXDAGToDAGISel::SelectStore(SDNode *N) {
|
||||
SDValue Ops[] = { N1, getI32Imm(isVolatile), getI32Imm(codeAddrSpace),
|
||||
getI32Imm(vecType), getI32Imm(toType),
|
||||
getI32Imm(toTypeWidth), Base, Offset, Chain };
|
||||
NVPTXST = CurDAG->getMachineNode(Opcode, dl, MVT::Other, Ops, 9);
|
||||
NVPTXST = CurDAG->getMachineNode(Opcode, dl, MVT::Other, Ops);
|
||||
} else if (Subtarget.is64Bit()
|
||||
? SelectADDRri64(N2.getNode(), N2, Base, Offset)
|
||||
: SelectADDRri(N2.getNode(), N2, Base, Offset)) {
|
||||
@ -1138,7 +1138,7 @@ SDNode *NVPTXDAGToDAGISel::SelectStore(SDNode *N) {
|
||||
SDValue Ops[] = { N1, getI32Imm(isVolatile), getI32Imm(codeAddrSpace),
|
||||
getI32Imm(vecType), getI32Imm(toType),
|
||||
getI32Imm(toTypeWidth), Base, Offset, Chain };
|
||||
NVPTXST = CurDAG->getMachineNode(Opcode, dl, MVT::Other, Ops, 9);
|
||||
NVPTXST = CurDAG->getMachineNode(Opcode, dl, MVT::Other, Ops);
|
||||
} else {
|
||||
if (Subtarget.is64Bit()) {
|
||||
switch (SourceVT) {
|
||||
@ -1190,7 +1190,7 @@ SDNode *NVPTXDAGToDAGISel::SelectStore(SDNode *N) {
|
||||
SDValue Ops[] = { N1, getI32Imm(isVolatile), getI32Imm(codeAddrSpace),
|
||||
getI32Imm(vecType), getI32Imm(toType),
|
||||
getI32Imm(toTypeWidth), N2, Chain };
|
||||
NVPTXST = CurDAG->getMachineNode(Opcode, dl, MVT::Other, Ops, 8);
|
||||
NVPTXST = CurDAG->getMachineNode(Opcode, dl, MVT::Other, Ops);
|
||||
}
|
||||
|
||||
if (NVPTXST != NULL) {
|
||||
@ -1569,7 +1569,7 @@ SDNode *NVPTXDAGToDAGISel::SelectStoreVector(SDNode *N) {
|
||||
|
||||
StOps.push_back(Chain);
|
||||
|
||||
ST = CurDAG->getMachineNode(Opcode, DL, MVT::Other, &StOps[0], StOps.size());
|
||||
ST = CurDAG->getMachineNode(Opcode, DL, MVT::Other, StOps);
|
||||
|
||||
MachineSDNode::mmo_iterator MemRefs0 = MF->allocateMemRefsArray(1);
|
||||
MemRefs0[0] = cast<MemSDNode>(N)->getMemOperand();
|
||||
|
@ -457,7 +457,7 @@ SDNode *PPCDAGToDAGISel::SelectBitfieldInsert(SDNode *N) {
|
||||
SH &= 31;
|
||||
SDValue Ops[] = { Op0, Op1, getI32Imm(SH), getI32Imm(MB),
|
||||
getI32Imm(ME) };
|
||||
return CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops, 5);
|
||||
return CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
@ -780,7 +780,7 @@ SDNode *PPCDAGToDAGISel::SelectSETCC(SDNode *N) {
|
||||
}
|
||||
case ISD::SETGT: {
|
||||
SDValue Ops[] = { Op, getI32Imm(1), getI32Imm(31), getI32Imm(31) };
|
||||
Op = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops, 4),
|
||||
Op = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops),
|
||||
0);
|
||||
return CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Op,
|
||||
getI32Imm(1));
|
||||
@ -873,7 +873,7 @@ SDNode *PPCDAGToDAGISel::SelectSETCC(SDNode *N) {
|
||||
|
||||
// Get the specified bit.
|
||||
SDValue Tmp =
|
||||
SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops, 4), 0);
|
||||
SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0);
|
||||
if (Inv) {
|
||||
assert(OtherCondIdx == -1 && "Can't have split plus negation");
|
||||
return CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Tmp, getI32Imm(1));
|
||||
@ -885,7 +885,7 @@ SDNode *PPCDAGToDAGISel::SelectSETCC(SDNode *N) {
|
||||
// Get the other bit of the comparison.
|
||||
Ops[1] = getI32Imm((32-(3-OtherCondIdx)) & 31);
|
||||
SDValue OtherCond =
|
||||
SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops, 4), 0);
|
||||
SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0);
|
||||
|
||||
return CurDAG->SelectNodeTo(N, PPC::OR, MVT::i32, Tmp, OtherCond);
|
||||
}
|
||||
@ -1079,7 +1079,7 @@ SDNode *PPCDAGToDAGISel::Select(SDNode *N) {
|
||||
SDValue Ops[] = { Offset, Base, Chain };
|
||||
return CurDAG->getMachineNode(Opcode, dl, LD->getValueType(0),
|
||||
PPCLowering.getPointerTy(),
|
||||
MVT::Other, Ops, 3);
|
||||
MVT::Other, Ops);
|
||||
} else {
|
||||
unsigned Opcode;
|
||||
bool isSExt = LD->getExtensionType() == ISD::SEXTLOAD;
|
||||
@ -1114,7 +1114,7 @@ SDNode *PPCDAGToDAGISel::Select(SDNode *N) {
|
||||
SDValue Ops[] = { Base, Offset, Chain };
|
||||
return CurDAG->getMachineNode(Opcode, dl, LD->getValueType(0),
|
||||
PPCLowering.getPointerTy(),
|
||||
MVT::Other, Ops, 3);
|
||||
MVT::Other, Ops);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1163,7 +1163,7 @@ SDNode *PPCDAGToDAGISel::Select(SDNode *N) {
|
||||
SDValue Ops[] = { N->getOperand(0).getOperand(0),
|
||||
N->getOperand(0).getOperand(1),
|
||||
getI32Imm(0), getI32Imm(MB),getI32Imm(ME) };
|
||||
return CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops, 5);
|
||||
return CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -211,7 +211,7 @@ SDNode *AMDGPUDAGToDAGISel::Select(SDNode *N) {
|
||||
const SDValue Ops[] = { RC, N->getOperand(0), SubReg0,
|
||||
N->getOperand(1), SubReg1 };
|
||||
return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE,
|
||||
N->getDebugLoc(), N->getValueType(0), Ops, 5);
|
||||
N->getDebugLoc(), N->getValueType(0), Ops);
|
||||
}
|
||||
|
||||
case ISD::ConstantFP:
|
||||
|
@ -702,7 +702,7 @@ SDNode *SITargetLowering::foldOperands(MachineSDNode *Node,
|
||||
|
||||
// Create a complete new instruction
|
||||
return DAG.getMachineNode(Desc->Opcode, Node->getDebugLoc(),
|
||||
Node->getVTList(), Ops.data(), Ops.size());
|
||||
Node->getVTList(), Ops);
|
||||
}
|
||||
|
||||
/// \brief Helper function for adjustWritemask
|
||||
|
@ -1503,8 +1503,7 @@ SDNode *X86DAGToDAGISel::SelectAtomic64(SDNode *Node, unsigned Opc) {
|
||||
MemOp[0] = cast<MemSDNode>(Node)->getMemOperand();
|
||||
const SDValue Ops[] = { Tmp0, Tmp1, Tmp2, Tmp3, Tmp4, In2L, In2H, Chain};
|
||||
SDNode *ResNode = CurDAG->getMachineNode(Opc, Node->getDebugLoc(),
|
||||
MVT::i32, MVT::i32, MVT::Other, Ops,
|
||||
array_lengthof(Ops));
|
||||
MVT::i32, MVT::i32, MVT::Other, Ops);
|
||||
cast<MachineSDNode>(ResNode)->setMemRefs(MemOp, MemOp + 1);
|
||||
return ResNode;
|
||||
}
|
||||
@ -1772,12 +1771,10 @@ SDNode *X86DAGToDAGISel::SelectAtomicLoadArith(SDNode *Node, EVT NVT) {
|
||||
MemOp[0] = cast<MemSDNode>(Node)->getMemOperand();
|
||||
if (isUnOp) {
|
||||
SDValue Ops[] = { Tmp0, Tmp1, Tmp2, Tmp3, Tmp4, Chain };
|
||||
Ret = SDValue(CurDAG->getMachineNode(Opc, dl, MVT::Other, Ops,
|
||||
array_lengthof(Ops)), 0);
|
||||
Ret = SDValue(CurDAG->getMachineNode(Opc, dl, MVT::Other, Ops), 0);
|
||||
} else {
|
||||
SDValue Ops[] = { Tmp0, Tmp1, Tmp2, Tmp3, Tmp4, Val, Chain };
|
||||
Ret = SDValue(CurDAG->getMachineNode(Opc, dl, MVT::Other, Ops,
|
||||
array_lengthof(Ops)), 0);
|
||||
Ret = SDValue(CurDAG->getMachineNode(Opc, dl, MVT::Other, Ops), 0);
|
||||
}
|
||||
cast<MachineSDNode>(Ret)->setMemRefs(MemOp, MemOp + 1);
|
||||
SDValue RetVals[] = { Undef, Ret };
|
||||
@ -1971,8 +1968,7 @@ SDNode *X86DAGToDAGISel::SelectGather(SDNode *Node, unsigned Opc) {
|
||||
SDValue Segment = CurDAG->getRegister(0, MVT::i32);
|
||||
const SDValue Ops[] = { VSrc, Base, getI8Imm(Scale->getSExtValue()), VIdx,
|
||||
Disp, Segment, VMask, Chain};
|
||||
SDNode *ResNode = CurDAG->getMachineNode(Opc, Node->getDebugLoc(),
|
||||
VTs, Ops, array_lengthof(Ops));
|
||||
SDNode *ResNode = CurDAG->getMachineNode(Opc, Node->getDebugLoc(), VTs, Ops);
|
||||
// Node has 2 outputs: VDst and MVT::Other.
|
||||
// ResNode has 3 outputs: VDst, VMask_wb, and MVT::Other.
|
||||
// We replace VDst of Node with VDst of ResNode, and Other of Node with Other
|
||||
@ -2186,7 +2182,7 @@ SDNode *X86DAGToDAGISel::Select(SDNode *Node) {
|
||||
|
||||
SDVTList VTs = CurDAG->getVTList(NVT, NVT, MVT::i32);
|
||||
SDValue Ops[] = {N1, InFlag};
|
||||
SDNode *CNode = CurDAG->getMachineNode(Opc, dl, VTs, Ops, 2);
|
||||
SDNode *CNode = CurDAG->getMachineNode(Opc, dl, VTs, Ops);
|
||||
|
||||
ReplaceUses(SDValue(Node, 0), SDValue(CNode, 0));
|
||||
ReplaceUses(SDValue(Node, 1), SDValue(CNode, 1));
|
||||
@ -2267,16 +2263,14 @@ SDNode *X86DAGToDAGISel::Select(SDNode *Node) {
|
||||
InFlag };
|
||||
if (MOpc == X86::MULX32rm || MOpc == X86::MULX64rm) {
|
||||
SDVTList VTs = CurDAG->getVTList(NVT, NVT, MVT::Other, MVT::Glue);
|
||||
SDNode *CNode = CurDAG->getMachineNode(MOpc, dl, VTs, Ops,
|
||||
array_lengthof(Ops));
|
||||
SDNode *CNode = CurDAG->getMachineNode(MOpc, dl, VTs, Ops);
|
||||
ResHi = SDValue(CNode, 0);
|
||||
ResLo = SDValue(CNode, 1);
|
||||
Chain = SDValue(CNode, 2);
|
||||
InFlag = SDValue(CNode, 3);
|
||||
} else {
|
||||
SDVTList VTs = CurDAG->getVTList(MVT::Other, MVT::Glue);
|
||||
SDNode *CNode = CurDAG->getMachineNode(MOpc, dl, VTs, Ops,
|
||||
array_lengthof(Ops));
|
||||
SDNode *CNode = CurDAG->getMachineNode(MOpc, dl, VTs, Ops);
|
||||
Chain = SDValue(CNode, 0);
|
||||
InFlag = SDValue(CNode, 1);
|
||||
}
|
||||
@ -2287,15 +2281,13 @@ SDNode *X86DAGToDAGISel::Select(SDNode *Node) {
|
||||
SDValue Ops[] = { N1, InFlag };
|
||||
if (Opc == X86::MULX32rr || Opc == X86::MULX64rr) {
|
||||
SDVTList VTs = CurDAG->getVTList(NVT, NVT, MVT::Glue);
|
||||
SDNode *CNode = CurDAG->getMachineNode(Opc, dl, VTs, Ops,
|
||||
array_lengthof(Ops));
|
||||
SDNode *CNode = CurDAG->getMachineNode(Opc, dl, VTs, Ops);
|
||||
ResHi = SDValue(CNode, 0);
|
||||
ResLo = SDValue(CNode, 1);
|
||||
InFlag = SDValue(CNode, 2);
|
||||
} else {
|
||||
SDVTList VTs = CurDAG->getVTList(MVT::Glue);
|
||||
SDNode *CNode = CurDAG->getMachineNode(Opc, dl, VTs, Ops,
|
||||
array_lengthof(Ops));
|
||||
SDNode *CNode = CurDAG->getMachineNode(Opc, dl, VTs, Ops);
|
||||
InFlag = SDValue(CNode, 0);
|
||||
}
|
||||
}
|
||||
@ -2412,8 +2404,7 @@ SDNode *X86DAGToDAGISel::Select(SDNode *Node) {
|
||||
SDValue Ops[] = { Tmp0, Tmp1, Tmp2, Tmp3, Tmp4, N0.getOperand(0) };
|
||||
Move =
|
||||
SDValue(CurDAG->getMachineNode(X86::MOVZX32rm8, dl, MVT::i32,
|
||||
MVT::Other, Ops,
|
||||
array_lengthof(Ops)), 0);
|
||||
MVT::Other, Ops), 0);
|
||||
Chain = Move.getValue(1);
|
||||
ReplaceUses(N0.getValue(1), Chain);
|
||||
} else {
|
||||
@ -2444,8 +2435,7 @@ SDNode *X86DAGToDAGISel::Select(SDNode *Node) {
|
||||
SDValue Ops[] = { Tmp0, Tmp1, Tmp2, Tmp3, Tmp4, N1.getOperand(0),
|
||||
InFlag };
|
||||
SDNode *CNode =
|
||||
CurDAG->getMachineNode(MOpc, dl, MVT::Other, MVT::Glue, Ops,
|
||||
array_lengthof(Ops));
|
||||
CurDAG->getMachineNode(MOpc, dl, MVT::Other, MVT::Glue, Ops);
|
||||
InFlag = SDValue(CNode, 1);
|
||||
// Update the chain.
|
||||
ReplaceUses(N1.getValue(1), SDValue(CNode, 0));
|
||||
@ -2677,8 +2667,7 @@ SDNode *X86DAGToDAGISel::Select(SDNode *Node) {
|
||||
unsigned newOpc = getFusedLdStOpcode(LdVT, Opc);
|
||||
MachineSDNode *Result = CurDAG->getMachineNode(newOpc,
|
||||
Node->getDebugLoc(),
|
||||
MVT::i32, MVT::Other, Ops,
|
||||
array_lengthof(Ops));
|
||||
MVT::i32, MVT::Other, Ops);
|
||||
Result->setMemRefs(MemOp, MemOp + 2);
|
||||
|
||||
ReplaceUses(SDValue(StoreNode, 0), SDValue(Result, 1));
|
||||
|
@ -1803,8 +1803,7 @@ X86TargetLowering::LowerCallResult(SDValue Chain, SDValue InFlag,
|
||||
if (isScalarFPTypeInSSEReg(VA.getValVT())) CopyVT = MVT::f80;
|
||||
SDValue Ops[] = { Chain, InFlag };
|
||||
Chain = SDValue(DAG.getMachineNode(X86::FpPOP_RETVAL, dl, CopyVT,
|
||||
MVT::Other, MVT::Glue, Ops,
|
||||
array_lengthof(Ops)), 1);
|
||||
MVT::Other, MVT::Glue, Ops), 1);
|
||||
Val = Chain.getValue(0);
|
||||
|
||||
// Round the f80 to the right size, which also moves it to the appropriate
|
||||
@ -12143,9 +12142,7 @@ static SDValue LowerMEMBARRIER(SDValue Op, const X86Subtarget *Subtarget,
|
||||
Zero,
|
||||
Chain
|
||||
};
|
||||
SDNode *Res =
|
||||
DAG.getMachineNode(X86::OR32mrLocked, dl, MVT::Other, Ops,
|
||||
array_lengthof(Ops));
|
||||
SDNode *Res = DAG.getMachineNode(X86::OR32mrLocked, dl, MVT::Other, Ops);
|
||||
return SDValue(Res, 0);
|
||||
}
|
||||
|
||||
@ -12199,9 +12196,7 @@ static SDValue LowerATOMIC_FENCE(SDValue Op, const X86Subtarget *Subtarget,
|
||||
Zero,
|
||||
Chain
|
||||
};
|
||||
SDNode *Res =
|
||||
DAG.getMachineNode(X86::OR32mrLocked, dl, MVT::Other, Ops,
|
||||
array_lengthof(Ops));
|
||||
SDNode *Res = DAG.getMachineNode(X86::OR32mrLocked, dl, MVT::Other, Ops);
|
||||
return SDValue(Res, 0);
|
||||
}
|
||||
|
||||
|
@ -4281,7 +4281,7 @@ X86InstrInfo::unfoldMemoryOperand(SelectionDAG &DAG, SDNode *N,
|
||||
bool isAligned = (*MMOs.first) &&
|
||||
(*MMOs.first)->getAlignment() >= Alignment;
|
||||
Load = DAG.getMachineNode(getLoadRegOpcode(0, RC, isAligned, TM), dl,
|
||||
VT, MVT::Other, &AddrOps[0], AddrOps.size());
|
||||
VT, MVT::Other, AddrOps);
|
||||
NewNodes.push_back(Load);
|
||||
|
||||
// Preserve memory reference information.
|
||||
@ -4303,8 +4303,7 @@ X86InstrInfo::unfoldMemoryOperand(SelectionDAG &DAG, SDNode *N,
|
||||
if (Load)
|
||||
BeforeOps.push_back(SDValue(Load, 0));
|
||||
std::copy(AfterOps.begin(), AfterOps.end(), std::back_inserter(BeforeOps));
|
||||
SDNode *NewNode= DAG.getMachineNode(Opc, dl, VTs, &BeforeOps[0],
|
||||
BeforeOps.size());
|
||||
SDNode *NewNode= DAG.getMachineNode(Opc, dl, VTs, BeforeOps);
|
||||
NewNodes.push_back(NewNode);
|
||||
|
||||
// Emit the store instruction.
|
||||
@ -4326,8 +4325,7 @@ X86InstrInfo::unfoldMemoryOperand(SelectionDAG &DAG, SDNode *N,
|
||||
(*MMOs.first)->getAlignment() >= Alignment;
|
||||
SDNode *Store = DAG.getMachineNode(getStoreRegOpcode(0, DstRC,
|
||||
isAligned, TM),
|
||||
dl, MVT::Other,
|
||||
&AddrOps[0], AddrOps.size());
|
||||
dl, MVT::Other, AddrOps);
|
||||
NewNodes.push_back(Store);
|
||||
|
||||
// Preserve memory reference information.
|
||||
|
@ -185,36 +185,36 @@ SDNode *XCoreDAGToDAGISel::Select(SDNode *N) {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1),
|
||||
N->getOperand(2) };
|
||||
return CurDAG->getMachineNode(XCore::LADD_l5r, dl, MVT::i32, MVT::i32,
|
||||
Ops, 3);
|
||||
Ops);
|
||||
}
|
||||
case XCoreISD::LSUB: {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1),
|
||||
N->getOperand(2) };
|
||||
return CurDAG->getMachineNode(XCore::LSUB_l5r, dl, MVT::i32, MVT::i32,
|
||||
Ops, 3);
|
||||
Ops);
|
||||
}
|
||||
case XCoreISD::MACCU: {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1),
|
||||
N->getOperand(2), N->getOperand(3) };
|
||||
return CurDAG->getMachineNode(XCore::MACCU_l4r, dl, MVT::i32, MVT::i32,
|
||||
Ops, 4);
|
||||
Ops);
|
||||
}
|
||||
case XCoreISD::MACCS: {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1),
|
||||
N->getOperand(2), N->getOperand(3) };
|
||||
return CurDAG->getMachineNode(XCore::MACCS_l4r, dl, MVT::i32, MVT::i32,
|
||||
Ops, 4);
|
||||
Ops);
|
||||
}
|
||||
case XCoreISD::LMUL: {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1),
|
||||
N->getOperand(2), N->getOperand(3) };
|
||||
return CurDAG->getMachineNode(XCore::LMUL_l6r, dl, MVT::i32, MVT::i32,
|
||||
Ops, 4);
|
||||
Ops);
|
||||
}
|
||||
case XCoreISD::CRC8: {
|
||||
SDValue Ops[] = { N->getOperand(0), N->getOperand(1), N->getOperand(2) };
|
||||
return CurDAG->getMachineNode(XCore::CRC8_l4r, dl, MVT::i32, MVT::i32,
|
||||
Ops, 3);
|
||||
Ops);
|
||||
}
|
||||
case ISD::BRIND:
|
||||
if (SDNode *ResNode = SelectBRIND(N))
|
||||
|
Loading…
Reference in New Issue
Block a user