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 |