Index: src/x64/ic-x64.cc |
=================================================================== |
--- src/x64/ic-x64.cc (revision 3095) |
+++ src/x64/ic-x64.cc (working copy) |
@@ -320,7 +320,7 @@ |
// Slow case: Load name and receiver from stack and jump to runtime. |
__ bind(&slow); |
__ IncrementCounter(&Counters::keyed_load_generic_slow, 1); |
- KeyedLoadIC::Generate(masm, ExternalReference(Runtime::kKeyedGetProperty)); |
+ Generate(masm, ExternalReference(Runtime::kKeyedGetProperty)); |
__ bind(&check_string); |
// The key is not a smi. |
// Is it a string? |
@@ -360,6 +360,12 @@ |
} |
+void KeyedLoadIC::GenerateExternalArray(MacroAssembler* masm, |
+ ExternalArrayType array_type) { |
+ GenerateGeneric(masm); |
+} |
+ |
+ |
void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) { |
// ----------- S t a t e ------------- |
// -- rsp[0] : return address |
@@ -458,15 +464,9 @@ |
// rbx: index (as a smi) |
__ j(below, &fast); |
- // Slow case: Push extra copies of the arguments (3). |
+ // Slow case: call runtime. |
__ bind(&slow); |
- __ pop(rcx); |
- __ push(Operand(rsp, 1 * kPointerSize)); |
- __ push(Operand(rsp, 1 * kPointerSize)); |
- __ push(rax); |
- __ push(rcx); |
- // Do tail-call to runtime routine. |
- __ TailCallRuntime(ExternalReference(Runtime::kSetProperty), 3, 1); |
+ Generate(masm, ExternalReference(Runtime::kSetProperty)); |
// Check whether the elements is a pixel array. |
// rax: value |
@@ -558,6 +558,12 @@ |
} |
+void KeyedStoreIC::GenerateExternalArray(MacroAssembler* masm, |
+ ExternalArrayType array_type) { |
+ GenerateGeneric(masm); |
+} |
+ |
+ |
void CallIC::Generate(MacroAssembler* masm, |
int argc, |
ExternalReference const& f) { |