| Index: src/x64/ic-x64.cc
|
| ===================================================================
|
| --- src/x64/ic-x64.cc (revision 2559)
|
| +++ src/x64/ic-x64.cc (working copy)
|
| @@ -306,8 +306,7 @@
|
| // -- rsp[8] : name
|
| // -- rsp[16] : receiver
|
| // -----------------------------------
|
| -
|
| - Generate(masm, ExternalReference(Runtime::kKeyedGetProperty));
|
| + Generate(masm, ExternalReference(IC_Utility(kKeyedLoadIC_Miss)));
|
| }
|
|
|
|
|
| @@ -341,9 +340,25 @@
|
| __ TailCallRuntime(f, 3);
|
| }
|
|
|
| +
|
| void KeyedStoreIC::GenerateExtendStorage(MacroAssembler* masm) {
|
| - __ int3();
|
| - __ movq(rax, Immediate(0xdead1234));
|
| + // ----------- S t a t e -------------
|
| + // -- rax : value
|
| + // -- rcx : transition map
|
| + // -- rsp[0] : return address
|
| + // -- rsp[8] : key
|
| + // -- rsp[16] : receiver
|
| + // -----------------------------------
|
| +
|
| + __ pop(rbx);
|
| + __ push(Operand(rsp, 1 * kPointerSize)); // receiver
|
| + __ push(rcx); // transition map
|
| + __ push(rax); // value
|
| + __ push(rbx); // return address
|
| +
|
| + // Do tail-call to runtime routine.
|
| + __ TailCallRuntime(
|
| + ExternalReference(IC_Utility(kSharedStoreIC_ExtendStorage)), 3);
|
| }
|
|
|
|
|
| @@ -460,15 +475,6 @@
|
| }
|
|
|
|
|
| -Object* KeyedStoreStubCompiler::CompileStoreField(JSObject* object,
|
| - int index,
|
| - Map* transition,
|
| - String* name) {
|
| - UNIMPLEMENTED();
|
| - return NULL;
|
| -}
|
| -
|
| -
|
| void CallIC::Generate(MacroAssembler* masm,
|
| int argc,
|
| ExternalReference const& f) {
|
|
|