Bug 1245152 - Ensure enough ballast space before RangeAnalysis::tryHoistBoundsCheck. r=h4writer
--- a/js/src/jit/RangeAnalysis.cpp
+++ b/js/src/jit/RangeAnalysis.cpp
@@ -1907,16 +1907,18 @@ RangeAnalysis::analyzeLoop(MBasicBlock*
for (ReversePostorderIterator iter(graph_.rpoBegin(header)); iter != graph_.rpoEnd(); iter++) {
MBasicBlock* block = *iter;
if (!block->isMarked())
continue;
for (MDefinitionIterator iter(block); iter; iter++) {
MDefinition* def = *iter;
if (def->isBoundsCheck() && def->isMovable()) {
+ if (!alloc().ensureBallast())
+ return false;
if (tryHoistBoundsCheck(header, def->toBoundsCheck())) {
if (!hoistedChecks.append(def->toBoundsCheck()))
return false;
}
}
}
}