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
Родитель f8003dab46
Коммит b365cfa9df
1 изменённых файлов: 17 добавлений и 0 удалений

Просмотреть файл

@ -171,6 +171,22 @@ CodeGeneratorARM::generateOutOfLineCode()
bool bool
CodeGeneratorARM::bailoutIf(Assembler::Condition condition, LSnapshot *snapshot) 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)) if (!encode(snapshot))
return false; return false;
@ -205,6 +221,7 @@ CodeGeneratorARM::bailoutFrom(Label *label, LSnapshot *snapshot)
CompileInfo &info = snapshot->mir()->block()->info(); CompileInfo &info = snapshot->mir()->block()->info();
switch (info.executionMode()) { switch (info.executionMode()) {
case ParallelExecution: { case ParallelExecution: {
// in parallel mode, make no attempt to recover, just signal an error. // in parallel mode, make no attempt to recover, just signal an error.
OutOfLineAbortPar *ool = oolAbortPar(ParallelBailoutUnsupported, OutOfLineAbortPar *ool = oolAbortPar(ParallelBailoutUnsupported,