Bug 1243374: Don't emit moves if the MoveResolver has failed earlier; r?nbp draft
authorBenjamin Bouvier <benj@benj.me>
Wed, 03 Feb 2016 15:10:38 +0100
changeset 328534 1ab9e21058cf52fce615c07c74eefd644c783fd6
parent 328533 4b10b58f480dfad7c051cf39eb4650feefeb22a9
child 513824 48b01d29faea14308cd8d9ed4db39e8adcb48098
push id10367
push userbenj@benj.me
push dateWed, 03 Feb 2016 14:10:56 +0000
reviewersnbp
bugs1243374
milestone47.0a1
Bug 1243374: Don't emit moves if the MoveResolver has failed earlier; r?nbp
js/src/jit/CodeGenerator.cpp
--- a/js/src/jit/CodeGenerator.cpp
+++ b/js/src/jit/CodeGenerator.cpp
@@ -2600,16 +2600,18 @@ CodeGenerator::visitMoveGroup(LMoveGroup
           case LDefinition::FLOAT32X4:  moveType = MoveOp::FLOAT32X4; break;
           default: MOZ_CRASH("Unexpected move type");
         }
 
         masm.propagateOOM(resolver.addMove(toMoveOperand(from), toMoveOperand(to), moveType));
     }
 
     masm.propagateOOM(resolver.resolve());
+    if (masm.oom())
+        return;
 
     MoveEmitter emitter(masm);
 
 #ifdef JS_CODEGEN_X86
     if (group->maybeScratchRegister().isGeneralReg())
         emitter.setScratchRegister(group->maybeScratchRegister().toGeneralReg()->reg());
     else
         resolver.sortMemoryToMemoryMoves();