v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::ExternalReferenceTable Class Reference

#include <external-reference-table.h>

Collaboration diagram for v8::internal::ExternalReferenceTable:

Public Member Functions

Address address (uint32_t i) const
 
const char * name (uint32_t i) const
 
bool is_initialized () const
 
const char * NameFromOffset (uint32_t offset)
 
 ExternalReferenceTable ()=default
 
 ExternalReferenceTable (const ExternalReferenceTable &)=delete
 
ExternalReferenceTableoperator= (const ExternalReferenceTable &)=delete
 
void InitIsolateIndependent (MemorySpan< Address > shared_external_references)
 
void Init (Isolate *isolate)
 

Static Public Member Functions

static const char * ResolveSymbol (void *address)
 
static constexpr uint32_t OffsetOfEntry (uint32_t i)
 
static void InitializeOncePerIsolateGroup (MemorySpan< Address > shared_external_references)
 
static const char * NameOfIsolateIndependentAddress (Address address, MemorySpan< Address > shared_external_references)
 

Static Public Attributes

static constexpr int kSpecialReferenceCount = 1
 
static constexpr int kExternalReferenceCountIsolateIndependent
 
static constexpr int kExternalReferenceCountIsolateDependent
 
static constexpr int kBuiltinsReferenceCount
 
static constexpr int kRuntimeReferenceCount
 
static constexpr int kIsolateAddressReferenceCount = kIsolateAddressCount
 
static constexpr int kAccessorReferenceCount
 
static constexpr int kStubCacheReferenceCount = 6 * 3
 
static constexpr int kStatsCountersReferenceCount
 
static constexpr int kSizeIsolateIndependent
 
static constexpr int kSize
 
static constexpr uint32_t kEntrySize
 
static constexpr uint32_t kSizeInBytes = kSize * kEntrySize + 2 * kUInt32Size
 

Private Types

enum  InitializationState : uint32_t { kUninitialized , kInitializedIsolateIndependent , kInitialized }
 

Private Member Functions

void Add (Address address, int *index)
 
void CopyIsolateIndependentReferences (int *index, MemorySpan< Address > shared_external_references)
 
void AddIsolateDependentReferences (Isolate *isolate, int *index)
 
void AddIsolateAddresses (Isolate *isolate, int *index)
 
void AddStubCache (Isolate *isolate, int *index)
 
Address GetStatsCounterAddress (StatsCounter *counter)
 
void AddNativeCodeStatsCounters (Isolate *isolate, int *index)
 

Static Private Member Functions

static void AddIsolateIndependent (Address address, int *index, MemorySpan< Address > shared_external_references)
 
static void AddIsolateIndependentReferences (int *index, MemorySpan< Address > shared_external_references)
 
static void AddBuiltins (int *index, MemorySpan< Address > shared_external_references)
 
static void AddRuntimeFunctions (int *index, MemorySpan< Address > shared_external_references)
 
static void AddAccessors (int *index, MemorySpan< Address > shared_external_references)
 

Private Attributes

Address ref_addr_ [kSize]
 
InitializationState is_initialized_ = kUninitialized
 
uint32_t dummy_stats_counter_ = 0
 

Static Private Attributes

static const char *const ref_name_ [kSize]
 

Detailed Description

Definition at line 22 of file external-reference-table.h.

Member Enumeration Documentation

◆ InitializationState

Enumerator
kUninitialized 
kInitializedIsolateIndependent 
kInitialized 

Definition at line 125 of file external-reference-table.h.

Constructor & Destructor Documentation

◆ ExternalReferenceTable() [1/2]

v8::internal::ExternalReferenceTable::ExternalReferenceTable ( )
default

◆ ExternalReferenceTable() [2/2]

v8::internal::ExternalReferenceTable::ExternalReferenceTable ( const ExternalReferenceTable & )
delete

Member Function Documentation

◆ Add()

void v8::internal::ExternalReferenceTable::Add ( Address address,
int * index )
private

Definition at line 155 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddAccessors()

void v8::internal::ExternalReferenceTable::AddAccessors ( int * index,
MemorySpan< Address > shared_external_references )
staticprivate

