Index: src/mips64/lithium-codegen-mips64.cc |
diff --git a/src/mips64/lithium-codegen-mips64.cc b/src/mips64/lithium-codegen-mips64.cc |
index b228f0b204dedf87c362f507b04152a6c09e524f..88f6b1809706c2e25da26f156a5239fe8602cb49 100644 |
--- a/src/mips64/lithium-codegen-mips64.cc |
+++ b/src/mips64/lithium-codegen-mips64.cc |
@@ -2857,13 +2857,14 @@ void LCodeGen::DoLoadGlobalCell(LLoadGlobalCell* instr) { |
template <class T> |
void LCodeGen::EmitVectorLoadICRegisters(T* instr) { |
DCHECK(FLAG_vector_ics); |
- Register vector = ToRegister(instr->temp_vector()); |
- DCHECK(vector.is(VectorLoadICDescriptor::VectorRegister())); |
- __ li(vector, instr->hydrogen()->feedback_vector()); |
+ Register vector_register = ToRegister(instr->temp_vector()); |
+ DCHECK(vector_register.is(VectorLoadICDescriptor::VectorRegister())); |
+ Handle<TypeFeedbackVector> vector = instr->hydrogen()->feedback_vector(); |
+ __ li(vector_register, vector); |
// No need to allocate this register. |
DCHECK(VectorLoadICDescriptor::SlotRegister().is(a0)); |
- __ li(VectorLoadICDescriptor::SlotRegister(), |
- Operand(Smi::FromInt(instr->hydrogen()->slot().ToInt()))); |
+ int index = vector->GetIndex(instr->hydrogen()->slot()); |
+ __ li(VectorLoadICDescriptor::SlotRegister(), Operand(Smi::FromInt(index))); |
} |