| Index: src/mips/lithium-mips.cc
|
| diff --git a/src/mips/lithium-mips.cc b/src/mips/lithium-mips.cc
|
| index 47aac304929e84c7250b066f147517dd6666efcb..77dea5b869d8fd2b68626fea85cf6cad79b87213 100644
|
| --- a/src/mips/lithium-mips.cc
|
| +++ b/src/mips/lithium-mips.cc
|
| @@ -1103,9 +1103,17 @@ LInstruction* LChunkBuilder::DoTailCallThroughMegamorphicCache(
|
| UseFixed(instr->receiver(), LoadDescriptor::ReceiverRegister());
|
| LOperand* name_register =
|
| UseFixed(instr->name(), LoadDescriptor::NameRegister());
|
| + LOperand* slot = NULL;
|
| + LOperand* vector = NULL;
|
| + if (FLAG_vector_ics) {
|
| + slot = UseFixed(instr->slot(), VectorLoadICDescriptor::SlotRegister());
|
| + vector =
|
| + UseFixed(instr->vector(), VectorLoadICDescriptor::VectorRegister());
|
| + }
|
| +
|
| // Not marked as call. It can't deoptimize, and it never returns.
|
| return new (zone()) LTailCallThroughMegamorphicCache(
|
| - context, receiver_register, name_register);
|
| + context, receiver_register, name_register, slot, vector);
|
| }
|
|
|
|
|
| @@ -2066,7 +2074,7 @@ LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
|
| LOperand* global_object =
|
| UseFixed(instr->global_object(), LoadDescriptor::ReceiverRegister());
|
| LOperand* vector = NULL;
|
| - if (FLAG_vector_ics) {
|
| + if (instr->HasVectorAndSlot()) {
|
| vector = FixedTemp(VectorLoadICDescriptor::VectorRegister());
|
| }
|
| LLoadGlobalGeneric* result =
|
| @@ -2125,7 +2133,7 @@ LInstruction* LChunkBuilder::DoLoadNamedGeneric(HLoadNamedGeneric* instr) {
|
| LOperand* object =
|
| UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
|
| LOperand* vector = NULL;
|
| - if (FLAG_vector_ics) {
|
| + if (instr->HasVectorAndSlot()) {
|
| vector = FixedTemp(VectorLoadICDescriptor::VectorRegister());
|
| }
|
|
|
| @@ -2192,7 +2200,7 @@ LInstruction* LChunkBuilder::DoLoadKeyedGeneric(HLoadKeyedGeneric* instr) {
|
| UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
|
| LOperand* key = UseFixed(instr->key(), LoadDescriptor::NameRegister());
|
| LOperand* vector = NULL;
|
| - if (FLAG_vector_ics) {
|
| + if (instr->HasVectorAndSlot()) {
|
| vector = FixedTemp(VectorLoadICDescriptor::VectorRegister());
|
| }
|
|
|
|
|