| Index: src/x87/lithium-x87.cc
|
| diff --git a/src/x87/lithium-x87.cc b/src/x87/lithium-x87.cc
|
| index b00a0d995ba1f83d4f18eac00f0167d3666ce0c6..3a52dc4b0f2ecd8305fbd1b0d152ddc8b7755ad2 100644
|
| --- a/src/x87/lithium-x87.cc
|
| +++ b/src/x87/lithium-x87.cc
|
| @@ -1157,9 +1157,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);
|
| }
|
|
|
|
|
| @@ -2113,7 +2121,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());
|
| }
|
|
|
| @@ -2174,7 +2182,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());
|
| }
|
| LLoadNamedGeneric* result = new(zone()) LLoadNamedGeneric(
|
| @@ -2239,7 +2247,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());
|
| }
|
| LLoadKeyedGeneric* result =
|
|
|