[fast-isel] Rather then assert (or segfault in a non-asserts build), fall back

to selection DAG isel if we're unable to handle a non-double multi-reg retval.
rdar://11430407
PR12796

llvm-svn: 156622
This commit is contained in:
Chad Rosier 2012-05-11 17:41:06 +00:00
parent 466d3d8faa
commit 519b12f927
1 changed files with 4 additions and 2 deletions

View File

@ -2014,8 +2014,7 @@ bool ARMFastISel::FinishCall(MVT RetVT, SmallVectorImpl<unsigned> &UsedRegs,
// Finally update the result.
UpdateValueMap(I, ResultReg);
} else {
assert(RVLocs.size() == 1 &&"Can't handle non-double multi-reg retvals!");
} else if (RVLocs.size() == 1) {
EVT CopyVT = RVLocs[0].getValVT();
// Special handling for extended integers.
@ -2031,6 +2030,9 @@ bool ARMFastISel::FinishCall(MVT RetVT, SmallVectorImpl<unsigned> &UsedRegs,
// Finally update the result.
UpdateValueMap(I, ResultReg);
} else {
// Can't handle non-double multi-reg retvals.
return false;
}
}