Index: src/arm/lithium-arm.cc |
diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc |
index 1c04ba7ee7bbb5d362de2890aad51f8550259ff4..a40a747e3bb1ee9b2b2be1433a0cf9900fef7a59 100644 |
--- a/src/arm/lithium-arm.cc |
+++ b/src/arm/lithium-arm.cc |
@@ -923,22 +923,14 @@ void LChunkBuilder::AddInstruction(LInstruction* instr, |
if (instr->IsCall()) { |
HValue* hydrogen_value_for_lazy_bailout = hydrogen_val; |
- LInstruction* instruction_needing_environment = NULL; |
if (hydrogen_val->HasObservableSideEffects()) { |
HSimulate* sim = HSimulate::cast(hydrogen_val->next()); |
- instruction_needing_environment = instr; |
sim->ReplayEnvironment(current_block_->last_environment()); |
hydrogen_value_for_lazy_bailout = sim; |
} |
LInstruction* bailout = AssignEnvironment(new(zone()) LLazyBailout()); |
bailout->set_hydrogen_value(hydrogen_value_for_lazy_bailout); |
chunk_->AddInstruction(bailout, current_block_); |
- if (instruction_needing_environment != NULL) { |
- // Store the lazy deopt environment with the instruction if needed. |
- // Right now it is only used for LInstanceOfKnownGlobal. |
- instruction_needing_environment-> |
- SetDeferredLazyDeoptimizationEnvironment(bailout->environment()); |
- } |
} |
} |
@@ -994,22 +986,21 @@ LInstruction* LChunkBuilder::DoArgumentsElements(HArgumentsElements* elems) { |
LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) { |
+ LOperand* left = |
+ UseFixed(instr->left(), InstanceOfDescriptor::LeftRegister()); |
+ LOperand* right = |
+ UseFixed(instr->right(), InstanceOfDescriptor::RightRegister()); |
LOperand* context = UseFixed(instr->context(), cp); |
- LInstanceOf* result = |
- new(zone()) LInstanceOf(context, UseFixed(instr->left(), r0), |
- UseFixed(instr->right(), r1)); |
+ LInstanceOf* result = new (zone()) LInstanceOf(context, left, right); |
return MarkAsCall(DefineFixed(result, r0), instr); |
} |
-LInstruction* LChunkBuilder::DoInstanceOfKnownGlobal( |
- HInstanceOfKnownGlobal* instr) { |
- LInstanceOfKnownGlobal* result = |
- new(zone()) LInstanceOfKnownGlobal( |
- UseFixed(instr->context(), cp), |
- UseFixed(instr->left(), r0), |
- FixedTemp(r4)); |
- return MarkAsCall(DefineFixed(result, r0), instr); |
+LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch( |
+ HHasInPrototypeChainAndBranch* instr) { |
+ LOperand* object = UseRegister(instr->object()); |
+ LOperand* prototype = UseRegister(instr->prototype()); |
+ return new (zone()) LHasInPrototypeChainAndBranch(object, prototype); |
} |