v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LoadIC Class Reference

#include <ic.h>

Inheritance diagram for LoadIC:
Collaboration diagram for LoadIC:

Data Structures

class  ContextualModeBits
 

Public Member Functions

 STATIC_ASSERT (static_cast< int >(NOT_CONTEXTUAL)==0)
 
ContextualMode contextual_mode () const
 
 LoadIC (FrameDepth depth, Isolate *isolate)
 
bool IsUndeclaredGlobal (Handle< Object > receiver)
 
MUST_USE_RESULT MaybeObject * Load (Handle< Object > object, Handle< String > name)
 
- Public Member Functions inherited from IC
 IC (FrameDepth depth, Isolate *isolate)
 
virtual ~IC ()
 
State state () const
 
Address address () const
 
void UpdateState (Handle< Object > receiver, Handle< Object > name)
 
void MarkMonomorphicPrototypeFailure ()
 

Static Public Member Functions

static ExtraICState ComputeExtraICState (ContextualMode contextual_mode)
 
static ContextualMode GetContextualMode (ExtraICState state)
 
static void GenerateInitialize (MacroAssembler *masm)
 
static void GeneratePreMonomorphic (MacroAssembler *masm)
 
static void GenerateMiss (MacroAssembler *masm)
 
static void GenerateMegamorphic (MacroAssembler *masm)
 
static void GenerateNormal (MacroAssembler *masm)
 
static void GenerateRuntimeGetProperty (MacroAssembler *masm)
 
static Handle< Codeinitialize_stub (Isolate *isolate, ExtraICState extra_state)
 
- Static Public Member Functions inherited from IC
static Address AddressFromUtilityId (UtilityId id)
 
static void Clear (Isolate *isolate, Address address, ConstantPoolArray *constant_pool)
 
static InlineCacheHolderFlag GetCodeCacheForObject (Object *object)
 
static HeapObjectGetCodeCacheHolder (Isolate *isolate, Object *object, InlineCacheHolderFlag holder)
 
static InlineCacheHolderFlag GetCodeCacheFlag (HeapType *type)
 
static Handle< MapGetCodeCacheHolder (InlineCacheHolderFlag flag, HeapType *type, Isolate *isolate)
 
static bool IsCleared (Code *code)
 
static Handle< MapTypeToMap (HeapType *type, Isolate *isolate)
 
template<class T >
static T::TypeHandle MapToType (Handle< Map > map, typename T::Region *region)
 
static Handle< HeapTypeCurrentTypeOf (Handle< Object > object, Isolate *isolate)
 

Protected Member Functions

virtual Code::Kind kind () const
 
void set_target (Code *code)
 
virtual Handle< Codeslow_stub () const
 
virtual Handle< Codemegamorphic_stub ()
 
void UpdateCaches (LookupResult *lookup, Handle< Object > object, Handle< String > name)
 
virtual Handle< CodeCompileHandler (LookupResult *lookup, Handle< Object > object, Handle< String > name, Handle< Object > unused, InlineCacheHolderFlag cache_holder)
 
- Protected Member Functions inherited from IC
Handle< Codetarget () const
 
Address fp () const
 
Address pc () const
 
Isolateisolate () const
 
void set_target (Code *code)
 
bool is_target_set ()
 
FailureTypeError (const char *type, Handle< Object > object, Handle< Object > key)
 
FailureReferenceError (const char *type, Handle< String > name)
 
Handle< CodeComputeHandler (LookupResult *lookup, Handle< Object > object, Handle< String > name, Handle< Object > value=Handle< Code >::null())
 
void UpdateMonomorphicIC (Handle< HeapType > type, Handle< Code > handler, Handle< String > name)
 
bool UpdatePolymorphicIC (Handle< HeapType > type, Handle< String > name, Handle< Code > code)
 
virtual void UpdateMegamorphicCache (HeapType *type, Name *name, Code *code)
 
void CopyICToMegamorphicCache (Handle< String > name)
 
bool IsTransitionOfMonomorphicTarget (Map *source_map, Map *target_map)
 
