| Index: src/ia32/ic-ia32.cc
|
| ===================================================================
|
| --- src/ia32/ic-ia32.cc (revision 3095)
|
| +++ src/ia32/ic-ia32.cc (working copy)
|
| @@ -301,7 +301,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.
|
| @@ -342,6 +342,12 @@
|
| }
|
|
|
|
|
| +void KeyedLoadIC::GenerateExternalArray(MacroAssembler* masm,
|
| + ExternalArrayType array_type) {
|
| + GenerateGeneric(masm);
|
| +}
|
| +
|
| +
|
| void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm) {
|
| // ----------- S t a t e -------------
|
| // -- eax : value
|
| @@ -395,15 +401,9 @@
|
| // ebx: index (as a smi)
|
| __ j(below, &fast, taken);
|
|
|
| - // Slow case: Push extra copies of the arguments (3).
|
| + // Slow case: call runtime.
|
| __ bind(&slow);
|
| - __ pop(ecx);
|
| - __ push(Operand(esp, 1 * kPointerSize));
|
| - __ push(Operand(esp, 1 * kPointerSize));
|
| - __ push(eax);
|
| - __ push(ecx);
|
| - // 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.
|
| // eax: value
|
| @@ -485,6 +485,12 @@
|
| }
|
|
|
|
|
| +void KeyedStoreIC::GenerateExternalArray(MacroAssembler* masm,
|
| + ExternalArrayType array_type) {
|
| + GenerateGeneric(masm);
|
| +}
|
| +
|
| +
|
| // Defined in ic.cc.
|
| Object* CallIC_Miss(Arguments args);
|
|
|
|
|