Chromium Code Reviews| Index: src/x64/ic-x64.cc |
| =================================================================== |
| --- src/x64/ic-x64.cc (revision 2241) |
| +++ src/x64/ic-x64.cc (working copy) |
| @@ -35,7 +35,13 @@ |
| namespace v8 { |
| namespace internal { |
| +// ---------------------------------------------------------------------------- |
| +// Static IC stub generators. |
| +// |
| +#define __ ACCESS_MASM(masm) |
| + |
| + |
| void KeyedLoadIC::ClearInlinedVersion(Address address) { |
| UNIMPLEMENTED(); |
| } |
| @@ -175,7 +181,21 @@ |
| } |
| void StoreIC::Generate(MacroAssembler* masm, ExternalReference const& f) { |
| - masm->int3(); // UNIMPLEMENTED. |
| + // ----------- S t a t e ------------- |
| + // -- rax : value |
| + // -- rcx : name |
| + // -- rsp[0] : return address |
| + // -- rsp[4] : receiver |
|
William Hesse
2009/06/22 19:14:23
rsp[8]?
Mads Ager (chromium)
2009/06/22 19:25:00
Done.
|
| + // ----------------------------------- |
| + // Move the return address below the arguments. |
| + __ pop(rbx); |
| + __ push(Operand(rsp, 0)); |
| + __ push(rcx); |
| + __ push(rax); |
| + __ push(rbx); |
| + |
| + // Perform tail call to the entry. |
| + __ TailCallRuntime(f, 3); |
| } |
| void StoreIC::GenerateExtendStorage(MacroAssembler* masm) { |
| @@ -186,4 +206,8 @@ |
| masm->int3(); // UNIMPLEMENTED. |
| } |
| + |
| +#undef __ |
| + |
| + |
| } } // namespace v8::internal |