void PatchCache (Handle< HeapType > type, Handle< String > name, Handle< Code > code)
 
virtual Handle< Codegeneric_stub () const
 
bool TryRemoveInvalidPrototypeDependentStub (Handle< Object > receiver, Handle< String > name)
 
void TryRemoveInvalidHandlers (Handle< Map > map, Handle< String > name)
 
ExtraICState extra_ic_state () const
 
void set_extra_ic_state (ExtraICState state)
 
void UpdateTarget ()
 

Friends

class IC
 

Additional Inherited Members

- Public Types inherited from IC
enum  UtilityId { kUtilityCount }
 
enum  FrameDepth { NO_EXTRA_FRAME = 0, EXTRA_CALL_FRAME = 1 }
 
typedef InlineCacheState State
 
- Static Protected Member Functions inherited from IC
static CodeGetTargetAtAddress (Address address, ConstantPoolArray *constant_pool)
 
static void SetTargetAtAddress (Address address, Code *target, ConstantPoolArray *constant_pool)
 
static void PostPatching (Address address, Code *target, Code *old_target)
 

Detailed Description

Definition at line 304 of file ic.h.

Constructor & Destructor Documentation

LoadIC ( FrameDepth  depth,
Isolate isolate 
)
inlineexplicit

Definition at line 322 of file ic.h.

References ASSERT.

Member Function Documentation

static ExtraICState ComputeExtraICState ( ContextualMode  contextual_mode)
inlinestatic
ContextualMode contextual_mode ( ) const
inline
static void GenerateInitialize ( MacroAssembler masm)
inlinestatic

Definition at line 339 of file ic.h.

References LoadIC::GenerateMiss().

static void GenerateMegamorphic ( MacroAssembler masm)
static
static void GenerateMiss ( MacroAssembler masm)
static
static void GenerateNormal ( MacroAssembler masm)
static
static void GeneratePreMonomorphic ( MacroAssembler masm)
inlinestatic

Definition at line 340 of file ic.h.

References LoadIC::GenerateMiss().

static void GenerateRuntimeGetProperty ( MacroAssembler masm)
static
static ContextualMode GetContextualMode ( ExtraICState  state)
inlinestatic
Handle< Code > initialize_stub ( Isolate isolate,
ExtraICState  extra_state 
)
static

Definition at line 782 of file ic.cc.

References StubCache::ComputeLoad(), Isolate::stub_cache(), and v8::internal::UNINITIALIZED.

Referenced by TEST().

bool IsUndeclaredGlobal ( Handle< Object receiver)
inline

Definition at line 329 of file ic.h.

References ASSERT, v8::internal::CONTEXTUAL, and LoadIC::contextual_mode().

Referenced by LoadIC::Load().

virtual Code::Kind kind ( ) const
inlineprotectedvirtual

Reimplemented from IC.

Reimplemented in KeyedLoadIC.

Definition at line 355 of file ic.h.

Referenced by LoadIC::CompileHandler(), LoadIC::Load(), and LoadIC::UpdateCaches().

Handle< Code > megamorphic_stub ( )
protectedvirtual

Reimplemented from IC.

Reimplemented in KeyedLoadIC.

Definition at line 794 of file ic.cc.

References StubCache::ComputeLoad(), IC::extra_ic_state(), IC::isolate(), v8::internal::MEGAMORPHIC, and Isolate::stub_cache().

Referenced by LoadIC::Load().

void set_target ( Code code)
inlineprotected
virtual Handle<Code> slow_stub ( ) const
inlineprotectedvirtual

Reimplemented from IC.

Reimplemented in KeyedLoadIC.

Definition at line 365 of file ic.h.

References Isolate::builtins(), and IC::isolate().

Referenced by LoadIC::CompileHandler(), and LoadIC::UpdateCaches().

STATIC_ASSERT ( static_cast< int >  NOT_CONTEXTUAL = =0)

Friends And Related Function Documentation

friend class IC
friend

Definition at line 402 of file ic.h.


The documentation for this class was generated from the following files: