Index: src/ic-ia32.cc |
=================================================================== |
--- src/ic-ia32.cc (revision 415) |
+++ src/ic-ia32.cc (working copy) |
@@ -669,9 +669,6 @@ |
} |
-// Defined in ic.cc. |
-Object* StoreIC_Miss(Arguments args); |
- |
void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { |
// ----------- S t a t e ------------- |
// -- eax : value |
@@ -690,6 +687,25 @@ |
} |
+void StoreIC::GenerateExtendStorage(MacroAssembler* masm) { |
+ // ----------- S t a t e ------------- |
+ // -- eax : value |
+ // -- ecx : transition map |
+ // -- esp[0] : return address |
+ // -- esp[4] : receiver |
+ // ----------------------------------- |
+ |
+ // Move the return address below the arguments. |
+ __ pop(ebx); |
+ __ push(Operand(esp, 0)); |
+ __ push(ecx); |
+ __ push(eax); |
+ __ push(ebx); |
+ // Perform tail call to the entry. |
+ __ TailCallRuntime(ExternalReference(IC_Utility(kStoreIC_ExtendStorage)), 3); |
+} |
+ |
+ |
void StoreIC::Generate(MacroAssembler* masm, const ExternalReference& f) { |
// ----------- S t a t e ------------- |
// -- eax : value |