| Index: src/stub-cache.cc
|
| diff --git a/src/stub-cache.cc b/src/stub-cache.cc
|
| index e5c8482ec707bcb1fdb85a791c958ab737a3915a..e63e59ae4033f7112296c4c118c90d9ba6213397 100644
|
| --- a/src/stub-cache.cc
|
| +++ b/src/stub-cache.cc
|
| @@ -109,16 +109,6 @@ Code* StubCache::Set(String* name, Map* map, Code* code) {
|
| }
|
|
|
|
|
| -Handle<Code> LoadStubCompiler::CompileLoadNonexistent(Handle<String> name,
|
| - Handle<JSObject> object,
|
| - Handle<JSObject> last) {
|
| - CALL_HEAP_FUNCTION(isolate(),
|
| - (set_failure(NULL),
|
| - CompileLoadNonexistent(*name, *object, *last)),
|
| - Code);
|
| -}
|
| -
|
| -
|
| Handle<Code> StubCache::ComputeLoadNonexistent(Handle<String> name,
|
| Handle<JSObject> receiver) {
|
| ASSERT(receiver->IsGlobalObject() || receiver->HasFastProperties());
|
| @@ -152,17 +142,6 @@ Handle<Code> StubCache::ComputeLoadNonexistent(Handle<String> name,
|
| }
|
|
|
|
|
| -Handle<Code> LoadStubCompiler::CompileLoadField(Handle<JSObject> object,
|
| - Handle<JSObject> holder,
|
| - int index,
|
| - Handle<String> name) {
|
| - CALL_HEAP_FUNCTION(isolate(),
|
| - (set_failure(NULL),
|
| - CompileLoadField(*object, *holder, index, *name)),
|
| - Code);
|
| -}
|
| -
|
| -
|
| Handle<Code> StubCache::ComputeLoadField(Handle<String> name,
|
| Handle<JSObject> receiver,
|
| Handle<JSObject> holder,
|
| @@ -214,17 +193,6 @@ Handle<Code> StubCache::ComputeLoadCallback(Handle<String> name,
|
| }
|
|
|
|
|
| -Handle<Code> LoadStubCompiler::CompileLoadConstant(Handle<JSObject> object,
|
| - Handle<JSObject> holder,
|
| - Handle<Object> value,
|
| - Handle<String> name) {
|
| - CALL_HEAP_FUNCTION(isolate(),
|
| - (set_failure(NULL),
|
| - CompileLoadConstant(*object, *holder, *value, *name)),
|
| - Code);
|
| -}
|
| -
|
| -
|
| Handle<Code> StubCache::ComputeLoadConstant(Handle<String> name,
|
| Handle<JSObject> receiver,
|
| Handle<JSObject> holder,
|
| @@ -277,6 +245,7 @@ Handle<Code> StubCache::ComputeLoadNormal() {
|
| return isolate_->builtins()->LoadIC_Normal();
|
| }
|
|
|
| +
|
| Handle<Code> LoadStubCompiler::CompileLoadGlobal(
|
| Handle<JSObject> object,
|
| Handle<GlobalObject> holder,
|
| @@ -289,6 +258,8 @@ Handle<Code> LoadStubCompiler::CompileLoadGlobal(
|
| *object, *holder, *cell, *name, is_dont_delete)),
|
| Code);
|
| }
|
| +
|
| +
|
| Handle<Code> StubCache::ComputeLoadGlobal(Handle<String> name,
|
| Handle<JSObject> receiver,
|
| Handle<GlobalObject> holder,
|
| @@ -309,17 +280,6 @@ Handle<Code> StubCache::ComputeLoadGlobal(Handle<String> name,
|
| }
|
|
|
|
|
| -Handle<Code> KeyedLoadStubCompiler::CompileLoadField(Handle<String> name,
|
| - Handle<JSObject> object,
|
| - Handle<JSObject> holder,
|
| - int index) {
|
| - CALL_HEAP_FUNCTION(isolate(),
|
| - (set_failure(NULL),
|
| - CompileLoadField(*name, *object, *holder, index)),
|
| - Code);
|
| -}
|
| -
|
| -
|
| Handle<Code> StubCache::ComputeKeyedLoadField(Handle<String> name,
|
| Handle<JSObject> receiver,
|
| Handle<JSObject> holder,
|
| @@ -339,17 +299,6 @@ Handle<Code> StubCache::ComputeKeyedLoadField(Handle<String> name,
|
| }
|
|
|
|
|
| -Handle<Code> KeyedLoadStubCompiler::CompileLoadConstant(Handle<String> name,
|
| - Handle<JSObject> object,
|
| - Handle<JSObject> holder,
|
| - Handle<Object> value) {
|
| - CALL_HEAP_FUNCTION(isolate(),
|
| - (set_failure(NULL),
|
| - CompileLoadConstant(*name, *object, *holder, *value)),
|
| - Code);
|
| -}
|
| -
|
| -
|
| Handle<Code> StubCache::ComputeKeyedLoadConstant(Handle<String> name,
|
| Handle<JSObject> receiver,
|
| Handle<JSObject> holder,
|
| @@ -432,14 +381,6 @@ Handle<Code> StubCache::ComputeKeyedLoadCallback(
|
| }
|
|
|
|
|
| -Handle<Code> KeyedLoadStubCompiler::CompileLoadArrayLength(
|
| - Handle<String> name) {
|
| - CALL_HEAP_FUNCTION(isolate(),
|
| - (set_failure(NULL),
|
| - CompileLoadArrayLength(*name)),
|
| - Code);
|
| -}
|
| -
|
| Handle<Code> StubCache::ComputeKeyedLoadArrayLength(Handle<String> name,
|
| Handle<JSArray> receiver) {
|
| Code::Flags flags =
|
| @@ -456,14 +397,6 @@ Handle<Code> StubCache::ComputeKeyedLoadArrayLength(Handle<String> name,
|
| }
|
|
|
|
|
| -Handle<Code> KeyedLoadStubCompiler::CompileLoadStringLength(
|
| - Handle<String> name) {
|
| - CALL_HEAP_FUNCTION(isolate(),
|
| - (set_failure(NULL),
|
| - CompileLoadStringLength(*name)),
|
| - Code);
|
| -}
|
| -
|
| Handle<Code> StubCache::ComputeKeyedLoadStringLength(Handle<String> name,
|
| Handle<String> receiver) {
|
| Code::Flags flags =
|
| @@ -481,15 +414,6 @@ Handle<Code> StubCache::ComputeKeyedLoadStringLength(Handle<String> name,
|
| }
|
|
|
|
|
| -Handle<Code> KeyedLoadStubCompiler::CompileLoadFunctionPrototype(
|
| - Handle<String> name) {
|
| - CALL_HEAP_FUNCTION(isolate(),
|
| - (set_failure(NULL),
|
| - CompileLoadFunctionPrototype(*name)),
|
| - Code);
|
| -}
|
| -
|
| -
|
| Handle<Code> StubCache::ComputeKeyedLoadFunctionPrototype(
|
| Handle<String> name,
|
| Handle<JSFunction> receiver) {
|
| @@ -1672,8 +1596,18 @@ void StubCompiler::LookupPostInterceptor(JSObject* holder,
|
| }
|
|
|
|
|
| +Handle<Code> LoadStubCompiler::GetCode(PropertyType type, Handle<String> name) {
|
| + Code::Flags flags = Code::ComputeMonomorphicFlags(Code::LOAD_IC, type);
|
| + Handle<Code> code = GetCodeWithFlags(flags, name);
|
| + PROFILE(isolate(), CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name));
|
| + GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code));
|
| + return code;
|
| +}
|
| +
|
|
|
| -MaybeObject* LoadStubCompiler::GetCode(PropertyType type, String* name) {
|
| +// TODO(ulan): Eliminate this function when the stub cache is fully
|
| +// handlified.
|
| +MaybeObject* LoadStubCompiler::TryGetCode(PropertyType type, String* name) {
|
| Code::Flags flags = Code::ComputeMonomorphicFlags(Code::LOAD_IC, type);
|
| MaybeObject* result = TryGetCodeWithFlags(flags, name);
|
| if (!result->IsFailure()) {
|
| @@ -1689,7 +1623,20 @@ MaybeObject* LoadStubCompiler::GetCode(PropertyType type, String* name) {
|
| }
|
|
|
|
|
| -MaybeObject* KeyedLoadStubCompiler::GetCode(PropertyType type,
|
| +Handle<Code> KeyedLoadStubCompiler::GetCode(PropertyType type,
|
| + Handle<String> name,
|
| + InlineCacheState state) {
|
| + Code::Flags flags = Code::ComputeFlags(
|
| + Code::KEYED_LOAD_IC, state, Code::kNoExtraICState, type);
|
| + Handle<Code> code = GetCodeWithFlags(flags, name);
|
| + PROFILE(isolate(), CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, *code, *name));
|
| + GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code));
|
| + return code;
|
| +}
|
| +
|
| +// TODO(ulan): Eliminate this function when the stub cache is fully
|
| +// handlified.
|
| +MaybeObject* KeyedLoadStubCompiler::TryGetCode(PropertyType type,
|
| String* name,
|
| InlineCacheState state) {
|
| Code::Flags flags = Code::ComputeFlags(
|
|
|