| Index: src/x64/stub-cache-x64.cc
|
| diff --git a/src/x64/stub-cache-x64.cc b/src/x64/stub-cache-x64.cc
|
| index 7d7f5ebaa346cf430120ca411b062fc5bfa7b52c..091c826ccc4eb77a36a2852a9101681b6230dea7 100644
|
| --- a/src/x64/stub-cache-x64.cc
|
| +++ b/src/x64/stub-cache-x64.cc
|
| @@ -1144,6 +1144,36 @@ Object* LoadStubCompiler::CompileLoadGlobal(JSObject* object,
|
| }
|
|
|
|
|
| +Object* KeyedLoadStubCompiler::CompileLoadCallback(String* name,
|
| + JSObject* receiver,
|
| + JSObject* holder,
|
| + AccessorInfo* callback) {
|
| + // ----------- S t a t e -------------
|
| + // -- rsp[0] : return address
|
| + // -- rsp[8] : name
|
| + // -- rsp[16] : receiver
|
| + // -----------------------------------
|
| + Label miss;
|
| +
|
| + __ movq(rax, Operand(rsp, kPointerSize));
|
| + __ movq(rcx, Operand(rsp, 2 * kPointerSize));
|
| + __ IncrementCounter(&Counters::keyed_load_callback, 1);
|
| +
|
| + // Check that the name has not changed.
|
| + __ Cmp(rax, Handle<String>(name));
|
| + __ j(not_equal, &miss);
|
| +
|
| + GenerateLoadCallback(receiver, holder, rcx, rax, rbx, rdx,
|
| + callback, name, &miss);
|
| + __ bind(&miss);
|
| + __ DecrementCounter(&Counters::keyed_load_callback, 1);
|
| + GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);
|
| +
|
| + // Return the generated code.
|
| + return GetCode(CALLBACKS, name);
|
| +}
|
| +
|
| +
|
| Object* KeyedLoadStubCompiler::CompileLoadArrayLength(String* name) {
|
| // ----------- S t a t e -------------
|
| // -- rsp[0] : return address
|
| @@ -1170,15 +1200,6 @@ Object* KeyedLoadStubCompiler::CompileLoadArrayLength(String* name) {
|
| }
|
|
|
|
|
| -Object* KeyedLoadStubCompiler::CompileLoadCallback(String* name,
|
| - JSObject* object,
|
| - JSObject* holder,
|
| - AccessorInfo* callback) {
|
| - UNIMPLEMENTED();
|
| - return NULL;
|
| -}
|
| -
|
| -
|
| Object* KeyedLoadStubCompiler::CompileLoadConstant(String* name,
|
| JSObject* receiver,
|
| JSObject* holder,
|
|
|