Index: src/ppc/lithium-ppc.cc |
diff --git a/src/ppc/lithium-ppc.cc b/src/ppc/lithium-ppc.cc |
index bfdbbdff34b1e13bc6e7e11304e73b61b59272b9..fb587842fa58e38109ff5f6be3946f167315dc97 100644 |
--- a/src/ppc/lithium-ppc.cc |
+++ b/src/ppc/lithium-ppc.cc |
@@ -930,22 +930,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()); |
- } |
} |
} |
@@ -1001,19 +993,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(), r3), UseFixed(instr->right(), r4)); |
+ LInstanceOf* result = new (zone()) LInstanceOf(context, left, right); |
return MarkAsCall(DefineFixed(result, r3), instr); |
} |
-LInstruction* LChunkBuilder::DoInstanceOfKnownGlobal( |
- HInstanceOfKnownGlobal* instr) { |
- LInstanceOfKnownGlobal* result = new (zone()) |
- LInstanceOfKnownGlobal(UseFixed(instr->context(), cp), |
- UseFixed(instr->left(), r3), FixedTemp(r7)); |
- return MarkAsCall(DefineFixed(result, r3), instr); |
+LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch( |
+ HHasInPrototypeChainAndBranch* instr) { |
+ LOperand* object = UseRegister(instr->object()); |
+ LOperand* prototype = UseRegister(instr->prototype()); |
+ return new (zone()) LHasInPrototypeChainAndBranch(object, prototype); |
} |