Index: src/ic/ic-compiler.cc |
diff --git a/src/ic/ic-compiler.cc b/src/ic/ic-compiler.cc |
index 42b5e753bed21f9062fda382463e036908496eb3..f597083e631be5e9aa49adcab9dbcf58a0225581 100644 |
--- a/src/ic/ic-compiler.cc |
+++ b/src/ic/ic-compiler.cc |
@@ -197,6 +197,8 @@ Handle<Code> PropertyICCompiler::ComputeLoad(Isolate* isolate, |
code = compiler.CompileLoadInitialize(flags); |
} else if (ic_state == PREMONOMORPHIC) { |
code = compiler.CompileLoadPreMonomorphic(flags); |
+ } else if (ic_state == MEGAMORPHIC) { |
+ code = compiler.CompileLoadMegamorphic(flags); |
} else { |
UNREACHABLE(); |
} |
@@ -334,6 +336,14 @@ Handle<Code> PropertyICCompiler::CompileLoadPreMonomorphic(Code::Flags flags) { |
} |
+Handle<Code> PropertyICCompiler::CompileLoadMegamorphic(Code::Flags flags) { |
+ MegamorphicLoadStub stub(isolate(), LoadICState(extra_ic_state_)); |
+ auto code = stub.GetCode(); |
+ PROFILE(isolate(), CodeCreateEvent(Logger::LOAD_MEGAMORPHIC_TAG, *code, 0)); |
+ return code; |
+} |
+ |
+ |
Handle<Code> PropertyICCompiler::CompileStoreInitialize(Code::Flags flags) { |
StoreIC::GenerateInitialize(masm()); |
Handle<Code> code = GetCodeWithFlags(flags, "CompileStoreInitialize"); |