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 |