| 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) {
|
|
|