Index: src/arm64/lithium-arm64.cc |
diff --git a/src/arm64/lithium-arm64.cc b/src/arm64/lithium-arm64.cc |
index 4b8208180e51e115f8eeec4fc9e30b6fb11dbc86..c32e2b338df98cadf57d850aaae458c34adb5bef 100644 |
--- a/src/arm64/lithium-arm64.cc |
+++ b/src/arm64/lithium-arm64.cc |
@@ -765,22 +765,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()); |
- } |
} |
} |
@@ -1586,21 +1578,22 @@ LInstruction* LChunkBuilder::DoInnerAllocatedObject( |
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(), InstanceofStub::left()), |
- UseFixed(instr->right(), InstanceofStub::right())); |
+ LInstanceOf* result = new (zone()) LInstanceOf(context, left, right); |
return MarkAsCall(DefineFixed(result, x0), instr); |
} |
-LInstruction* LChunkBuilder::DoInstanceOfKnownGlobal( |
- HInstanceOfKnownGlobal* instr) { |
- LInstanceOfKnownGlobal* result = new(zone()) LInstanceOfKnownGlobal( |
- UseFixed(instr->context(), cp), |
- UseFixed(instr->left(), InstanceofStub::left())); |
- return MarkAsCall(DefineFixed(result, x0), instr); |
+LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch( |
+ HHasInPrototypeChainAndBranch* instr) { |
+ LOperand* object = UseRegister(instr->object()); |
+ LOperand* prototype = UseRegister(instr->prototype()); |
+ LOperand* scratch = TempRegister(); |
+ return new (zone()) LHasInPrototypeChainAndBranch(object, prototype, scratch); |
} |