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

#include <ic.h>

Inheritance diagram for CompareIC:
Collaboration diagram for CompareIC:

Public Types

enum  State {
  UNINITIALIZED, SMI, NUMBER, STRING,
  INTERNALIZED_STRING, UNIQUE_NAME, OBJECT, KNOWN_OBJECT,
  GENERIC
}
 
- Public Types inherited from IC
enum  UtilityId { kUtilityCount }
 
enum  FrameDepth { NO_EXTRA_FRAME = 0, EXTRA_CALL_FRAME = 1 }
 
typedef InlineCacheState State
 

Public Member Functions

 CompareIC (Isolate *isolate, Token::Value op)
 
CodeUpdateCaches (Handle< Object > x, Handle< Object > y)
 
- 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 State NewInputState (State old_state, Handle< Object > value)
 
static TypeStateToType (Zone *zone, State state, Handle< Map > map=Handle< Map >())
 
static void StubInfoToType (int stub_minor_key, Type **left_type, Type **right_type, Type **overall_type, Handle< Map > map, Zone *zone)
 
static Handle< CodeGetUninitialized (Isolate *isolate, Token::Value op)
 
static Condition ComputeCondition (Token::Value op)
 
static const char * GetStateName (State 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)
 

Friends

class IC
 

Additional Inherited Members

- 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())
 
virtual Handle< CodeCompileHandler (LookupResult *lookup, Handle< Object > object, Handle< String > name, Handle< Object > value, InlineCacheHolderFlag cache_holder)
 
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 Code::Kind kind () const
 
virtual Handle< Codeslow_stub () const
 
virtual Handle< Codemegamorphic_stub ()
 
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 ()
 
- 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 820 of file ic.h.

Member Enumeration Documentation

enum State
Enumerator
UNINITIALIZED 
SMI 
NUMBER 
STRING 
INTERNALIZED_STRING 
UNIQUE_NAME 
OBJECT 
KNOWN_OBJECT 
GENERIC 

Definition at line 828 of file ic.h.

Constructor & Destructor Documentation

CompareIC ( Isolate isolate,
Token::Value  op 
)
inline

Definition at line 853 of file ic.h.

Member Function Documentation

static Condition ComputeCondition ( Token::Value  op)
static
Handle< Code > GetUninitialized ( Isolate isolate,
Token::Value  op 
)
static

Definition at line 2489 of file ic.cc.

References CompareIC::UNINITIALIZED.

void StubInfoToType ( int  stub_minor_key,
Type **  left_type,
Type **  right_type,
Type **  overall_type,
Handle< Map map,
Zone zone 
)
static

Definition at line 2533 of file ic.cc.

References ICCompareStub::DecodeMinorKey(), and CompareIC::StateToType().

Referenced by TypeFeedbackOracle::CompareType().

Friends And Related Function Documentation

friend class IC
friend

Definition at line 890 of file ic.h.


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