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

#include <ic.h>

Inheritance diagram for KeyedStoreIC:
Collaboration diagram for KeyedStoreIC:

Public Member Functions

 KeyedStoreIC (Isolate *isolate)
 
MUST_USE_RESULT MaybeObject * Store (State state, StrictModeFlag strict_mode, Handle< Object > object, Handle< Object > name, Handle< Object > value, bool force_generic)
 
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 GenerateInitialize (MacroAssembler *masm)
 
static void GenerateMiss (MacroAssembler *masm, bool force_generic)
 
static void GenerateSlow (MacroAssembler *masm)
 
static void GenerateRuntimeSetProperty (MacroAssembler *masm, StrictModeFlag strict_mode)
 
static void GenerateGeneric (MacroAssembler *masm, StrictModeFlag strict_mode)
 
static void GenerateNonStrictArguments (MacroAssembler *masm)
 
static void GenerateTransitionElementsSmiToDouble (MacroAssembler *masm)
 
static void GenerateTransitionElementsDoubleToObject (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)
 

Protected Member Functions

virtual Code::Kind kind () const
 
virtual Handle< CodeComputePolymorphicStub (MapHandleList *receiver_maps, StrictModeFlag strict_mode, KeyedAccessGrowMode grow_mode)
 
- Protected Member Functions inherited from KeyedIC
virtual Handle< Codestring_stub ()
 
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 Public Attributes inherited from KeyedIC
static const int kGrowICDelta
 
- 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 634 of file ic.h.

Constructor & Destructor Documentation

KeyedStoreIC ( Isolate isolate)
inlineexplicit

Definition at line 636 of file ic.h.

References ASSERT, and IC::target().

Member Function Documentation

static void GenerateGeneric ( MacroAssembler masm,
StrictModeFlag  strict_mode 
)
static
static void GenerateInitialize ( MacroAssembler masm)
inlinestatic

Definition at line 648 of file ic.h.

References KeyedStoreIC::GenerateMiss().

static void GenerateMiss ( MacroAssembler masm,
bool  force_generic 
)
static
static void GenerateNonStrictArguments ( MacroAssembler masm)
static
static void GenerateRuntimeSetProperty ( MacroAssembler masm,
StrictModeFlag  strict_mode 
)
static
static void GenerateSlow ( MacroAssembler masm)
static
static void GenerateTransitionElementsDoubleToObject ( MacroAssembler masm)
static
static void GenerateTransitionElementsSmiToDouble ( MacroAssembler masm)
static
Handle< Code > GetElementStubWithoutMapCheck ( bool  is_js_array,
ElementsKind  elements_kind,
KeyedAccessGrowMode  grow_mode 
)
virtual

Implements KeyedIC.

Definition at line 1739 of file ic.cc.

virtual bool IsGeneric ( ) const
inlinevirtual

Reimplemented from IC.

Definition at line 665 of file ic.h.

References IC::target().

virtual Code::Kind kind ( ) const
inlineprotectedvirtual

Implements KeyedIC.

Definition at line 671 of file ic.h.

References Code::KEYED_STORE_IC.

Friends And Related Function Documentation

friend class IC
friend

Definition at line 724 of file ic.h.


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