V8 Project
|
#include <handler-compiler.h>
Public Member Functions | |
NamedLoadHandlerCompiler (Isolate *isolate, Handle< HeapType > type, Handle< JSObject > holder, CacheHolderFlag cache_holder) | |
virtual | ~NamedLoadHandlerCompiler () |
Handle< Code > | CompileLoadField (Handle< Name > name, FieldIndex index) |
Handle< Code > | CompileLoadCallback (Handle< Name > name, Handle< ExecutableAccessorInfo > callback) |
Handle< Code > | CompileLoadCallback (Handle< Name > name, const CallOptimization &call_optimization) |
Handle< Code > | CompileLoadConstant (Handle< Name > name, int constant_index) |
Handle< Code > | CompileLoadInterceptor (LookupIterator *it) |
Handle< Code > | CompileLoadViaGetter (Handle< Name > name, Handle< JSFunction > getter) |
Handle< Code > | CompileLoadGlobal (Handle< PropertyCell > cell, Handle< Name > name, bool is_configurable) |
Static Public Member Functions | |
static Handle< Code > | ComputeLoadNonexistent (Handle< Name > name, Handle< HeapType > type) |
static void | GenerateLoadViaGetter (MacroAssembler *masm, Handle< HeapType > type, Register receiver, Handle< JSFunction > getter) |
static void | GenerateLoadViaGetterForDeopt (MacroAssembler *masm) |
static void | GenerateLoadFunctionPrototype (MacroAssembler *masm, Register receiver, Register scratch1, Register scratch2, Label *miss_label) |
![]() | |
static Handle< Code > | Find (Handle< Name > name, Handle< Map > map, Code::Kind kind, CacheHolderFlag cache_holder, Code::StubType type) |
Static Public Attributes | |
static const int | kInterceptorArgsNameIndex = 0 |
static const int | kInterceptorArgsInfoIndex = 1 |
static const int | kInterceptorArgsThisIndex = 2 |
static const int | kInterceptorArgsHolderIndex = 3 |
static const int | kInterceptorArgsLength = 4 |
Private Member Functions | |
Handle< Code > | CompileLoadNonexistent (Handle< Name > name) |
void | GenerateLoadConstant (Handle< Object > value) |
void | GenerateLoadCallback (Register reg, Handle< ExecutableAccessorInfo > callback) |
void | GenerateLoadCallback (const CallOptimization &call_optimization, Handle< Map > receiver_map) |
void | GenerateLoadInterceptor (Register holder_reg) |
void | GenerateLoadInterceptorWithFollowup (LookupIterator *it, Register holder_reg) |
void | GenerateLoadPostInterceptor (LookupIterator *it, Register reg) |
Register | scratch4 () |
Static Private Member Functions | |
static void | GenerateDirectLoadGlobalFunctionPrototype (MacroAssembler *masm, int index, Register prototype, Label *miss) |
Additional Inherited Members | |
![]() | |
static void | GenerateFastApiCall (MacroAssembler *masm, const CallOptimization &optimization, Handle< Map > receiver_map, Register receiver, Register scratch, bool is_store, int argc, Register *values) |
static void | GenerateDictionaryNegativeLookup (MacroAssembler *masm, Label *miss_label, Register receiver, Handle< Name > name, Register r0, Register r1) |
static void | GenerateCheckPropertyCell (MacroAssembler *masm, Handle< JSGlobalObject > global, Handle< Name > name, Register scratch, Label *miss) |
Definition at line 100 of file handler-compiler.h.
|
inline |
Definition at line 102 of file handler-compiler.h.
|
inlinevirtual |
Definition at line 108 of file handler-compiler.h.
Handle< Code > v8::internal::NamedLoadHandlerCompiler::CompileLoadCallback | ( | Handle< Name > | name, |
const CallOptimization & | call_optimization | ||
) |
Definition at line 218 of file handler-compiler.cc.
References DCHECK, v8::internal::Code::FAST, v8::internal::PropertyHandlerCompiler::Frontend(), v8::internal::PropertyHandlerCompiler::GenerateFastApiCall(), v8::internal::PropertyHandlerCompiler::GetCode(), name, NULL, v8::internal::PropertyHandlerCompiler::type(), and v8::internal::IC::TypeToMap().
Handle< Code > v8::internal::NamedLoadHandlerCompiler::CompileLoadCallback | ( | Handle< Name > | name, |
Handle< ExecutableAccessorInfo > | callback | ||
) |
Definition at line 210 of file handler-compiler.cc.
References v8::internal::Code::FAST, v8::internal::PropertyHandlerCompiler::Frontend(), GenerateLoadCallback(), v8::internal::PropertyHandlerCompiler::GetCode(), and name.
Referenced by v8::internal::LoadIC::CompileHandler().
Handle< Code > v8::internal::NamedLoadHandlerCompiler::CompileLoadConstant | ( | Handle< Name > | name, |
int | constant_index | ||
) |
Definition at line 190 of file handler-compiler.cc.
References __, v8::internal::Code::FAST, v8::internal::PropertyHandlerCompiler::Frontend(), v8::internal::PropertyHandlerCompiler::GetCode(), and name.
Referenced by v8::internal::LoadIC::CompileHandler().
Handle< Code > v8::internal::NamedLoadHandlerCompiler::CompileLoadField | ( | Handle< Name > | name, |
FieldIndex | index | ||
) |
Definition at line 180 of file handler-compiler.cc.
References __, v8::internal::Code::FAST, v8::internal::PropertyHandlerCompiler::Frontend(), v8::internal::PropertyHandlerCompiler::GetCode(), and name.
Referenced by v8::internal::LoadIC::CompileHandler().
Handle< Code > v8::internal::NamedLoadHandlerCompiler::CompileLoadInterceptor | ( | LookupIterator * | it | ) |
Definition at line 229 of file handler-compiler.cc.
References v8::internal::ACCESSOR, v8::internal::Handle< T >::cast(), v8::internal::Code::FAST, v8::internal::FIELD, v8::internal::PropertyHandlerCompiler::Frontend(), GenerateLoadInterceptor(), GenerateLoadInterceptorWithFollowup(), v8::internal::PropertyHandlerCompiler::GetCode(), v8::internal::AccessorInfo::IsCompatibleReceiverType(), NULL, v8::internal::PropertyHandlerCompiler::type(), and UNREACHABLE.
Referenced by v8::internal::LoadIC::CompileHandler().
|
private |
Definition at line 200 of file handler-compiler.cc.
References v8::internal::Code::FAST, FrontendFooter(), GenerateLoadConstant(), v8::internal::PropertyHandlerCompiler::GetCode(), name, and v8::internal::PropertyHandlerCompiler::NonexistentFrontendHeader().
Referenced by ComputeLoadNonexistent().
Handle< Code > v8::internal::NamedLoadHandlerCompiler::CompileLoadViaGetter | ( | Handle< Name > | name, |
Handle< JSFunction > | getter | ||
) |
Definition at line 301 of file handler-compiler.cc.
References v8::internal::Code::FAST, v8::internal::PropertyHandlerCompiler::Frontend(), GenerateLoadViaGetter(), v8::internal::PropertyHandlerCompiler::GetCode(), name, and v8::internal::PropertyHandlerCompiler::type().
Referenced by v8::internal::LoadIC::CompileHandler().
|
static |
Definition at line 28 of file handler-compiler.cc.
References v8::internal::Handle< T >::cast(), CompileLoadNonexistent(), v8::internal::Isolate::factory(), v8::internal::Code::FAST, v8::internal::PropertyHandlerCompiler::Find(), v8::internal::flag, v8::internal::IC::GetHandlerCacheHolder(), v8::internal::handle(), v8::internal::Handle< T >::is_null(), name, v8::internal::PropertyHandlerCompiler::type(), v8::internal::IC::TypeToMap(), and v8::internal::Map::UpdateCodeCache().
Referenced by v8::internal::LoadIC::UpdateCaches().
|
protectedvirtual |
Reimplemented from v8::internal::PropertyHandlerCompiler.
Referenced by CompileLoadNonexistent().
|
protectedvirtual |
Reimplemented from v8::internal::PropertyHandlerCompiler.
Definition at line 90 of file handler-compiler.cc.
References v8::internal::Context::BOOLEAN_FUNCTION_INDEX, v8::internal::CHECK_ALL_MAPS, v8::internal::PropertyHandlerCompiler::CheckPrototypes(), GenerateDirectLoadGlobalFunctionPrototype(), v8::internal::handle(), v8::internal::Is(), name, v8::internal::Context::NUMBER_FUNCTION_INDEX, v8::internal::PropertyHandlerCompiler::set_type_for_object(), v8::internal::SKIP_RECEIVER, v8::internal::Context::STRING_FUNCTION_INDEX, v8::internal::Context::SYMBOL_FUNCTION_INDEX, and v8::internal::PropertyHandlerCompiler::type().
|
staticprivate |
|
private |
|
private |
Referenced by CompileLoadCallback(), and GenerateLoadPostInterceptor().
|
static |
|
private |
|
private |
|
private |
Definition at line 270 of file handler-compiler.cc.
References __, v8::internal::ACCESSOR, v8::internal::Handle< T >::cast(), DCHECK_EQ, DCHECK_NE, v8::internal::FIELD, v8::internal::PropertyHandlerCompiler::Frontend(), GenerateLoadCallback(), v8::internal::PropertyHandlerCompiler::holder(), NULL, v8::internal::PropertyHandlerCompiler::set_holder(), v8::internal::PropertyHandlerCompiler::set_type_for_object(), and UNREACHABLE.
|
static |
Referenced by CompileLoadViaGetter(), and GenerateLoadViaGetterForDeopt().
|
inlinestatic |
Definition at line 139 of file handler-compiler.h.
References GenerateLoadViaGetter(), and v8::internal::no_reg.
Referenced by v8::internal::Generate_LoadIC_Getter_ForDeopt().
|
inlineprivate |
Definition at line 190 of file handler-compiler.h.
|
static |
Definition at line 157 of file handler-compiler.h.
Referenced by v8::internal::RUNTIME_FUNCTION().
|
static |
Definition at line 155 of file handler-compiler.h.
Referenced by v8::internal::RUNTIME_FUNCTION().
|
static |
Definition at line 158 of file handler-compiler.h.
Referenced by v8::internal::RUNTIME_FUNCTION().
|
static |
Definition at line 154 of file handler-compiler.h.
Referenced by v8::internal::RUNTIME_FUNCTION().
|
static |
Definition at line 156 of file handler-compiler.h.
Referenced by v8::internal::RUNTIME_FUNCTION().