| Index: src/stub-cache.cc
|
| diff --git a/src/stub-cache.cc b/src/stub-cache.cc
|
| index 4c99c30e7fbb1c4f5e6c76528a75ce333f5ccaa5..ad7a6841ae81d106874c25c16acecb2881598181 100644
|
| --- a/src/stub-cache.cc
|
| +++ b/src/stub-cache.cc
|
| @@ -417,20 +417,6 @@ Handle<Code> StubCache::ComputeKeyedLoadFunctionPrototype(
|
| }
|
|
|
|
|
| -Handle<Code> StoreStubCompiler::CompileStoreField(Handle<JSObject> object,
|
| - int index,
|
| - Handle<Map> transition,
|
| - Handle<String> name) {
|
| - CALL_HEAP_FUNCTION(
|
| - isolate(),
|
| - (set_failure(NULL),
|
| - CompileStoreField(*object, index,
|
| - transition.is_null() ? NULL : *transition,
|
| - *name)),
|
| - Code);
|
| -}
|
| -
|
| -
|
| Handle<Code> StubCache::ComputeStoreField(Handle<String> name,
|
| Handle<JSObject> receiver,
|
| int field_index,
|
| @@ -452,14 +438,6 @@ Handle<Code> StubCache::ComputeStoreField(Handle<String> name,
|
| }
|
|
|
|
|
| -Handle<Code> KeyedStoreStubCompiler::CompileStoreElement(Handle<Map> map) {
|
| - CALL_HEAP_FUNCTION(isolate(),
|
| - (set_failure(NULL),
|
| - CompileStoreElement(*map)),
|
| - Code);
|
| -}
|
| -
|
| -
|
| Handle<Code> StubCache::ComputeKeyedLoadOrStoreElement(
|
| Handle<JSObject> receiver,
|
| KeyedIC::StubKind stub_kind,
|
| @@ -515,29 +493,6 @@ Handle<Code> StubCache::ComputeKeyedLoadOrStoreElement(
|
| }
|
|
|
|
|
| -Handle<Code> KeyedStoreStubCompiler::CompileStorePolymorphic(
|
| - MapHandleList* receiver_maps,
|
| - CodeHandleList* handler_stubs,
|
| - MapHandleList* transitioned_maps) {
|
| - MapList raw_receiver_maps(receiver_maps->length());
|
| - CodeList raw_handler_stubs(handler_stubs->length());
|
| - MapList raw_transitioned_maps(transitioned_maps->length());
|
| - CALL_HEAP_FUNCTION(
|
| - isolate(),
|
| - (set_failure(NULL),
|
| - raw_receiver_maps.Clear(),
|
| - raw_handler_stubs.Clear(),
|
| - raw_transitioned_maps.Clear(),
|
| - CompileStorePolymorphic(UnwrapHandleList(&raw_receiver_maps,
|
| - receiver_maps),
|
| - UnwrapHandleList(&raw_handler_stubs,
|
| - handler_stubs),
|
| - UnwrapHandleList(&raw_transitioned_maps,
|
| - transitioned_maps))),
|
| - Code);
|
| -}
|
| -
|
| -
|
| Handle<Code> StubCache::ComputeStoreNormal(StrictModeFlag strict_mode) {
|
| return (strict_mode == kStrictMode)
|
| ? isolate_->builtins()->Builtins::StoreIC_Normal_Strict()
|
| @@ -545,17 +500,6 @@ Handle<Code> StubCache::ComputeStoreNormal(StrictModeFlag strict_mode) {
|
| }
|
|
|
|
|
| -Handle<Code> StoreStubCompiler::CompileStoreGlobal(
|
| - Handle<GlobalObject> object,
|
| - Handle<JSGlobalPropertyCell> holder,
|
| - Handle<String> name) {
|
| - CALL_HEAP_FUNCTION(isolate(),
|
| - (set_failure(NULL),
|
| - CompileStoreGlobal(*object, *holder, *name)),
|
| - Code);
|
| -}
|
| -
|
| -
|
| Handle<Code> StubCache::ComputeStoreGlobal(Handle<String> name,
|
| Handle<GlobalObject> receiver,
|
| Handle<JSGlobalPropertyCell> cell,
|
| @@ -629,19 +573,6 @@ Handle<Code> StubCache::ComputeStoreInterceptor(Handle<String> name,
|
| return code;
|
| }
|
|
|
| -Handle<Code> KeyedStoreStubCompiler::CompileStoreField(Handle<JSObject> object,
|
| - int index,
|
| - Handle<Map> transition,
|
| - Handle<String> name) {
|
| - CALL_HEAP_FUNCTION(
|
| - isolate(),
|
| - (set_failure(NULL),
|
| - CompileStoreField(*object, index,
|
| - transition.is_null() ? NULL : *transition,
|
| - *name)),
|
| - Code);
|
| -}
|
| -
|
| Handle<Code> StubCache::ComputeKeyedStoreField(Handle<String> name,
|
| Handle<JSObject> receiver,
|
| int field_index,
|
| @@ -1616,7 +1547,20 @@ MaybeObject* KeyedLoadStubCompiler::TryGetCode(PropertyType type,
|
| }
|
|
|
|
|
| -MaybeObject* StoreStubCompiler::GetCode(PropertyType type, String* name) {
|
| +Handle<Code> StoreStubCompiler::GetCode(PropertyType type,
|
| + Handle<String> name) {
|
| + Code::Flags flags =
|
| + Code::ComputeMonomorphicFlags(Code::STORE_IC, type, strict_mode_);
|
| + Handle<Code> code = GetCodeWithFlags(flags, name);
|
| + PROFILE(isolate(), CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name));
|
| + GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code));
|
| + return code;
|
| +}
|
| +
|
| +
|
| +// TODO(ulan): Eliminate this function when the stub cache is fully
|
| +// handlified.
|
| +MaybeObject* StoreStubCompiler::TryGetCode(PropertyType type, String* name) {
|
| Code::Flags flags =
|
| Code::ComputeMonomorphicFlags(Code::STORE_IC, type, strict_mode_);
|
| MaybeObject* result = TryGetCodeWithFlags(flags, name);
|
| @@ -1633,22 +1577,15 @@ MaybeObject* StoreStubCompiler::GetCode(PropertyType type, String* name) {
|
| }
|
|
|
|
|
| -MaybeObject* KeyedStoreStubCompiler::GetCode(PropertyType type,
|
| - String* name,
|
| +Handle<Code> KeyedStoreStubCompiler::GetCode(PropertyType type,
|
| + Handle<String> name,
|
| InlineCacheState state) {
|
| Code::Flags flags =
|
| Code::ComputeFlags(Code::KEYED_STORE_IC, state, strict_mode_, type);
|
| - MaybeObject* result = TryGetCodeWithFlags(flags, name);
|
| - if (!result->IsFailure()) {
|
| - PROFILE(isolate(),
|
| - CodeCreateEvent(Logger::KEYED_STORE_IC_TAG,
|
| - Code::cast(result->ToObjectUnchecked()),
|
| - name));
|
| - GDBJIT(AddCode(GDBJITInterface::KEYED_STORE_IC,
|
| - name,
|
| - Code::cast(result->ToObjectUnchecked())));
|
| - }
|
| - return result;
|
| + Handle<Code> code = GetCodeWithFlags(flags, name);
|
| + PROFILE(isolate(), CodeCreateEvent(Logger::KEYED_STORE_IC_TAG, *code, *name));
|
| + GDBJIT(AddCode(GDBJITInterface::KEYED_STORE_IC, *name, *code));
|
| + return code;
|
| }
|
|
|
|
|
|
|