| Index: src/x64/builtins-x64.cc
|
| diff --git a/src/x64/builtins-x64.cc b/src/x64/builtins-x64.cc
|
| index 194d8a6b2e834f322520822c84d4a362d1ec107b..64ba35115b5c61ffd59d4c727a31203a0f528db0 100644
|
| --- a/src/x64/builtins-x64.cc
|
| +++ b/src/x64/builtins-x64.cc
|
| @@ -1075,14 +1075,19 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) {
|
|
|
| // Use inline caching to speed up access to arguments.
|
| if (FLAG_vector_ics) {
|
| - __ Move(VectorLoadICDescriptor::SlotRegister(), Smi::FromInt(0));
|
| + // TODO(mvstanton): Vector-based ics need additional infrastructure to
|
| + // be embedded here. For now, just call the runtime.
|
| + __ Push(receiver);
|
| + __ Push(key);
|
| + __ CallRuntime(Runtime::kGetProperty, 2);
|
| + } else {
|
| + Handle<Code> ic = CodeFactory::KeyedLoadIC(masm->isolate()).code();
|
| + __ Call(ic, RelocInfo::CODE_TARGET);
|
| + // It is important that we do not have a test instruction after the
|
| + // call. A test instruction after the call is used to indicate that
|
| + // we have generated an inline version of the keyed load. In this
|
| + // case, we know that we are not generating a test instruction next.
|
| }
|
| - Handle<Code> ic = CodeFactory::KeyedLoadIC(masm->isolate()).code();
|
| - __ Call(ic, RelocInfo::CODE_TARGET);
|
| - // It is important that we do not have a test instruction after the
|
| - // call. A test instruction after the call is used to indicate that
|
| - // we have generated an inline version of the keyed load. In this
|
| - // case, we know that we are not generating a test instruction next.
|
|
|
| // Push the nth argument.
|
| __ Push(rax);
|
|
|