aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/CodeGen/SelectionDAG/LegalizeDAG.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index fb667f0081..63530deac7 100644
--- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -726,16 +726,25 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
} else {
Tmp3 = LegalizeOp(Node->getOperand(2)); // memcpy/move = pointer,
}
- SDOperand Tmp4, Tmp5;
-
- switch (getTypeAction(Node->getOperand(3).getValueType())) { // uint
+
+ SDOperand Tmp4;
+ switch (getTypeAction(Node->getOperand(3).getValueType())) {
case Expand: assert(0 && "Cannot expand this yet!");
case Legal:
Tmp4 = LegalizeOp(Node->getOperand(3));
- Tmp5 = LegalizeOp(Node->getOperand(4));
break;
case Promote:
Tmp4 = PromoteOp(Node->getOperand(3));
+ break;
+ }
+
+ SDOperand Tmp5;
+ switch (getTypeAction(Node->getOperand(4).getValueType())) { // uint
+ case Expand: assert(0 && "Cannot expand this yet!");
+ case Legal:
+ Tmp5 = LegalizeOp(Node->getOperand(4));
+ break;
+ case Promote:
Tmp5 = PromoteOp(Node->getOperand(4));
break;
}