diff options
Diffstat (limited to 'lib/CodeGen/SelectionDAG/LegalizeDAG.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 0fc06c0560..a05e5937a6 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -906,7 +906,12 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) { SDOperand Tmp4; switch (getTypeAction(Node->getOperand(3).getValueType())) { - case Expand: assert(0 && "Cannot expand this yet!"); + case Expand: { + // Length is too big, just take the lo-part of the length. + SDOperand HiPart; + ExpandOp(Node->getOperand(3), HiPart, Tmp4); + break; + } case Legal: Tmp4 = LegalizeOp(Node->getOperand(3)); break; |