v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::TaggedField< T, kFieldOffset, CompressionScheme > Class Template Reference

#include <tagged-field.h>

Inheritance diagram for v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >:
Collaboration diagram for v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >:

Public Types

using PtrType
 

Static Public Member Functions

static Address address (Tagged< HeapObject > host, int offset=0)
 
static PtrType load (Tagged< HeapObject > host, int offset=0)
 
static PtrType load (PtrComprCageBase cage_base, Tagged< HeapObject > host, int offset=0)
 
static void store (Tagged< HeapObject > host, PtrType value)
 
static void store (Tagged< HeapObject > host, int offset, PtrType value)
 
static PtrType Relaxed_Load (Tagged< HeapObject > host, int offset=0)
 
static PtrType Relaxed_Load (PtrComprCageBase cage_base, Tagged< HeapObject > host, int offset=0)
 
static void Relaxed_Store (Tagged< HeapObject > host, PtrType value)
 
static void Relaxed_Store (Tagged< HeapObject > host, int offset, PtrType value)
 
static PtrType Acquire_Load (Tagged< HeapObject > host, int offset=0)
 
static PtrType Acquire_Load_No_Unpack (PtrComprCageBase cage_base, Tagged< HeapObject > host, int offset=0)
 
static PtrType Acquire_Load (PtrComprCageBase cage_base, Tagged< HeapObject > host, int offset=0)
 
static PtrType SeqCst_Load (Tagged< HeapObject > host, int offset=0)
 
static PtrType SeqCst_Load (PtrComprCageBase cage_base, Tagged< HeapObject > host, int offset=0)
 
static void Release_Store (Tagged< HeapObject > host, PtrType value)
 
static void Release_Store (Tagged< HeapObject > host, int offset, PtrType value)
 
static void SeqCst_Store (Tagged< HeapObject > host, PtrType value)
 
static void SeqCst_Store (Tagged< HeapObject > host, int offset, PtrType value)
 
static PtrType SeqCst_Swap (Tagged< HeapObject > host, int offset, PtrType value)
 
static PtrType SeqCst_Swap (PtrComprCageBase cage_base, Tagged< HeapObject > host, int offset, PtrType value)
 
static Tagged_t Release_CompareAndSwap (Tagged< HeapObject > host, PtrType old, PtrType value)
 
static Tagged_t Relaxed_CompareAndSwap (Tagged< HeapObject > host, PtrType old, PtrType value)
 
static PtrType SeqCst_CompareAndSwap (Tagged< HeapObject > host, int offset, PtrType old, PtrType value)
 
static PtrType Relaxed_Load_Map_Word (PtrComprCageBase cage_base, Tagged< HeapObject > host)
 
static void Relaxed_Store_Map_Word (Tagged< HeapObject > host, PtrType value)
 
static void Release_Store_Map_Word (Tagged< HeapObject > host, PtrType value)
 

Static Public Attributes

static constexpr bool kIsSmi = std::is_same<Smi, T>::value
 
static constexpr bool kIsHeapObject
 

Static Private Member Functions

static Tagged_tlocation (Tagged< HeapObject > host, int offset=0)
 
template<typename TOnHeapAddress >
static Address tagged_to_full (TOnHeapAddress on_heap_addr, Tagged_t tagged_value)
 
static Tagged_t full_to_tagged (Address value)
 

Detailed Description

template<typename T, int kFieldOffset = 0, typename CompressionScheme = V8HeapCompressionScheme>
class v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >

Definition at line 175 of file tagged-field.h.

Member Typedef Documentation

◆ PtrType

template<typename T , int kFieldOffset = 0, typename CompressionScheme = V8HeapCompressionScheme>
using v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::PtrType
Initial value:
std::conditional_t<std::is_same_v<MapWord, T>, MapWord, Tagged<T>>

Definition at line 192 of file tagged-field.h.

Member Function Documentation

