Chromium Code Reviews| Index: src/ia32/ic-ia32.cc |
| diff --git a/src/ia32/ic-ia32.cc b/src/ia32/ic-ia32.cc |
| index 964db0eb1b649ecd44b953d28ff6a6955734174e..7fc0ee31958c3b8bcab847356dc3539d053856c4 100644 |
| --- a/src/ia32/ic-ia32.cc |
| +++ b/src/ia32/ic-ia32.cc |
| @@ -476,6 +476,7 @@ void KeyedLoadIC::GenerateGeneric(MacroAssembler* masm) { |
| Immediate(isolate->factory()->hash_table_map())); |
| __ j(equal, &probe_dictionary); |
| + __ jmp(&slow); |
|
danno
2013/05/07 15:25:29
You should remove this.
|
| // The receiver's map is still in eax, compute the keyed lookup cache hash |
| // based on 32 bits of the map pointer and the string hash. |
| if (FLAG_debug_code) { |
| @@ -1530,6 +1531,26 @@ void KeyedStoreIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) { |
| } |
| +void StoreIC::GenerateSlow(MacroAssembler* masm) { |
| + // ----------- S t a t e ------------- |
| + // -- eax : value |
| + // -- ecx : key |
| + // -- edx : receiver |
| + // -- esp[0] : return address |
| + // ----------------------------------- |
| + |
| + __ pop(ebx); |
| + __ push(edx); |
| + __ push(ecx); |
| + __ push(eax); |
| + __ push(ebx); // return address |
| + |
| + // Do tail-call to runtime routine. |
| + ExternalReference ref(IC_Utility(kStoreIC_Slow), masm->isolate()); |
| + __ TailCallExternalReference(ref, 3, 1); |
| +} |
| + |
| + |
| void KeyedStoreIC::GenerateSlow(MacroAssembler* masm) { |
| // ----------- S t a t e ------------- |
| // -- eax : value |