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

#include <ic.h>

Inheritance diagram for KeyedLoadIC:
Collaboration diagram for KeyedLoadIC:

Public Member Functions

 KeyedLoadIC (Isolate *isolate)
 
MUST_USE_RESULT MaybeObject * Load (State state, Handle< Object > object, Handle< Object > key, bool force_generic_stub)
 
virtual Handle< CodeGetElementStubWithoutMapCheck (bool is_js_array, ElementsKind elements_kind, KeyedAccessGrowMode grow_mode)
 
virtual bool IsGeneric () const
 
- Public Member Functions inherited from KeyedIC
 STATIC_ASSERT (kGrowICDelta==STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT-STORE_TRANSITION_SMI_TO_OBJECT)
 
 STATIC_ASSERT (kGrowICDelta==STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE-STORE_TRANSITION_SMI_TO_DOUBLE)
 
 STATIC_ASSERT (kGrowICDelta==STORE_AND_GROW_TRANSITION_DOUBLE_TO_OBJECT-STORE_TRANSITION_DOUBLE_TO_OBJECT)
 
 KeyedIC (Isolate *isolate)
 
virtual ~KeyedIC ()
 
- Public Member Functions inherited from IC
 IC (FrameDepth depth, Isolate *isolate)
 
virtual ~IC ()
 
Codetarget () const
 
Address address () const
 
RelocInfo::Mode ComputeMode ()
 
bool IsContextual (Handle< Object > receiver)
 
bool SlowIsContextual ()
 

Static Public Member Functions

static void GenerateMiss (MacroAssembler *masm, bool force_generic)
 
static void GenerateRuntimeGetProperty (MacroAssembler *masm)
 
static void GenerateInitialize (MacroAssembler *masm)
 
static void GeneratePreMonomorphic (MacroAssembler *masm)
 
static void GenerateGeneric (MacroAssembler *masm)
 
static void GenerateString (MacroAssembler *masm)
 
static void GenerateIndexedInterceptor (MacroAssembler *masm)
 
static void GenerateNonStrictArguments (MacroAssembler *masm)
 
- Static Public Member Functions inherited from KeyedIC
static KeyedAccessGrowMode GetGrowModeFromStubKind (StubKind stub_kind)
 
static StubKind GetGrowStubKind (StubKind stub_kind)
 
- Static Public Member Functions inherited from IC
static Address AddressFromUtilityId (UtilityId id)
 
static State StateFrom (Code *target, Object *receiver, Object *name)
 
static void Clear (Address address)
 
static InlineCacheHolderFlag GetCodeCacheForObject (Object *object, JSObject *holder)
 
static InlineCacheHolderFlag GetCodeCacheForObject (JSObject *object, JSObject *holder)
 
static JSObjectGetCodeCacheHolder (Object *object, InlineCacheHolderFlag holder)
 

Static Public Attributes

static const int kSlowCaseBitFieldMask
 
- Static Public Attributes inherited from KeyedIC
static const int kGrowICDelta
 

Protected Member Functions

virtual Code::Kind kind () const
 
virtual Handle< CodeComputePolymorphicStub (MapHandleList *receiver_maps, StrictModeFlag strict_mode, KeyedAccessGrowMode grow_mode)
 
virtual Handle< Codestring_stub ()
 
- Protected Member Functions inherited from KeyedIC
Handle< CodeComputeStub (Handle< JSObject > receiver, StubKind stub_kind, StrictModeFlag strict_mode, Handle< Code > default_stub)
 
Handle< CodeComputeMonomorphicStubWithoutMapCheck (Handle< Map > receiver_map, StrictModeFlag strict_mode, KeyedAccessGrowMode grow_mode)
 
- Protected Member Functions inherited from IC
Address fp () const
 
Address pc () const
 
Isolateisolate () const
 
void set_target (Code *code)
 
FailureTypeError (const char *type, Handle< Object > object, Handle< Object > key)
 
FailureReferenceError (const char *type, Handle< String > name)
 

Friends

class IC
 

Additional Inherited Members

- Public Types inherited from KeyedIC
enum  StubKind {
  LOAD, STORE_NO_TRANSITION, STORE_TRANSITION_SMI_TO_OBJECT, STORE_TRANSITION_SMI_TO_DOUBLE,
  STORE_TRANSITION_DOUBLE_TO_OBJECT, STORE_TRANSITION_HOLEY_SMI_TO_OBJECT, STORE_TRANSITION_HOLEY_SMI_TO_DOUBLE, STORE_TRANSITION_HOLEY_DOUBLE_TO_OBJECT,
  STORE_AND_GROW_NO_TRANSITION, STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT, STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE, STORE_AND_GROW_TRANSITION_DOUBLE_TO_OBJECT,
  STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_OBJECT, STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_DOUBLE, STORE_AND_GROW_TRANSITION_HOLEY_DOUBLE_TO_OBJECT
}
 
- 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)
 
static void SetTargetAtAddress (Address address, Code *target)
 
static void PostPatching (Address address, Code *target, Code *old_target)
 

Detailed Description

Definition at line 479 of file ic.h.

Constructor & Destructor Documentation

KeyedLoadIC ( Isolate isolate)
inlineexplicit

Definition at line 481 of file ic.h.

References ASSERT, and IC::target().

Member Function Documentation

Handle< Code > ComputePolymorphicStub ( MapHandleList receiver_maps,
StrictModeFlag  strict_mode,
KeyedAccessGrowMode  grow_mode 
)
protectedvirtual
static void GenerateGeneric ( MacroAssembler masm)
static
static void GenerateIndexedInterceptor ( MacroAssembler masm)
static
static void GenerateInitialize ( MacroAssembler masm)
inlinestatic

Definition at line 493 of file ic.h.

References KeyedLoadIC::GenerateMiss().

static void GenerateMiss ( MacroAssembler masm,
bool  force_generic 
)
static
static void GenerateNonStrictArguments ( MacroAssembler masm)
static
static void GeneratePreMonomorphic ( MacroAssembler masm)
inlinestatic

Definition at line 496 of file ic.h.

References KeyedLoadIC::GenerateMiss().

static void GenerateRuntimeGetProperty ( MacroAssembler masm)
static
static void GenerateString ( MacroAssembler masm)
static
Handle< Code > GetElementStubWithoutMapCheck ( bool  is_js_array,
ElementsKind  elements_kind,
KeyedAccessGrowMode  grow_mode 
)
virtual

Implements KeyedIC.

Definition at line 1049 of file ic.cc.

References ASSERT, and v8::internal::DO_NOT_ALLOW_JSARRAY_GROWTH.

virtual bool IsGeneric ( ) const
inlinevirtual

Reimplemented from IC.

Definition at line 516 of file ic.h.

References IC::target().

virtual Code::Kind kind ( ) const
inlineprotectedvirtual

Implements KeyedIC.

Definition at line 521 of file ic.h.

virtual Handle<Code> string_stub ( )
inlineprotectedvirtual

Reimplemented from KeyedIC.

Definition at line 527 of file ic.h.

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

Referenced by KeyedLoadIC::Load().

Friends And Related Function Documentation

friend class IC
friend

Definition at line 561 of file ic.h.

Field Documentation

const int kSlowCaseBitFieldMask
static
Initial value:

Definition at line 508 of file ic.h.


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