Definition at line 263 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddBuiltins()

void v8::internal::ExternalReferenceTable::AddBuiltins ( int * index,
MemorySpan< Address > shared_external_references )
staticprivate

Definition at line 195 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddIsolateAddresses()

void v8::internal::ExternalReferenceTable::AddIsolateAddresses ( Isolate * isolate,
int * index )
private

Definition at line 249 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddIsolateDependentReferences()

void v8::internal::ExternalReferenceTable::AddIsolateDependentReferences ( Isolate * isolate,
int * index )
private

Definition at line 181 of file external-reference-table.cc.

Here is the caller graph for this function:

◆ AddIsolateIndependent()

void v8::internal::ExternalReferenceTable::AddIsolateIndependent ( Address address,
int * index,
MemorySpan< Address > shared_external_references )
staticprivate

Definition at line 160 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddIsolateIndependentReferences()

void v8::internal::ExternalReferenceTable::AddIsolateIndependentReferences ( int * index,
MemorySpan< Address > shared_external_references )
staticprivate

Definition at line 167 of file external-reference-table.cc.

Here is the caller graph for this function:

◆ AddNativeCodeStatsCounters()

void v8::internal::ExternalReferenceTable::AddNativeCodeStatsCounters ( Isolate * isolate,
int * index )
private

Definition at line 334 of file external-reference-table.cc.

Here is the caller graph for this function:

◆ address()

Address v8::internal::ExternalReferenceTable::address ( uint32_t i) const
inline

Definition at line 59 of file external-reference-table.h.

Here is the caller graph for this function:

◆ AddRuntimeFunctions()

void v8::internal::ExternalReferenceTable::AddRuntimeFunctions ( int * index,
MemorySpan< Address > shared_external_references )
staticprivate

Definition at line 216 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddStubCache()

void v8::internal::ExternalReferenceTable::AddStubCache ( Isolate * isolate,
int * index )
private

Definition at line 301 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CopyIsolateIndependentReferences()

void v8::internal::ExternalReferenceTable::CopyIsolateIndependentReferences ( int * index,
MemorySpan< Address > shared_external_references )
private

Definition at line 238 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetStatsCounterAddress()

Address v8::internal::ExternalReferenceTable::GetStatsCounterAddress ( StatsCounter * counter)
private

Definition at line 325 of file external-reference-table.cc.

Here is the call graph for this function:

◆ Init()

void v8::internal::ExternalReferenceTable::Init ( Isolate * isolate)

Definition at line 103 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InitializeOncePerIsolateGroup()

void v8::internal::ExternalReferenceTable::InitializeOncePerIsolateGroup ( MemorySpan< Address > shared_external_references)
static

Definition at line 130 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InitIsolateIndependent()

void v8::internal::ExternalReferenceTable::InitIsolateIndependent ( MemorySpan< Address > shared_external_references)

Definition at line 92 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_initialized()

bool v8::internal::ExternalReferenceTable::is_initialized ( ) const
inline

Definition at line 62 of file external-reference-table.h.

◆ name()

const char * v8::internal::ExternalReferenceTable::name ( uint32_t i) const
inline

Definition at line 60 of file external-reference-table.h.

◆ NameFromOffset()

const char * v8::internal::ExternalReferenceTable::NameFromOffset ( uint32_t offset)
inline

Definition at line 76 of file external-reference-table.h.

◆ NameOfIsolateIndependentAddress()

const char * v8::internal::ExternalReferenceTable::NameOfIsolateIndependentAddress ( Address address,
MemorySpan< Address > shared_external_references )
static

Definition at line 145 of file external-reference-table.cc.

Here is the call graph for this function:

◆ OffsetOfEntry()

static constexpr uint32_t v8::internal::ExternalReferenceTable::OffsetOfEntry ( uint32_t i)
inlinestaticconstexpr

Definition at line 66 of file external-reference-table.h.

Here is the caller graph for this function:

◆ operator=()

ExternalReferenceTable & v8::internal::ExternalReferenceTable::operator= ( const ExternalReferenceTable & )
delete

