| Index: src/arm/lithium-arm.cc
|
| diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc
|
| index 22f55905f117a386a3f1b41f591dfd6c272a4ba2..f216a8e094d409bc80c5b492bd27744ab08d94f9 100644
|
| --- a/src/arm/lithium-arm.cc
|
| +++ b/src/arm/lithium-arm.cc
|
| @@ -630,16 +630,12 @@ LInstruction* LChunkBuilder::MarkAsCall(LInstruction* instr,
|
| instr = AssignPointerMap(instr);
|
|
|
| if (hinstr->HasObservableSideEffects()) {
|
| + ASSERT(hinstr->next()->IsSimulate());
|
| + HSimulate* sim = HSimulate::cast(hinstr->next());
|
| ASSERT(instruction_pending_deoptimization_environment_ == NULL);
|
| ASSERT(pending_deoptimization_ast_id_.IsNone());
|
| - if (!hinstr->IsControlInstruction()) {
|
| - ASSERT(hinstr->next()->IsSimulate());
|
| - HSimulate* sim = HSimulate::cast(hinstr->next());
|
| - pending_deoptimization_ast_id_ = sim->ast_id();
|
| - } else {
|
| - pending_deoptimization_ast_id_ = BailoutId::PendingMarker();
|
| - }
|
| instruction_pending_deoptimization_environment_ = instr;
|
| + pending_deoptimization_ast_id_ = sim->ast_id();
|
| }
|
|
|
| // If instruction does not have side-effects lazy deoptimization
|
| @@ -1720,13 +1716,13 @@ LInstruction* LChunkBuilder::DoRandom(HRandom* instr) {
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::DoCompareGenericAndBranch(
|
| - HCompareGenericAndBranch* instr) {
|
| +LInstruction* LChunkBuilder::DoCompareGeneric(HCompareGeneric* instr) {
|
| ASSERT(instr->left()->representation().IsTagged());
|
| ASSERT(instr->right()->representation().IsTagged());
|
| LOperand* left = UseFixed(instr->left(), r1);
|
| LOperand* right = UseFixed(instr->right(), r0);
|
| - return MarkAsCall(new(zone()) LCompareGenericAndBranch(left, right), instr);
|
| + LCmpT* result = new(zone()) LCmpT(left, right);
|
| + return MarkAsCall(DefineFixed(result, r0), instr);
|
| }
|
|
|
|
|
| @@ -2519,9 +2515,7 @@ LInstruction* LChunkBuilder::DoSimulate(HSimulate* instr) {
|
|
|
| // If there is an instruction pending deoptimization environment create a
|
| // lazy bailout instruction to capture the environment.
|
| - if (!pending_deoptimization_ast_id_.IsNone()) {
|
| - ASSERT(pending_deoptimization_ast_id_ == instr->ast_id() ||
|
| - pending_deoptimization_ast_id_.IsPendingMarker());
|
| + if (pending_deoptimization_ast_id_ == instr->ast_id()) {
|
| LInstruction* result = new(zone()) LLazyBailout;
|
| result = AssignEnvironment(result);
|
| // Store the lazy deopt environment with the instruction if needed. Right
|
|
|