Index: src/x64/ic-x64.cc |
diff --git a/src/x64/ic-x64.cc b/src/x64/ic-x64.cc |
index 0a9ceaa8650ba3f9565e5b7c0084324ca59569ea..761e05ae466df7ce6709006b63c26925aa59b392 100644 |
--- a/src/x64/ic-x64.cc |
+++ b/src/x64/ic-x64.cc |
@@ -1528,6 +1528,26 @@ void KeyedStoreIC::GenerateRuntimeSetProperty(MacroAssembler* masm, |
} |
+void StoreIC::GenerateSlow(MacroAssembler* masm) { |
+ // ----------- S t a t e ------------- |
+ // -- rax : value |
+ // -- rcx : key |
+ // -- rdx : receiver |
+ // -- rsp[0] : return address |
+ // ----------------------------------- |
+ |
+ __ pop(rbx); |
+ __ push(rdx); // receiver |
+ __ push(rcx); // key |
+ __ push(rax); // value |
+ __ push(rbx); // return address |
+ |
+ // Do tail-call to runtime routine. |
+ ExternalReference ref(IC_Utility(kKeyedStoreIC_Slow), masm->isolate()); |
+ __ TailCallExternalReference(ref, 3, 1); |
+} |
+ |
+ |
void KeyedStoreIC::GenerateSlow(MacroAssembler* masm) { |
// ----------- S t a t e ------------- |
// -- rax : value |