V8 Project
v8::internal::HandlerStub Class Referenceabstract

#include <code-stubs.h>

+ Inheritance diagram for v8::internal::HandlerStub:
+ Collaboration diagram for v8::internal::HandlerStub:

Public Member Functions

virtual Code::Kind GetCodeKind () const
 
virtual ExtraICState GetExtraICState () const
 
virtual InlineCacheState GetICState () const
 
virtual void InitializeDescriptor (CodeStubDescriptor *descriptor) OVERRIDE
 
virtual CallInterfaceDescriptor GetCallInterfaceDescriptor () OVERRIDE
 
- Public Member Functions inherited from v8::internal::HydrogenCodeStub
virtual Handle< CodeGenerateCode ()=0
 
bool IsUninitialized () const
 
Handle< CodeGenerateLightweightMissCode (ExternalReference miss)
 
template<class StateType >
void TraceTransition (StateType from, StateType to)
 

Protected Member Functions

 HandlerStub (Isolate *isolate)
 
virtual Code::Kind kind () const =0
 
 DEFINE_CODE_STUB_BASE (HandlerStub, HydrogenCodeStub)
 
- Protected Member Functions inherited from v8::internal::HydrogenCodeStub
 HydrogenCodeStub (Isolate *isolate, InitializationState state=INITIALIZED)
 
void set_sub_minor_key (uint32_t key)
 
uint32_t sub_minor_key () const
 

Additional Inherited Members

- Public Types inherited from v8::internal::HydrogenCodeStub
enum  InitializationState { UNINITIALIZED , INITIALIZED }
 
- Static Public Member Functions inherited from v8::internal::HydrogenCodeStub
template<class SubClass >
static Handle< CodeGetUninitialized (Isolate *isolate)
 
- Static Protected Attributes inherited from v8::internal::HydrogenCodeStub
static const int kSubMinorKeyBits = kStubMinorKeyBits - 1
 

Detailed Description

Definition at line 878 of file code-stubs.h.

Constructor & Destructor Documentation

◆ HandlerStub()

v8::internal::HandlerStub::HandlerStub ( Isolate isolate)
inlineexplicitprotected

Definition at line 889 of file code-stubs.h.

889 : HydrogenCodeStub(isolate) {}
HydrogenCodeStub(Isolate *isolate, InitializationState state=INITIALIZED)
Definition: code-stubs.h:457

Member Function Documentation

◆ DEFINE_CODE_STUB_BASE()

v8::internal::HandlerStub::DEFINE_CODE_STUB_BASE ( HandlerStub  ,
HydrogenCodeStub   
)
protected

◆ GetCallInterfaceDescriptor()

CallInterfaceDescriptor v8::internal::HandlerStub::GetCallInterfaceDescriptor ( )
virtual

Definition at line 595 of file code-stubs.cc.

595  {
596  if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) {
597  return LoadDescriptor(isolate());
598  } else {
599  DCHECK_EQ(Code::STORE_IC, kind());
600  return StoreDescriptor(isolate());
601  }
602 }
virtual Code::Kind kind() const =0
#define DCHECK_EQ(v1, v2)
Definition: logging.h:206

References DCHECK_EQ, and kind().

+ Here is the call graph for this function:

◆ GetCodeKind()

virtual Code::Kind v8::internal::HandlerStub::GetCodeKind ( ) const
inlinevirtual

Reimplemented from v8::internal::HydrogenCodeStub.

Definition at line 880 of file code-stubs.h.

880 { return Code::HANDLER; }

◆ GetExtraICState()

virtual ExtraICState v8::internal::HandlerStub::GetExtraICState ( ) const
inlinevirtual

Definition at line 881 of file code-stubs.h.

881 { return kind(); }

References kind().

+ Here is the call graph for this function:

◆ GetICState()

virtual InlineCacheState v8::internal::HandlerStub::GetICState ( ) const
inlinevirtual

Definition at line 882 of file code-stubs.h.

882 { return MONOMORPHIC; }

References v8::internal::MONOMORPHIC.

◆ InitializeDescriptor()

void v8::internal::HandlerStub::InitializeDescriptor ( CodeStubDescriptor descriptor)
virtual

Definition at line 586 of file code-stubs.cc.

586  {
587  if (kind() == Code::STORE_IC) {
588  descriptor->Initialize(FUNCTION_ADDR(StoreIC_MissFromStubFailure));
589  } else if (kind() == Code::KEYED_LOAD_IC) {
590  descriptor->Initialize(FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure));
591  }
592 }
#define FUNCTION_ADDR(f)
Definition: globals.h:195

References FUNCTION_ADDR, v8::internal::CodeStubDescriptor::Initialize(), and kind().

+ Here is the call graph for this function:

◆ kind()

virtual Code::Kind v8::internal::HandlerStub::kind ( ) const
protectedpure virtual

Implemented in v8::internal::StoreGlobalStub, v8::internal::StoreFieldStub, v8::internal::StringLengthStub, v8::internal::LoadConstantStub, v8::internal::KeyedLoadSloppyArgumentsStub, and v8::internal::LoadFieldStub.

Referenced by GetCallInterfaceDescriptor(), GetExtraICState(), and InitializeDescriptor().

+ Here is the caller graph for this function:

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