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) { |