◆ Acquire_Load() [1/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Acquire_Load ( PtrComprCageBase cage_base,
Tagged< HeapObject > host,
int offset = 0 )
inlinestatic

Definition at line 332 of file tagged-field-inl.h.

Here is the call graph for this function:

◆ Acquire_Load() [2/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Acquire_Load ( Tagged< HeapObject > host,
int offset = 0 )
inlinestatic

Definition at line 314 of file tagged-field-inl.h.

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

◆ Acquire_Load_No_Unpack()

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Acquire_Load_No_Unpack ( PtrComprCageBase cage_base,
Tagged< HeapObject > host,
int offset = 0 )
inlinestatic

Definition at line 324 of file tagged-field-inl.h.

Here is the call graph for this function:

◆ address()

template<typename T , int kFieldOffset, typename CompressionScheme >
Address v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::address ( Tagged< HeapObject > host,
int offset = 0 )
inlinestatic

Definition at line 170 of file tagged-field-inl.h.

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

◆ full_to_tagged()

template<typename T , int kFieldOffset, typename CompressionScheme >
Tagged_t v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::full_to_tagged ( Address value)
inlinestaticprivate

Definition at line 201 of file tagged-field-inl.h.

◆ load() [1/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::load ( PtrComprCageBase cage_base,
Tagged< HeapObject > host,
int offset = 0 )
inlinestatic

Definition at line 224 of file tagged-field-inl.h.

◆ load() [2/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::load ( Tagged< HeapObject > host,
int offset = 0 )
inlinestatic

Definition at line 214 of file tagged-field-inl.h.

Here is the caller graph for this function:

◆ location()

template<typename T , int kFieldOffset, typename CompressionScheme >
Tagged_t * v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::location ( Tagged< HeapObject > host,
int offset = 0 )
inlinestaticprivate

Definition at line 177 of file tagged-field-inl.h.

◆ Relaxed_CompareAndSwap()

template<typename T , int kFieldOffset, typename CompressionScheme >
Tagged_t v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Relaxed_CompareAndSwap ( Tagged< HeapObject > host,
PtrType old,
PtrType value )
inlinestatic

Definition at line 380 of file tagged-field-inl.h.

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

◆ Relaxed_Load() [1/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Relaxed_Load ( PtrComprCageBase cage_base,
Tagged< HeapObject > host,
int offset = 0 )
inlinestatic

Definition at line 270 of file tagged-field-inl.h.

Here is the call graph for this function:

◆ Relaxed_Load() [2/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Relaxed_Load ( Tagged< HeapObject > host,
int offset = 0 )
inlinestatic

Definition at line 260 of file tagged-field-inl.h.

Here is the caller graph for this function:

◆ Relaxed_Load_Map_Word()

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Relaxed_Load_Map_Word ( PtrComprCageBase cage_base,
Tagged< HeapObject > host )
inlinestatic

Definition at line 280 of file tagged-field-inl.h.

Here is the call graph for this function:

◆ Relaxed_Store() [1/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
void v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Relaxed_Store ( Tagged< HeapObject > host,
int offset,
PtrType value )
inlinestatic

Definition at line 304 of file tagged-field-inl.h.

Here is the call graph for this function:

◆ Relaxed_Store() [2/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
void v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Relaxed_Store ( Tagged< HeapObject > host,
PtrType value )
inlinestatic

Definition at line 295 of file tagged-field-inl.h.

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

◆ Relaxed_Store_Map_Word()

template<typename T , int kFieldOffset, typename CompressionScheme >
void v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Relaxed_Store_Map_Word ( Tagged< HeapObject > host,
PtrType value )
inlinestatic

Definition at line 288 of file tagged-field-inl.h.

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

◆ Release_CompareAndSwap()

template<typename T , int kFieldOffset, typename CompressionScheme >
Tagged_t v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Release_CompareAndSwap ( Tagged< HeapObject > host,
PtrType old,
PtrType value )
inlinestatic

Definition at line 368 of file tagged-field-inl.h.

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

◆ Release_Store() [1/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
void v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Release_Store ( Tagged< HeapObject > host,
int offset,
PtrType value )
inlinestatic

Definition at line 358 of file tagged-field-inl.h.

Here is the call graph for this function:

◆ Release_Store() [2/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
void v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Release_Store ( Tagged< HeapObject > host,
PtrType value )
inlinestatic

Definition at line 341 of file tagged-field-inl.h.

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

◆ Release_Store_Map_Word()

template<typename T , int kFieldOffset, typename CompressionScheme >
void v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::Release_Store_Map_Word ( Tagged< HeapObject > host,
PtrType value )
inlinestatic

Definition at line 350 of file tagged-field-inl.h.

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

◆ SeqCst_CompareAndSwap()

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::SeqCst_CompareAndSwap ( Tagged< HeapObject > host,
int offset,
PtrType old,
PtrType value )
inlinestatic

Definition at line 457 of file tagged-field-inl.h.

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

◆ SeqCst_Load() [1/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::SeqCst_Load ( PtrComprCageBase cage_base,
Tagged< HeapObject > host,
int offset = 0 )
inlinestatic

Definition at line 402 of file tagged-field-inl.h.

Here is the call graph for this function:

◆ SeqCst_Load() [2/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::SeqCst_Load ( Tagged< HeapObject > host,
int offset = 0 )
inlinestatic

Definition at line 392 of file tagged-field-inl.h.

Here is the call graph for this function:

◆ SeqCst_Store() [1/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
void v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::SeqCst_Store ( Tagged< HeapObject > host,
int offset,
PtrType value )
inlinestatic

Definition at line 420 of file tagged-field-inl.h.

Here is the call graph for this function:

◆ SeqCst_Store() [2/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
void v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::SeqCst_Store ( Tagged< HeapObject > host,
PtrType value )
inlinestatic

Definition at line 411 of file tagged-field-inl.h.

Here is the call graph for this function:

◆ SeqCst_Swap() [1/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::SeqCst_Swap ( PtrComprCageBase cage_base,
Tagged< HeapObject > host,
int offset,
PtrType value )
inlinestatic

Definition at line 444 of file tagged-field-inl.h.

Here is the call graph for this function:

◆ SeqCst_Swap() [2/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
TaggedField< T, kFieldOffset, CompressionScheme >::PtrType v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::SeqCst_Swap ( Tagged< HeapObject > host,
int offset,
PtrType value )
inlinestatic

Definition at line 431 of file tagged-field-inl.h.

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

◆ store() [1/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
void v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::store ( Tagged< HeapObject > host,
int offset,
PtrType value )
inlinestatic

Definition at line 246 of file tagged-field-inl.h.

◆ store() [2/2]

template<typename T , int kFieldOffset, typename CompressionScheme >
void v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::store ( Tagged< HeapObject > host,
PtrType value )
inlinestatic

Definition at line 233 of file tagged-field-inl.h.

Here is the caller graph for this function:

◆ tagged_to_full()

template<typename T , int kFieldOffset, typename CompressionScheme >
template<typename TOnHeapAddress >
Address v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::tagged_to_full ( TOnHeapAddress on_heap_addr,
Tagged_t tagged_value )
inlinestaticprivate

Definition at line 185 of file tagged-field-inl.h.

Member Data Documentation

◆ kIsHeapObject

template<typename T , int kFieldOffset = 0, typename CompressionScheme = V8HeapCompressionScheme>
bool v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::kIsHeapObject
staticconstexpr
Initial value:
=
is_subtype<T, HeapObject>::value || std::is_same_v<MapWord, T>

Definition at line 186 of file tagged-field.h.

◆ kIsSmi

template<typename T , int kFieldOffset = 0, typename CompressionScheme = V8HeapCompressionScheme>
bool v8::internal::TaggedField< T, kFieldOffset, CompressionScheme >::kIsSmi = std::is_same<Smi, T>::value
staticconstexpr

Definition at line 181 of file tagged-field.h.


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