AddLegalizedOperand(Op.getValue(0), Result);
AddLegalizedOperand(Op.getValue(1), Result.getValue(1));
return Result.getValue(Op.ResNo);
- case ISD::ImplicitDef:
- Tmp1 = LegalizeOp(Node->getOperand(0));
- if (Tmp1 != Node->getOperand(0))
- Result = DAG.getNode(ISD::ImplicitDef, MVT::Other,
- Tmp1, Node->getOperand(1));
- break;
case ISD::UNDEF: {
MVT::ValueType VT = Op.getValueType();
switch (TLI.getOperationAction(ISD::UNDEF, VT)) {
case ISD::TargetConstantPool: return "TargetConstantPool";
case ISD::CopyToReg: return "CopyToReg";
case ISD::CopyFromReg: return "CopyFromReg";
- case ISD::ImplicitDef: return "ImplicitDef";
case ISD::UNDEF: return "undef";
// Unary operators
return;
}
- case ISD::ImplicitDef:
- ++count_ins;
- Select(N.getOperand(0));
- switch(N.getValueType()) {
- case MVT::f32: Opc = Alpha::IDEF_F32; break;
- case MVT::f64: Opc = Alpha::IDEF_F64; break;
- case MVT::i64: Opc = Alpha::IDEF_I; break;
- default: assert(0 && "should have been legalized");
- };
- BuildMI(BB, Opc, 0,
- cast<RegisterSDNode>(N.getOperand(1))->getReg());
- return;
-
case ISD::EntryToken: return; // Noop
case ISD::TokenFactor:
return;
}
- case ISD::ImplicitDef: {
- Select(N.getOperand(0));
- BuildMI(BB, IA64::IDEF, 0,
- cast<RegisterSDNode>(N.getOperand(1))->getReg());
- return;
- }
-
case ISD::BRCOND: {
MachineBasicBlock *Dest =
cast<BasicBlockSDNode>(N.getOperand(2))->getBasicBlock();
BuildMI(BB, PPC::OR4, 2, Tmp2).addReg(Tmp1).addReg(Tmp1);
}
return;
- case ISD::ImplicitDef:
- Select(N.getOperand(0));
- Tmp1 = cast<RegisterSDNode>(N.getOperand(1))->getReg();
- if (N.getOperand(1).getValueType() == MVT::i32)
- BuildMI(BB, PPC::IMPLICIT_DEF_GPR, 0, Tmp1);
- else if (N.getOperand(1).getValueType() == MVT::f32)
- BuildMI(BB, PPC::IMPLICIT_DEF_F4, 0, Tmp1);
- else
- BuildMI(BB, PPC::IMPLICIT_DEF_F8, 0, Tmp1);
- return;
case ISD::RET:
switch (N.getNumOperands()) {
default: