Chromium Code Reviews| Index: src/mips/code-stubs-mips.cc |
| diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc |
| index 69cf51e700f0d5bd68528440d2c261c4f92b0e02..36f2e113171e917cb3565f76b411999cb979a2ef 100644 |
| --- a/src/mips/code-stubs-mips.cc |
| +++ b/src/mips/code-stubs-mips.cc |
| @@ -1396,7 +1396,7 @@ void LoadIndexedStringStub::Generate(MacroAssembler* masm) { |
| __ Ret(); |
| StubRuntimeCallHelper call_helper; |
| - char_at_generator.GenerateSlow(masm, call_helper); |
| + char_at_generator.GenerateSlow(masm, PART_OF_IC_HANDLER, call_helper); |
| __ bind(&miss); |
| PropertyAccessCompiler::TailCallBuiltin( |
| @@ -3050,7 +3050,7 @@ void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) { |
| void StringCharCodeAtGenerator::GenerateSlow( |
| - MacroAssembler* masm, |
| + MacroAssembler* masm, EmbedMode embed_mode, |
| const RuntimeCallHelper& call_helper) { |
| __ Abort(kUnexpectedFallthroughToCharCodeAtSlowCase); |
| @@ -3064,6 +3064,10 @@ void StringCharCodeAtGenerator::GenerateSlow( |
| DONT_DO_SMI_CHECK); |
| call_helper.BeforeCall(masm); |
| // Consumed by runtime conversion function: |
| + if (FLAG_vector_ics && embed_mode == PART_OF_IC_HANDLER) { |
| + __ Push(VectorLoadICDescriptor::VectorRegister(), |
| + VectorLoadICDescriptor::SlotRegister()); |
| + } |
| __ Push(object_, index_); |
| if (index_flags_ == STRING_INDEX_IS_NUMBER) { |
| __ CallRuntime(Runtime::kNumberToIntegerMapMinusZero, 1); |
| @@ -3078,6 +3082,10 @@ void StringCharCodeAtGenerator::GenerateSlow( |
| __ Move(index_, v0); |
| __ pop(object_); |
| + if (FLAG_vector_ics && embed_mode == PART_OF_IC_HANDLER) { |
| + __ pop(VectorLoadICDescriptor::SlotRegister()); |
| + __ pop(VectorLoadICDescriptor::VectorRegister()); |
|
Yang
2015/03/23 14:23:59
Same here, corresponding Pop?
mvstanton
2015/03/23 15:54:44
Done.
|
| + } |
| // Reload the instance type. |
| __ lw(result_, FieldMemOperand(object_, HeapObject::kMapOffset)); |
| __ lbu(result_, FieldMemOperand(result_, Map::kInstanceTypeOffset)); |