Bug 900487: Fix bailoutIf to be complaint with parallel js. (r=shu)

This commit is contained in:
Marty Rosenberg 2013-08-01 09:51:33 -04:00
parent f57942b911
commit 5c73aeee58

View File

@ -171,6 +171,22 @@ CodeGeneratorARM::generateOutOfLineCode()
bool
CodeGeneratorARM::bailoutIf(Assembler::Condition condition, LSnapshot *snapshot)
{
CompileInfo &info = snapshot->mir()->block()->info();
switch (info.executionMode()) {
case ParallelExecution: {
// in parallel mode, make no attempt to recover, just signal an error.
OutOfLineAbortPar *ool = oolAbortPar(ParallelBailoutUnsupported,
snapshot->mir()->block(),
snapshot->mir()->pc());
masm.ma_b(ool->entry(), condition);
return true;
}
case SequentialExecution:
break;
default:
MOZ_ASSUME_UNREACHABLE("No such execution mode");
}
if (!encode(snapshot))
return false;
@ -205,6 +221,7 @@ CodeGeneratorARM::bailoutFrom(Label *label, LSnapshot *snapshot)
CompileInfo &info = snapshot->mir()->block()->info();
switch (info.executionMode()) {
case ParallelExecution: {
// in parallel mode, make no attempt to recover, just signal an error.
OutOfLineAbortPar *ool = oolAbortPar(ParallelBailoutUnsupported,