V8 Project
|
#include <handler-compiler.h>
Public Member Functions | |
NamedStoreHandlerCompiler (Isolate *isolate, Handle< HeapType > type, Handle< JSObject > holder) | |
virtual | ~NamedStoreHandlerCompiler () |
Handle< Code > | CompileStoreTransition (Handle< Map > transition, Handle< Name > name) |
Handle< Code > | CompileStoreField (LookupIterator *it) |
Handle< Code > | CompileStoreCallback (Handle< JSObject > object, Handle< Name > name, Handle< ExecutableAccessorInfo > callback) |
Handle< Code > | CompileStoreCallback (Handle< JSObject > object, Handle< Name > name, const CallOptimization &call_optimization) |
Handle< Code > | CompileStoreViaSetter (Handle< JSObject > object, Handle< Name > name, Handle< JSFunction > setter) |
Handle< Code > | CompileStoreInterceptor (Handle< Name > name) |
Static Public Member Functions | |
static void | GenerateStoreViaSetter (MacroAssembler *masm, Handle< HeapType > type, Register receiver, Handle< JSFunction > setter) |
static void | GenerateStoreViaSetterForDeopt (MacroAssembler *masm) |
static void | GenerateSlow (MacroAssembler *masm) |
![]() | |
static Handle< Code > | Find (Handle< Name > name, Handle< Map > map, Code::Kind kind, CacheHolderFlag cache_holder, Code::StubType type) |
Private Member Functions | |
void | GenerateStoreTransition (Handle< Map > transition, Handle< Name > name, Register receiver_reg, Register name_reg, Register value_reg, Register scratch1, Register scratch2, Register scratch3, Label *miss_label, Label *slow) |
void | GenerateStoreField (LookupIterator *lookup, Register value_reg, Label *miss_label) |
Static Private Member Functions | |
static Builtins::Name | SlowBuiltin (Code::Kind kind) |
static Register | value () |
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 194 of file handler-compiler.h.
|
inlineexplicit |
Definition at line 196 of file handler-compiler.h.
|
inlinevirtual |
Definition at line 201 of file handler-compiler.h.
Handle< Code > v8::internal::NamedStoreHandlerCompiler::CompileStoreCallback | ( | Handle< JSObject > | object, |
Handle< Name > | name, | ||
const CallOptimization & | call_optimization | ||
) |
Definition at line 364 of file handler-compiler.cc.
References v8::internal::Code::FAST, v8::internal::PropertyHandlerCompiler::Frontend(), v8::internal::PropertyHandlerCompiler::GenerateFastApiCall(), v8::internal::PropertyHandlerCompiler::GetCode(), v8::internal::handle(), name, and value().
Definition at line 346 of file handler-compiler.cc.
References __, v8::internal::Code::FAST, GenerateStoreField(), v8::internal::PropertyHandlerCompiler::GetCode(), and value().
Referenced by v8::internal::StoreIC::CompileHandler().
Handle< Code > v8::internal::NamedStoreHandlerCompiler::CompileStoreTransition | ( | Handle< Map > | transition, |
Handle< Name > | name | ||
) |
Definition at line 310 of file handler-compiler.cc.
References __, v8::internal::PrototypeIterator::Advance(), v8::internal::Handle< T >::cast(), DCHECK, v8::internal::Code::FAST, FrontendHeader(), GenerateRestoreName(), GenerateStoreTransition(), v8::internal::PropertyHandlerCompiler::GetCode(), v8::internal::PrototypeIterator::GetCurrent(), v8::internal::PropertyHandlerCompiler::holder(), v8::internal::Handle< T >::is_null(), v8::internal::PrototypeIterator::IsAtEnd(), name, v8::internal::PropertyHandlerCompiler::NonexistentFrontendHeader(), v8::internal::PropertyHandlerCompiler::set_holder(), SlowBuiltin(), and value().
Referenced by v8::internal::StoreIC::CompileHandler().
Handle< Code > v8::internal::NamedStoreHandlerCompiler::CompileStoreViaSetter | ( | Handle< JSObject > | object, |
Handle< Name > | name, | ||
Handle< JSFunction > | setter | ||
) |
Definition at line 355 of file handler-compiler.cc.
References v8::internal::Code::FAST, v8::internal::PropertyHandlerCompiler::Frontend(), GenerateStoreViaSetter(), v8::internal::PropertyHandlerCompiler::GetCode(), name, and v8::internal::PropertyHandlerCompiler::type().
Referenced by v8::internal::StoreIC::CompileHandler().
|
protectedvirtual |
Reimplemented from v8::internal::PropertyHandlerCompiler.
|
protectedvirtual |
Reimplemented from v8::internal::PropertyHandlerCompiler.
Definition at line 124 of file handler-compiler.cc.
References v8::internal::PropertyHandlerCompiler::CheckPrototypes(), name, and v8::internal::SKIP_RECEIVER.
Referenced by CompileStoreTransition().
|
static |
|
private |
|
static |
Referenced by CompileStoreViaSetter(), and GenerateStoreViaSetterForDeopt().
|
inlinestatic |
Definition at line 218 of file handler-compiler.h.
References GenerateStoreViaSetter(), and v8::internal::no_reg.
Referenced by v8::internal::Generate_StoreIC_Setter_ForDeopt().
|
inlinestaticprivate |
Definition at line 242 of file handler-compiler.h.
References UNREACHABLE.
Referenced by CompileStoreTransition().
|
staticprivate |
Referenced by CompileStoreCallback(), CompileStoreField(), and CompileStoreTransition().