◆ ResolveSymbol()

const char * v8::internal::ExternalReferenceTable::ResolveSymbol ( void * address)
static

Definition at line 116 of file external-reference-table.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ dummy_stats_counter_

uint32_t v8::internal::ExternalReferenceTable::dummy_stats_counter_ = 0
private

Definition at line 137 of file external-reference-table.h.

◆ is_initialized_

InitializationState v8::internal::ExternalReferenceTable::is_initialized_ = kUninitialized
private

Definition at line 130 of file external-reference-table.h.

◆ kAccessorReferenceCount

int v8::internal::ExternalReferenceTable::kAccessorReferenceCount
staticconstexpr
Initial value:
=
Accessors::kAccessorInfoCount + Accessors::kAccessorGetterCount +
static constexpr int kAccessorSetterCount
Definition accessors.h:101
static constexpr int kAccessorCallbackCount
Definition accessors.h:104
static constexpr int kAccessorGetterCount
Definition accessors.h:98

Definition at line 38 of file external-reference-table.h.

◆ kBuiltinsReferenceCount

int v8::internal::ExternalReferenceTable::kBuiltinsReferenceCount
staticconstexpr
Initial value:
=
#define COUNT_C_BUILTIN(...)
#define BUILTIN_LIST_C(V)
#define COUNT_C_BUILTIN(...)

Definition at line 30 of file external-reference-table.h.

◆ kEntrySize

uint32_t v8::internal::ExternalReferenceTable::kEntrySize
staticconstexpr
Initial value:
=
static_cast<uint32_t>(kSystemPointerSize)
constexpr int kSystemPointerSize
Definition globals.h:410

Definition at line 55 of file external-reference-table.h.

◆ kExternalReferenceCountIsolateDependent

int v8::internal::ExternalReferenceTable::kExternalReferenceCountIsolateDependent
staticconstexpr

◆ kExternalReferenceCountIsolateIndependent

int v8::internal::ExternalReferenceTable::kExternalReferenceCountIsolateIndependent
staticconstexpr

◆ kIsolateAddressReferenceCount

int v8::internal::ExternalReferenceTable::kIsolateAddressReferenceCount = kIsolateAddressCount
staticconstexpr

Definition at line 37 of file external-reference-table.h.

◆ kRuntimeReferenceCount

int v8::internal::ExternalReferenceTable::kRuntimeReferenceCount
staticconstexpr
Initial value:
=
Runtime::kNumFunctions -
static constexpr int kNumInlineFunctions
Definition runtime.h:909

Definition at line 34 of file external-reference-table.h.

◆ kSize

◆ kSizeInBytes

uint32_t v8::internal::ExternalReferenceTable::kSizeInBytes = kSize * kEntrySize + 2 * kUInt32Size
staticconstexpr

Definition at line 57 of file external-reference-table.h.

◆ kSizeIsolateIndependent

int v8::internal::ExternalReferenceTable::kSizeIsolateIndependent
staticconstexpr

◆ kSpecialReferenceCount

int v8::internal::ExternalReferenceTable::kSpecialReferenceCount = 1
staticconstexpr

Definition at line 25 of file external-reference-table.h.

◆ kStatsCountersReferenceCount

int v8::internal::ExternalReferenceTable::kStatsCountersReferenceCount
staticconstexpr
Initial value:
=
#define SC(...)
#define STATS_COUNTER_NATIVE_CODE_LIST(SC)
constexpr Opcode SC

Definition at line 43 of file external-reference-table.h.

◆ kStubCacheReferenceCount

int v8::internal::ExternalReferenceTable::kStubCacheReferenceCount = 6 * 3
staticconstexpr

Definition at line 42 of file external-reference-table.h.

◆ ref_addr_

Address v8::internal::ExternalReferenceTable::ref_addr_[kSize]
private

Definition at line 121 of file external-reference-table.h.

◆ ref_name_

const char *const v8::internal::ExternalReferenceTable::ref_name_
staticprivate

Definition at line 123 of file external-reference-table.h.


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