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
IC Class Reference

#include <ic.h>

Inheritance diagram for IC:

Public Types

enum  UtilityId { kUtilityCount }
 
enum  FrameDepth { NO_EXTRA_FRAME = 0, EXTRA_CALL_FRAME = 1 }
 
typedef InlineCacheState State
 

Public Member Functions

 IC (FrameDepth depth, Isolate *isolate)
 
virtual ~IC ()
 
Codetarget () const
 
Address address () const
 
virtual bool IsGeneric () const
 
RelocInfo::Mode ComputeMode ()
 
bool IsContextual (Handle< Object > receiver)
 
bool SlowIsContextual ()
 

Static Public Member Functions

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

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)
 

Static Protected Member Functions

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 68 of file ic.h.

Member Typedef Documentation

Definition at line 82 of file ic.h.

Member Enumeration Documentation

enum FrameDepth
Enumerator
NO_EXTRA_FRAME 
EXTRA_CALL_FRAME 

Definition at line 86 of file ic.h.

enum UtilityId
Enumerator
kUtilityCount 

Definition at line 71 of file ic.h.

Constructor & Destructor Documentation

virtual ~IC ( )
inlinevirtual

Definition at line 94 of file ic.h.

Member Function Documentation

Address AddressFromUtilityId ( IC::UtilityId  id)
static

Definition at line 2676 of file ic.cc.

RelocInfo::Mode ComputeMode ( )

Definition at line 267 of file ic.cc.

References IC::address(), Code::cast(), RelocIterator::done(), IC::isolate(), NONE, and UNREACHABLE.

Referenced by IC::SlowIsContextual().

Address fp ( ) const
inlineprotected

Definition at line 138 of file ic.h.

Referenced by IC::IC(), CallICBase::LoadFunction(), and CallICBase::TryUpdateExtraICState().

InlineCacheHolderFlag GetCodeCacheForObject ( Object object,
JSObject holder 
)
inlinestatic

Definition at line 99 of file ic-inl.h.

References ASSERT, JSObject::cast(), and v8::internal::PROTOTYPE_MAP.

InlineCacheHolderFlag GetCodeCacheForObject ( JSObject object,
JSObject holder 
)
inlinestatic
JSObject * GetCodeCacheHolder ( Object object,
InlineCacheHolderFlag  holder 
)
inlinestatic

Definition at line 127 of file ic-inl.h.

References ASSERT, JSObject::cast(), and v8::internal::OWN_MAP.

Code * GetTargetAtAddress ( Address  address)
inlinestaticprotected
bool IsContextual ( Handle< Object receiver)
inline

Definition at line 115 of file ic.h.

References ASSERT, and IC::SlowIsContextual().

Referenced by LoadIC::Load(), KeyedLoadIC::Load(), CallICBase::LoadFunction(), and StoreIC::Store().

virtual bool IsGeneric ( ) const
inlinevirtual

Reimplemented in KeyedStoreIC, and KeyedLoadIC.

Definition at line 100 of file ic.h.

Address pc ( ) const
inlineprotected

Definition at line 139 of file ic.h.

Referenced by IC::address().

Failure * ReferenceError ( const char *  type,
Handle< String name 
)
protected
bool SlowIsContextual ( )
inline

Definition at line 124 of file ic.h.

References IC::ComputeMode().

Referenced by IC::IsContextual().


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