/// implement this. The default implementation of this aborts.
virtual SDOperand LowerOperation(SDOperand Op, SelectionDAG &DAG);
- /// ExpandOperation - This callback is invoked for operations that are
+ /// ExpandOperationResult - This callback is invoked for operations that are
/// unsupported by the target, which are registered to use 'custom' lowering,
/// and whose result type needs to be expanded.
///
/// If the target has no operations that require custom lowering, it need not
/// implement this. The default implementation of this aborts.
virtual std::pair<SDOperand,SDOperand>
- ExpandOperation(SDOperand Op, SelectionDAG &DAG);
+ ExpandOperationResult(SDNode *N, SelectionDAG &DAG);
/// IsEligibleForTailCallOptimization - Check whether the call is eligible for
/// tail call optimization. Targets which want to do tail call optimization
TLI.getOperationAction(N->getOpcode(),
N->getValueType(0)) == TargetLowering::Custom) {
// If the target wants to, allow it to lower this itself.
- std::pair<SDOperand,SDOperand> P =
- TLI.ExpandOperation(SDOperand(N, 0), DAG);
+ std::pair<SDOperand,SDOperand> P = TLI.ExpandOperationResult(N, DAG);
if (P.first.Val) {
Lo = P.first;
Hi = P.second;
void DAGTypeLegalizer::ExpandResult_ADDSUB(SDNode *N,
SDOperand &Lo, SDOperand &Hi) {
- MVT::ValueType VT = N->getValueType(0);
-
- // If the target wants to custom expand this, let them.
- if (TLI.getOperationAction(N->getOpcode(), VT) ==
- TargetLowering::Custom) {
- std::pair<SDOperand,SDOperand> Ret =
- TLI.ExpandOperation(SDOperand(N, 0), DAG);
- if (Ret.first.Val) {
- Lo = Ret.first;
- Hi = Ret.second;
- return;
- }
- }
-
// Expand the subcomponents.
SDOperand LHSL, LHSH, RHSL, RHSH;
GetExpandedOp(N->getOperand(0), LHSL, LHSH);
}
std::pair<SDOperand,SDOperand>
-TargetLowering::ExpandOperation(SDOperand Op, SelectionDAG &DAG) {
+TargetLowering::ExpandOperationResult(SDNode *N, SelectionDAG &DAG) {
assert(0 && "ExpandOperation not implemented for this target!");
abort();
return std::pair<SDOperand,SDOperand>();