Index: src/stub-cache.cc |
diff --git a/src/stub-cache.cc b/src/stub-cache.cc |
index 0ccd5e61b403a3946dc5ad4d4f157860526b6026..a687d81a3e57351eab2d2d2b6b9839f3fc3ebfcf 100644 |
--- a/src/stub-cache.cc |
+++ b/src/stub-cache.cc |
@@ -133,11 +133,11 @@ Handle<Code> StubCache::FindIC(Handle<Name> name, |
} |
-Handle<Code> StubCache::FindHandler(Handle<Name> name, |
- Handle<JSObject> receiver, |
- Handle<JSObject> stub_holder, |
- Code::Kind kind, |
- Code::StubType type) { |
+Handle<Code> StubCache::FindLoadHandler(Handle<Name> name, |
+ Handle<JSObject> receiver, |
+ Handle<JSObject> stub_holder, |
+ Code::Kind kind, |
+ Code::StubType type) { |
Code::ExtraICState extra_ic_state = Code::ComputeExtraICState( |
receiver.is_identical_to(stub_holder) ? Code::OWN_STUB |
: Code::PROTOTYPE_STUB); |
@@ -151,9 +151,26 @@ Handle<Code> StubCache::FindHandler(Handle<Name> name, |
} |
-Handle<Code> StubCache::ComputeMonomorphicIC(Handle<JSObject> receiver, |
- Handle<Code> handler, |
- Handle<Name> name) { |
+Handle<Code> StubCache::FindStoreHandler(Handle<Name> name, |
+ Handle<JSObject> receiver, |
+ Code::Kind kind, |
+ Code::StubType type, |
+ StrictModeFlag strict_mode) { |
+ Code::ExtraICState extra_ic_state = Code::ComputeExtraICState( |
+ STANDARD_STORE, strict_mode); |
+ ASSERT(type != Code::NORMAL); |
+ Code::Flags flags = Code::ComputeMonomorphicFlags( |
+ Code::STUB, extra_ic_state, type, kind); |
+ Handle<Object> probe(receiver->map()->FindInCodeCache(*name, flags), |
+ isolate_); |
+ if (probe->IsCode()) return Handle<Code>::cast(probe); |
+ return Handle<Code>::null(); |
+} |
+ |
+ |
+Handle<Code> StubCache::ComputeMonomorphicLoadIC(Handle<JSObject> receiver, |
+ Handle<Code> handler, |
+ Handle<Name> name) { |
Handle<Code> ic = FindIC(name, receiver, Code::LOAD_IC, handler->type()); |
if (!ic.is_null()) return ic; |
@@ -166,9 +183,9 @@ Handle<Code> StubCache::ComputeMonomorphicIC(Handle<JSObject> receiver, |
} |
-Handle<Code> StubCache::ComputeKeyedMonomorphicIC(Handle<JSObject> receiver, |
- Handle<Code> handler, |
- Handle<Name> name) { |
+Handle<Code> StubCache::ComputeMonomorphicKeyedLoadIC(Handle<JSObject> receiver, |
+ Handle<Code> handler, |
+ Handle<Name> name) { |
Handle<Code> ic = FindIC( |
name, receiver, Code::KEYED_LOAD_IC, handler->type()); |
if (!ic.is_null()) return ic; |
@@ -182,6 +199,41 @@ Handle<Code> StubCache::ComputeKeyedMonomorphicIC(Handle<JSObject> receiver, |
} |
+Handle<Code> StubCache::ComputeMonomorphicStoreIC(Handle<JSObject> receiver, |
+ Handle<Code> handler, |
+ Handle<Name> name, |
+ StrictModeFlag strict_mode) { |
+ Handle<Code> ic = FindIC( |
+ name, receiver, Code::STORE_IC, handler->type(), strict_mode); |
+ if (!ic.is_null()) return ic; |
+ |
+ StoreStubCompiler ic_compiler(isolate(), strict_mode); |
+ ic = ic_compiler.CompileMonomorphicIC( |
+ Handle<Map>(receiver->map()), handler, name); |
+ |
+ JSObject::UpdateMapCodeCache(receiver, name, ic); |
+ return ic; |
+} |
+ |
+ |
+Handle<Code> StubCache::ComputeMonomorphicKeyedStoreIC( |
+ Handle<JSObject> receiver, |
+ Handle<Code> handler, |
+ Handle<Name> name, |
+ StrictModeFlag strict_mode) { |
+ Handle<Code> ic = FindIC( |
+ name, receiver, Code::KEYED_STORE_IC, handler->type(), strict_mode); |
+ if (!ic.is_null()) return ic; |
+ |
+ KeyedStoreStubCompiler ic_compiler(isolate(), strict_mode, STANDARD_STORE); |
+ ic = ic_compiler.CompileMonomorphicIC( |
+ Handle<Map>(receiver->map()), handler, name); |
+ |
+ JSObject::UpdateMapCodeCache(receiver, name, ic); |
+ return ic; |
+} |
+ |
+ |
Handle<Code> StubCache::ComputeLoadNonexistent(Handle<Name> name, |
Handle<JSObject> receiver) { |
// If no global objects are present in the prototype chain, the load |
@@ -207,7 +259,7 @@ Handle<Code> StubCache::ComputeLoadNonexistent(Handle<Name> name, |
// Compile the stub that is either shared for all names or |
// name specific if there are global objects involved. |
- Handle<Code> handler = FindHandler( |
+ Handle<Code> handler = FindLoadHandler( |
cache_name, receiver, receiver, Code::LOAD_IC, Code::NONEXISTENT); |
if (!handler.is_null()) return handler; |
@@ -232,7 +284,7 @@ Handle<Code> StubCache::ComputeLoadField(Handle<Name> name, |
} |
Handle<JSObject> stub_holder = StubHolder(receiver, holder); |
- Handle<Code> stub = FindHandler( |
+ Handle<Code> stub = FindLoadHandler( |
name, receiver, stub_holder, Code::LOAD_IC, Code::FIELD); |
if (!stub.is_null()) return stub; |
@@ -251,7 +303,7 @@ Handle<Code> StubCache::ComputeLoadCallback( |
Handle<ExecutableAccessorInfo> callback) { |
ASSERT(v8::ToCData<Address>(callback->getter()) != 0); |
Handle<JSObject> stub_holder = StubHolder(receiver, holder); |
- Handle<Code> stub = FindHandler( |
+ Handle<Code> stub = FindLoadHandler( |
name, receiver, stub_holder, Code::LOAD_IC, Code::CALLBACKS); |
if (!stub.is_null()) return stub; |
@@ -268,7 +320,7 @@ Handle<Code> StubCache::ComputeLoadViaGetter(Handle<Name> name, |
Handle<JSObject> holder, |
Handle<JSFunction> getter) { |
Handle<JSObject> stub_holder = StubHolder(receiver, holder); |
- Handle<Code> stub = FindHandler( |
+ Handle<Code> stub = FindLoadHandler( |
name, receiver, stub_holder, Code::LOAD_IC, Code::CALLBACKS); |
if (!stub.is_null()) return stub; |
@@ -285,7 +337,7 @@ Handle<Code> StubCache::ComputeLoadConstant(Handle<Name> name, |
Handle<JSObject> holder, |
Handle<JSFunction> value) { |
Handle<JSObject> stub_holder = StubHolder(receiver, holder); |
- Handle<Code> handler = FindHandler( |
+ Handle<Code> handler = FindLoadHandler( |
name, receiver, stub_holder, Code::LOAD_IC, Code::CONSTANT_FUNCTION); |
if (!handler.is_null()) return handler; |
@@ -301,7 +353,7 @@ Handle<Code> StubCache::ComputeLoadInterceptor(Handle<Name> name, |
Handle<JSObject> receiver, |
Handle<JSObject> holder) { |
Handle<JSObject> stub_holder = StubHolder(receiver, holder); |
- Handle<Code> stub = FindHandler( |
+ Handle<Code> stub = FindLoadHandler( |
name, receiver, stub_holder, Code::LOAD_IC, Code::INTERCEPTOR); |
if (!stub.is_null()) return stub; |
@@ -350,7 +402,7 @@ Handle<Code> StubCache::ComputeKeyedLoadField(Handle<Name> name, |
} |
Handle<JSObject> stub_holder = StubHolder(receiver, holder); |
- Handle<Code> stub = FindHandler( |
+ Handle<Code> stub = FindLoadHandler( |
name, receiver, stub_holder, Code::KEYED_LOAD_IC, Code::FIELD); |
if (!stub.is_null()) return stub; |
@@ -367,7 +419,7 @@ Handle<Code> StubCache::ComputeKeyedLoadConstant(Handle<Name> name, |
Handle<JSObject> holder, |
Handle<JSFunction> value) { |
Handle<JSObject> stub_holder = StubHolder(receiver, holder); |
- Handle<Code> handler = FindHandler( |
+ Handle<Code> handler = FindLoadHandler( |
name, receiver, stub_holder, Code::KEYED_LOAD_IC, |
Code::CONSTANT_FUNCTION); |
if (!handler.is_null()) return handler; |
@@ -383,7 +435,7 @@ Handle<Code> StubCache::ComputeKeyedLoadInterceptor(Handle<Name> name, |
Handle<JSObject> receiver, |
Handle<JSObject> holder) { |
Handle<JSObject> stub_holder = StubHolder(receiver, holder); |
- Handle<Code> stub = FindHandler( |
+ Handle<Code> stub = FindLoadHandler( |
name, receiver, stub_holder, Code::KEYED_LOAD_IC, Code::INTERCEPTOR); |
if (!stub.is_null()) return stub; |
@@ -401,7 +453,7 @@ Handle<Code> StubCache::ComputeKeyedLoadCallback( |
Handle<JSObject> holder, |
Handle<ExecutableAccessorInfo> callback) { |
Handle<JSObject> stub_holder = StubHolder(receiver, holder); |
- Handle<Code> stub = FindHandler( |
+ Handle<Code> stub = FindLoadHandler( |
name, receiver, stub_holder, Code::KEYED_LOAD_IC, Code::CALLBACKS); |
if (!stub.is_null()) return stub; |
@@ -417,14 +469,14 @@ Handle<Code> StubCache::ComputeStoreField(Handle<Name> name, |
Handle<JSObject> receiver, |
LookupResult* lookup, |
StrictModeFlag strict_mode) { |
- Handle<Code> stub = FindIC( |
+ Handle<Code> stub = FindStoreHandler( |
name, receiver, Code::STORE_IC, Code::FIELD, strict_mode); |
if (!stub.is_null()) return stub; |
StoreStubCompiler compiler(isolate_, strict_mode); |
- Handle<Code> code = compiler.CompileStoreField(receiver, lookup, name); |
- JSObject::UpdateMapCodeCache(receiver, name, code); |
- return code; |
+ Handle<Code> handler = compiler.CompileStoreField(receiver, lookup, name); |
+ JSObject::UpdateMapCodeCache(receiver, name, handler); |
+ return handler; |
} |
@@ -433,15 +485,15 @@ Handle<Code> StubCache::ComputeStoreTransition(Handle<Name> name, |
LookupResult* lookup, |
Handle<Map> transition, |
StrictModeFlag strict_mode) { |
- Handle<Code> stub = FindIC( |
+ Handle<Code> stub = FindStoreHandler( |
name, receiver, Code::STORE_IC, Code::MAP_TRANSITION, strict_mode); |
if (!stub.is_null()) return stub; |
StoreStubCompiler compiler(isolate_, strict_mode); |
- Handle<Code> code = |
+ Handle<Code> handler = |
compiler.CompileStoreTransition(receiver, lookup, transition, name); |
- JSObject::UpdateMapCodeCache(receiver, name, code); |
- return code; |
+ JSObject::UpdateMapCodeCache(receiver, name, handler); |
+ return handler; |
} |
@@ -534,15 +586,15 @@ Handle<Code> StubCache::ComputeStoreCallback( |
Handle<ExecutableAccessorInfo> callback, |
StrictModeFlag strict_mode) { |
ASSERT(v8::ToCData<Address>(callback->setter()) != 0); |
- Handle<Code> stub = FindIC( |
+ Handle<Code> stub = FindStoreHandler( |
name, receiver, Code::STORE_IC, Code::CALLBACKS, strict_mode); |
if (!stub.is_null()) return stub; |
StoreStubCompiler compiler(isolate_, strict_mode); |
- Handle<Code> code = |
- compiler.CompileStoreCallback(name, receiver, holder, callback); |
- JSObject::UpdateMapCodeCache(receiver, name, code); |
- return code; |
+ Handle<Code> handler = compiler.CompileStoreCallback( |
+ receiver, holder, name, callback); |
+ JSObject::UpdateMapCodeCache(receiver, name, handler); |
+ return handler; |
} |
@@ -551,29 +603,29 @@ Handle<Code> StubCache::ComputeStoreViaSetter(Handle<Name> name, |
Handle<JSObject> holder, |
Handle<JSFunction> setter, |
StrictModeFlag strict_mode) { |
- Handle<Code> stub = FindIC( |
+ Handle<Code> stub = FindStoreHandler( |
name, receiver, Code::STORE_IC, Code::CALLBACKS, strict_mode); |
if (!stub.is_null()) return stub; |
StoreStubCompiler compiler(isolate_, strict_mode); |
- Handle<Code> code = |
- compiler.CompileStoreViaSetter(name, receiver, holder, setter); |
- JSObject::UpdateMapCodeCache(receiver, name, code); |
- return code; |
+ Handle<Code> handler = compiler.CompileStoreViaSetter( |
+ receiver, holder, name, setter); |
+ JSObject::UpdateMapCodeCache(receiver, name, handler); |
+ return handler; |
} |
Handle<Code> StubCache::ComputeStoreInterceptor(Handle<Name> name, |
Handle<JSObject> receiver, |
StrictModeFlag strict_mode) { |
- Handle<Code> stub = FindIC( |
+ Handle<Code> stub = FindStoreHandler( |
name, receiver, Code::STORE_IC, Code::INTERCEPTOR, strict_mode); |
if (!stub.is_null()) return stub; |
StoreStubCompiler compiler(isolate_, strict_mode); |
- Handle<Code> code = compiler.CompileStoreInterceptor(receiver, name); |
- JSObject::UpdateMapCodeCache(receiver, name, code); |
- return code; |
+ Handle<Code> handler = compiler.CompileStoreInterceptor(receiver, name); |
+ JSObject::UpdateMapCodeCache(receiver, name, handler); |
+ return handler; |
} |
@@ -581,14 +633,14 @@ Handle<Code> StubCache::ComputeKeyedStoreField(Handle<Name> name, |
Handle<JSObject> receiver, |
LookupResult* lookup, |
StrictModeFlag strict_mode) { |
- Handle<Code> stub = FindIC( |
+ Handle<Code> stub = FindStoreHandler( |
name, receiver, Code::KEYED_STORE_IC, Code::FIELD, strict_mode); |
if (!stub.is_null()) return stub; |
KeyedStoreStubCompiler compiler(isolate(), strict_mode, STANDARD_STORE); |
- Handle<Code> code = compiler.CompileStoreField(receiver, lookup, name); |
- JSObject::UpdateMapCodeCache(receiver, name, code); |
- return code; |
+ Handle<Code> handler = compiler.CompileStoreField(receiver, lookup, name); |
+ JSObject::UpdateMapCodeCache(receiver, name, handler); |
+ return handler; |
} |
@@ -598,15 +650,15 @@ Handle<Code> StubCache::ComputeKeyedStoreTransition( |
LookupResult* lookup, |
Handle<Map> transition, |
StrictModeFlag strict_mode) { |
- Handle<Code> stub = FindIC( |
+ Handle<Code> stub = FindStoreHandler( |
name, receiver, Code::KEYED_STORE_IC, Code::MAP_TRANSITION, strict_mode); |
if (!stub.is_null()) return stub; |
KeyedStoreStubCompiler compiler(isolate(), strict_mode, STANDARD_STORE); |
- Handle<Code> code = |
+ Handle<Code> handler = |
compiler.CompileStoreTransition(receiver, lookup, transition, name); |
- JSObject::UpdateMapCodeCache(receiver, name, code); |
- return code; |
+ JSObject::UpdateMapCodeCache(receiver, name, handler); |
+ return handler; |
} |
@@ -970,10 +1022,10 @@ Handle<Code> StubCache::ComputeLoadElementPolymorphic( |
} |
-Handle<Code> StubCache::ComputePolymorphicIC(MapHandleList* receiver_maps, |
- CodeHandleList* handlers, |
- int number_of_valid_maps, |
- Handle<Name> name) { |
+Handle<Code> StubCache::ComputePolymorphicLoadIC(MapHandleList* receiver_maps, |
+ CodeHandleList* handlers, |
+ int number_of_valid_maps, |
+ Handle<Name> name) { |
LoadStubCompiler ic_compiler(isolate_); |
Code::StubType type = number_of_valid_maps == 1 ? handlers->at(0)->type() |
: Code::NORMAL; |
@@ -983,6 +1035,20 @@ Handle<Code> StubCache::ComputePolymorphicIC(MapHandleList* receiver_maps, |
} |
+Handle<Code> StubCache::ComputePolymorphicStoreIC(MapHandleList* receiver_maps, |
+ CodeHandleList* handlers, |
+ int number_of_valid_maps, |
+ Handle<Name> name, |
+ StrictModeFlag strict_mode) { |
+ StoreStubCompiler ic_compiler(isolate_, strict_mode); |
+ Code::StubType type = number_of_valid_maps == 1 ? handlers->at(0)->type() |
+ : Code::NORMAL; |
+ Handle<Code> ic = ic_compiler.CompilePolymorphicIC( |
+ receiver_maps, handlers, name, type, PROPERTY); |
+ return ic; |
+} |
+ |
+ |
Handle<Code> StubCache::ComputeStoreElementPolymorphic( |
MapHandleList* receiver_maps, |
KeyedAccessStoreMode store_mode, |
@@ -1490,28 +1556,42 @@ void StubCompiler::LookupPostInterceptor(Handle<JSObject> holder, |
#define __ ACCESS_MASM(masm()) |
-Register BaseLoadStubCompiler::HandlerFrontendHeader(Handle<JSObject> object, |
- Register object_reg, |
- Handle<JSObject> holder, |
- Handle<Name> name, |
- Label* miss) { |
- // Check the prototype chain. |
+Register BaseLoadStubCompiler::HandlerFrontendHeader( |
+ Handle<JSObject> object, |
+ Register object_reg, |
+ Handle<JSObject> holder, |
+ Handle<Name> name, |
+ Label* miss) { |
return CheckPrototypes(object, object_reg, holder, |
scratch1(), scratch2(), scratch3(), |
name, miss, SKIP_RECEIVER); |
} |
-Register BaseLoadStubCompiler::HandlerFrontend(Handle<JSObject> object, |
- Register object_reg, |
- Handle<JSObject> holder, |
- Handle<Name> name, |
- Label* success) { |
+// HandlerFrontend for store uses the name register. It has to be restored |
+// before a miss. |
+Register BaseStoreStubCompiler::HandlerFrontendHeader( |
+ Handle<JSObject> object, |
+ Register object_reg, |
+ Handle<JSObject> holder, |
+ Handle<Name> name, |
+ Label* miss) { |
+ return CheckPrototypes(object, object_reg, holder, |
+ this->name(), scratch1(), scratch2(), |
+ name, miss, SKIP_RECEIVER); |
+} |
+ |
+ |
+Register BaseLoadStoreStubCompiler::HandlerFrontend(Handle<JSObject> object, |
+ Register object_reg, |
+ Handle<JSObject> holder, |
+ Handle<Name> name, |
+ Label* success) { |
Label miss; |
Register reg = HandlerFrontendHeader(object, object_reg, holder, name, &miss); |
- HandlerFrontendFooter(success, &miss); |
+ HandlerFrontendFooter(name, success, &miss); |
return reg; |
} |
@@ -1625,7 +1705,7 @@ void BaseLoadStubCompiler::GenerateLoadPostInterceptor( |
} |
-Handle<Code> BaseLoadStubCompiler::CompileMonomorphicIC( |
+Handle<Code> BaseLoadStoreStubCompiler::CompileMonomorphicIC( |
Handle<Map> receiver_map, |
Handle<Code> handler, |
Handle<Name> name) { |
@@ -1659,9 +1739,35 @@ Handle<Code> BaseStoreStubCompiler::CompileStoreTransition( |
LookupResult* lookup, |
Handle<Map> transition, |
Handle<Name> name) { |
- Label miss, miss_restore_name, slow; |
+ Label miss, slow; |
+ |
+ // Ensure no transitions to deprecated maps are followed. |
+ __ CheckMapDeprecated(transition, scratch1(), &miss); |
+ |
+ // Check that we are allowed to write this. |
+ if (object->GetPrototype()->IsJSObject()) { |
+ Handle<JSObject> holder; |
+ // holder == object indicates that no property was found. |
+ if (lookup->holder() != *object) { |
+ holder = Handle<JSObject>(lookup->holder()); |
+ } else { |
+ // Find the top object. |
+ holder = object; |
+ do { |
+ holder = Handle<JSObject>(JSObject::cast(holder->GetPrototype())); |
+ } while (holder->GetPrototype()->IsJSObject()); |
+ } |
- GenerateNameCheck(name, this->name(), &miss); |
+ Register holder_reg = |
+ HandlerFrontendHeader(object, receiver(), holder, name, &miss); |
+ |
+ // If no property was found, and the holder (the last object in the |
+ // prototype chain) is in slow mode, we need to do a negative lookup on the |
+ // holder. |
+ if (lookup->holder() == *object) { |
+ GenerateNegativeHolderLookup(masm(), holder, holder_reg, name, &miss); |
+ } |
+ } |
GenerateStoreTransition(masm(), |
object, |
@@ -1671,19 +1777,17 @@ Handle<Code> BaseStoreStubCompiler::CompileStoreTransition( |
receiver(), this->name(), value(), |
scratch1(), scratch2(), scratch3(), |
&miss, |
- &miss_restore_name, |
&slow); |
// Handle store cache miss. |
- GenerateRestoreName(masm(), &miss_restore_name, name); |
- __ bind(&miss); |
+ GenerateRestoreName(masm(), &miss, name); |
TailCallBuiltin(masm(), MissBuiltin(kind())); |
GenerateRestoreName(masm(), &slow, name); |
TailCallBuiltin(masm(), SlowBuiltin(kind())); |
// Return the generated code. |
- return GetICCode(kind(), Code::MAP_TRANSITION, name); |
+ return GetCode(kind(), Code::MAP_TRANSITION, name); |
} |
@@ -1692,7 +1796,7 @@ Handle<Code> BaseStoreStubCompiler::CompileStoreField(Handle<JSObject> object, |
Handle<Name> name) { |
Label miss; |
- GenerateNameCheck(name, this->name(), &miss); |
+ HandlerFrontendHeader(object, receiver(), object, name, &miss); |
// Generate store field code. |
GenerateStoreField(masm(), |
@@ -1706,32 +1810,22 @@ Handle<Code> BaseStoreStubCompiler::CompileStoreField(Handle<JSObject> object, |
TailCallBuiltin(masm(), MissBuiltin(kind())); |
// Return the generated code. |
- return GetICCode(kind(), Code::FIELD, name); |
+ return GetCode(kind(), Code::FIELD, name); |
} |
Handle<Code> StoreStubCompiler::CompileStoreViaSetter( |
- Handle<Name> name, |
Handle<JSObject> object, |
Handle<JSObject> holder, |
+ Handle<Name> name, |
Handle<JSFunction> setter) { |
- Label miss, miss_restore_name; |
- |
- // Check that the maps haven't changed, preserving the name register. |
- __ JumpIfSmi(receiver(), &miss); |
- CheckPrototypes(object, receiver(), holder, |
- this->name(), scratch1(), scratch2(), |
- name, &miss_restore_name); |
+ Label success; |
+ HandlerFrontend(object, receiver(), holder, name, &success); |
+ __ bind(&success); |
GenerateStoreViaSetter(masm(), setter); |
- GenerateRestoreName(masm(), &miss_restore_name, name); |
- |
- __ bind(&miss); |
- TailCallBuiltin(masm(), MissBuiltin(kind())); |
- |
- // Return the generated code. |
- return GetICCode(kind(), Code::CALLBACKS, name); |
+ return GetCode(kind(), Code::CALLBACKS, name); |
} |
@@ -1813,12 +1907,12 @@ void KeyedStoreStubCompiler::JitEvent(Handle<Name> name, Handle<Code> code) { |
} |
-Handle<Code> BaseLoadStubCompiler::GetICCode(Code::Kind kind, |
- Code::StubType type, |
- Handle<Name> name, |
- InlineCacheState state) { |
+Handle<Code> BaseLoadStoreStubCompiler::GetICCode(Code::Kind kind, |
+ Code::StubType type, |
+ Handle<Name> name, |
+ InlineCacheState state) { |
Code::Flags flags = Code::ComputeFlags( |
- kind, state, Code::kNoExtraICState, type); |
+ kind, state, extra_state(), type); |
Handle<Code> code = GetCodeWithFlags(flags, name); |
PROFILE(isolate(), CodeCreateEvent(log_kind(code), *code, *name)); |
JitEvent(name, code); |
@@ -1839,19 +1933,6 @@ Handle<Code> BaseLoadStubCompiler::GetCode(Code::Kind kind, |
} |
-Handle<Code> BaseStoreStubCompiler::GetICCode(Code::Kind kind, |
- Code::StubType type, |
- Handle<Name> name, |
- InlineCacheState state) { |
- Code::Flags flags = Code::ComputeFlags( |
- kind, state, extra_state(), type); |
- Handle<Code> code = GetCodeWithFlags(flags, name); |
- PROFILE(isolate(), CodeCreateEvent(log_kind(code), *code, *name)); |
- JitEvent(name, code); |
- return code; |
-} |
- |
- |
Handle<Code> BaseStoreStubCompiler::GetCode(Code::Kind kind, |
Code::StubType type, |
Handle<Name> name) { |