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

#include <reloc-info.h>

Inheritance diagram for v8::internal::RelocInfo:
Collaboration diagram for v8::internal::RelocInfo:

Public Types

enum  Mode : int8_t {
  NO_INFO , CODE_TARGET , RELATIVE_CODE_TARGET , COMPRESSED_EMBEDDED_OBJECT ,
  FULL_EMBEDDED_OBJECT , WASM_CALL , WASM_STUB_CALL , WASM_CODE_POINTER_TABLE_ENTRY ,
  WASM_CANONICAL_SIG_ID , EXTERNAL_REFERENCE , INTERNAL_REFERENCE , INTERNAL_REFERENCE_ENCODED ,
  JS_DISPATCH_HANDLE , OFF_HEAP_TARGET , NEAR_BUILTIN_ENTRY , CONST_POOL ,
  VENEER_POOL , DEOPT_SCRIPT_OFFSET , DEOPT_INLINING_ID , DEOPT_REASON ,
  DEOPT_ID , DEOPT_NODE_ID , PC_JUMP , NUMBER_OF_MODES ,
  LAST_CODE_TARGET_MODE = RELATIVE_CODE_TARGET , FIRST_REAL_RELOC_MODE = CODE_TARGET , LAST_REAL_RELOC_MODE = VENEER_POOL , FIRST_EMBEDDED_OBJECT_RELOC_MODE = COMPRESSED_EMBEDDED_OBJECT ,
  LAST_EMBEDDED_OBJECT_RELOC_MODE = FULL_EMBEDDED_OBJECT , LAST_GCED_ENUM = LAST_EMBEDDED_OBJECT_RELOC_MODE , FIRST_BUILTIN_ENTRY_MODE = OFF_HEAP_TARGET , LAST_BUILTIN_ENTRY_MODE = NEAR_BUILTIN_ENTRY ,
  FIRST_SHAREABLE_RELOC_MODE = WASM_CALL
}
 

Public Member Functions

 RelocInfo ()=default
 
 RelocInfo (Address pc, Mode rmode, intptr_t data, Address constant_pool=kNullAddress)
 
 RelocInfo (Address pc, Mode rmode)
 
Address pc () const
 
Mode rmode () const
 
Address constant_pool () const
 
intptr_t data () const
 
bool IsCodedSpecially ()
 
bool IsInConstantPool ()
 
Address wasm_call_address () const
 
Address wasm_stub_call_address () const
 
V8_EXPORT_PRIVATE uint32_t wasm_canonical_sig_id () const
 
V8_INLINE WasmCodePointer wasm_code_pointer_table_entry () const
 
uint32_t wasm_call_tag () const
 
void set_off_heap_target_address (Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
V8_INLINE Address target_address ()
 
V8_INLINE Tagged< HeapObjecttarget_object (PtrComprCageBase cage_base)
 
V8_INLINE DirectHandle< HeapObjecttarget_object_handle (Assembler *origin)
 
V8_INLINE Builtin target_builtin_at (Assembler *origin)
 
V8_INLINE Address target_off_heap_target ()
 
V8_INLINE Address constant_pool_entry_address ()
 
V8_INLINE Address target_address_address ()
 
bool HasTargetAddressAddress () const
 
V8_INLINE int target_address_size ()
 
V8_INLINE Address target_external_reference ()
 
V8_INLINE Address target_internal_reference ()
 
V8_INLINE Address target_internal_reference_address ()
 
V8_INLINE JSDispatchHandle js_dispatch_handle ()
 
template<typename ObjectVisitor >
void Visit (Tagged< InstructionStream > host, ObjectVisitor *visitor)
 

Static Public Member Functions

static constexpr bool IsRealRelocMode (Mode mode)
 
static constexpr bool IsGCRelocMode (Mode mode)
 
static constexpr bool IsShareableRelocMode (Mode mode)
 
static constexpr bool IsCodeTarget (Mode mode)
 
static constexpr bool IsCodeTargetMode (Mode mode)
 
static constexpr bool IsRelativeCodeTarget (Mode mode)
 
static constexpr bool IsFullEmbeddedObject (Mode mode)
 
static constexpr bool IsCompressedEmbeddedObject (Mode mode)
 
static constexpr bool IsEmbeddedObjectMode (Mode mode)
 
static constexpr bool IsWasmCall (Mode mode)
 
static constexpr bool IsWasmStubCall (Mode mode)
 
static constexpr bool IsWasmCanonicalSigId (Mode mode)
 
static constexpr bool IsWasmCodePointerTableEntry (Mode mode)
 
static constexpr bool IsConstPool (Mode mode)
 
static constexpr bool IsVeneerPool (Mode mode)
 
static constexpr bool IsDeoptPosition (Mode mode)
 
static constexpr bool IsDeoptReason (Mode mode)
 
static constexpr bool IsDeoptId (Mode mode)
 
static constexpr bool IsDeoptNodeId (Mode mode)
 
static constexpr bool IsExternalReference (Mode mode)
 
static constexpr bool IsInternalReference (Mode mode)
 
static constexpr bool IsInternalReferenceEncoded (Mode mode)
 
static constexpr bool IsOffHeapTarget (Mode mode)
 
static constexpr bool IsNearBuiltinEntry (Mode mode)
 
static constexpr bool IsBuiltinEntryMode (Mode mode)
 
static constexpr bool IsJSDispatchHandle (Mode mode)
 
static constexpr bool IsNoInfo (Mode mode)
 
static bool IsOnlyForSerializer (Mode mode)
 
static constexpr int ModeMask (Mode mode)
 
static bool OffHeapTargetIsCodedSpecially ()
 
static constexpr int AllRealModesMask ()
 
static int EmbeddedObjectModeMask ()
 
static int JSDispatchHandleModeMask ()
 
static int PostCodegenRelocationMask ()
 

Static Public Attributes

static constexpr int kMinRelocCommentSize = 2 + kSystemPointerSize
 
static constexpr int kMaxCallSize = 6
 
static constexpr int kMaxSmallPCDelta = detail::kSmallPCDeltaMask
 
static const int kApplyMask
 

Protected Attributes

Address pc_
 
Mode rmode_
 
intptr_t data_ = 0
 
Address constant_pool_ = kNullAddress
 

Friends

template<typename RelocIteratorType >
class RelocIteratorBase
 

Detailed Description

Definition at line 94 of file reloc-info.h.

Member Enumeration Documentation

◆ Mode

Enumerator
NO_INFO 
CODE_TARGET 
RELATIVE_CODE_TARGET 
COMPRESSED_EMBEDDED_OBJECT 
FULL_EMBEDDED_OBJECT 
WASM_CALL 
WASM_STUB_CALL 
WASM_CODE_POINTER_TABLE_ENTRY 
WASM_CANONICAL_SIG_ID 
EXTERNAL_REFERENCE 
INTERNAL_REFERENCE 
INTERNAL_REFERENCE_ENCODED 
JS_DISPATCH_HANDLE 
OFF_HEAP_TARGET 
NEAR_BUILTIN_ENTRY 
CONST_POOL 
VENEER_POOL 
DEOPT_SCRIPT_OFFSET 
DEOPT_INLINING_ID 
DEOPT_REASON 
DEOPT_ID 
DEOPT_NODE_ID 
PC_JUMP 
NUMBER_OF_MODES 
LAST_CODE_TARGET_MODE 
FIRST_REAL_RELOC_MODE 
LAST_REAL_RELOC_MODE 
FIRST_EMBEDDED_OBJECT_RELOC_MODE 
LAST_EMBEDDED_OBJECT_RELOC_MODE 
LAST_GCED_ENUM 
FIRST_BUILTIN_ENTRY_MODE 
LAST_BUILTIN_ENTRY_MODE 
FIRST_SHAREABLE_RELOC_MODE 

Definition at line 106 of file reloc-info.h.

Constructor & Destructor Documentation

◆ RelocInfo() [1/3]

v8::internal::RelocInfo::RelocInfo ( )
default

◆ RelocInfo() [2/3]

v8::internal::RelocInfo::RelocInfo ( Address pc,
Mode rmode,
intptr_t data,
Address constant_pool = kNullAddress )
inline

Definition at line 175 of file reloc-info.h.

Here is the call graph for this function:

◆ RelocInfo() [3/3]

v8::internal::RelocInfo::RelocInfo ( Address pc,
Mode rmode )
inline

Definition at line 183 of file reloc-info.h.

Member Function Documentation

◆ AllRealModesMask()

static constexpr int v8::internal::RelocInfo::AllRealModesMask ( )
inlinestaticconstexpr

Definition at line 371 of file reloc-info.h.

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

◆ constant_pool()

Address v8::internal::RelocInfo::constant_pool ( ) const
inline

Definition at line 277 of file reloc-info.h.

◆ constant_pool_entry_address()

Address v8::internal::RelocInfo::constant_pool_entry_address ( )

Definition at line 89 of file assembler-arm-inl.h.

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

◆ data()

intptr_t v8::internal::RelocInfo::data ( ) const
inline

Definition at line 278 of file reloc-info.h.

Here is the caller graph for this function:

◆ EmbeddedObjectModeMask()

static int v8::internal::RelocInfo::EmbeddedObjectModeMask ( )
inlinestatic

Definition at line 378 of file reloc-info.h.

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

◆ HasTargetAddressAddress()

bool v8::internal::RelocInfo::HasTargetAddressAddress ( ) const

Definition at line 324 of file reloc-info.cc.

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

◆ IsBuiltinEntryMode()

static constexpr bool v8::internal::RelocInfo::IsBuiltinEntryMode ( Mode mode)
inlinestaticconstexpr

Definition at line 250 of file reloc-info.h.

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

◆ IsCodedSpecially()

bool v8::internal::RelocInfo::IsCodedSpecially ( )

Definition at line 193 of file assembler-riscv.cc.

◆ IsCodeTarget()

static constexpr bool v8::internal::RelocInfo::IsCodeTarget ( Mode mode)
inlinestaticconstexpr

Definition at line 196 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsCodeTargetMode()

static constexpr bool v8::internal::RelocInfo::IsCodeTargetMode ( Mode mode)
inlinestaticconstexpr

Definition at line 197 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsCompressedEmbeddedObject()

static constexpr bool v8::internal::RelocInfo::IsCompressedEmbeddedObject ( Mode mode)
inlinestaticconstexpr

Definition at line 206 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsConstPool()

static constexpr bool v8::internal::RelocInfo::IsConstPool ( Mode mode)
inlinestaticconstexpr

Definition at line 223 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsDeoptId()

static constexpr bool v8::internal::RelocInfo::IsDeoptId ( Mode mode)
inlinestaticconstexpr

Definition at line 231 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsDeoptNodeId()

static constexpr bool v8::internal::RelocInfo::IsDeoptNodeId ( Mode mode)
inlinestaticconstexpr

Definition at line 232 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsDeoptPosition()

static constexpr bool v8::internal::RelocInfo::IsDeoptPosition ( Mode mode)
inlinestaticconstexpr

Definition at line 225 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsDeoptReason()

static constexpr bool v8::internal::RelocInfo::IsDeoptReason ( Mode mode)
inlinestaticconstexpr

Definition at line 228 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsEmbeddedObjectMode()

static constexpr bool v8::internal::RelocInfo::IsEmbeddedObjectMode ( Mode mode)
inlinestaticconstexpr

Definition at line 209 of file reloc-info.h.

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

◆ IsExternalReference()

static constexpr bool v8::internal::RelocInfo::IsExternalReference ( Mode mode)
inlinestaticconstexpr

Definition at line 235 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsFullEmbeddedObject()

static constexpr bool v8::internal::RelocInfo::IsFullEmbeddedObject ( Mode mode)
inlinestaticconstexpr

Definition at line 203 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsGCRelocMode()

static constexpr bool v8::internal::RelocInfo::IsGCRelocMode ( Mode mode)
inlinestaticconstexpr

Definition at line 189 of file reloc-info.h.

◆ IsInConstantPool()

bool v8::internal::RelocInfo::IsInConstantPool ( )

Definition at line 200 of file assembler-riscv.cc.

Here is the caller graph for this function:

◆ IsInternalReference()

static constexpr bool v8::internal::RelocInfo::IsInternalReference ( Mode mode)
inlinestaticconstexpr

Definition at line 238 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsInternalReferenceEncoded()

static constexpr bool v8::internal::RelocInfo::IsInternalReferenceEncoded ( Mode mode)
inlinestaticconstexpr

Definition at line 241 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsJSDispatchHandle()

static constexpr bool v8::internal::RelocInfo::IsJSDispatchHandle ( Mode mode)
inlinestaticconstexpr

Definition at line 254 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsNearBuiltinEntry()

static constexpr bool v8::internal::RelocInfo::IsNearBuiltinEntry ( Mode mode)
inlinestaticconstexpr

Definition at line 247 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsNoInfo()

static constexpr bool v8::internal::RelocInfo::IsNoInfo ( Mode mode)
inlinestaticconstexpr

Definition at line 257 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsOffHeapTarget()

static constexpr bool v8::internal::RelocInfo::IsOffHeapTarget ( Mode mode)
inlinestaticconstexpr

Definition at line 244 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsOnlyForSerializer()

static bool v8::internal::RelocInfo::IsOnlyForSerializer ( Mode mode)
inlinestatic

Definition at line 259 of file reloc-info.h.

Here is the call graph for this function:

◆ IsRealRelocMode()

static constexpr bool v8::internal::RelocInfo::IsRealRelocMode ( Mode mode)
inlinestaticconstexpr

Definition at line 185 of file reloc-info.h.

◆ IsRelativeCodeTarget()

static constexpr bool v8::internal::RelocInfo::IsRelativeCodeTarget ( Mode mode)
inlinestaticconstexpr

Definition at line 200 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsShareableRelocMode()

static constexpr bool v8::internal::RelocInfo::IsShareableRelocMode ( Mode mode)
inlinestaticconstexpr

Definition at line 192 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsVeneerPool()

static constexpr bool v8::internal::RelocInfo::IsVeneerPool ( Mode mode)
inlinestaticconstexpr

Definition at line 224 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsWasmCall()

static constexpr bool v8::internal::RelocInfo::IsWasmCall ( Mode mode)
inlinestaticconstexpr

Definition at line 213 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsWasmCanonicalSigId()

static constexpr bool v8::internal::RelocInfo::IsWasmCanonicalSigId ( Mode mode)
inlinestaticconstexpr

Definition at line 217 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsWasmCodePointerTableEntry()

static constexpr bool v8::internal::RelocInfo::IsWasmCodePointerTableEntry ( Mode mode)
inlinestaticconstexpr

Definition at line 220 of file reloc-info.h.

Here is the caller graph for this function:

◆ IsWasmStubCall()

static constexpr bool v8::internal::RelocInfo::IsWasmStubCall ( Mode mode)
inlinestaticconstexpr

Definition at line 214 of file reloc-info.h.

Here is the caller graph for this function:

◆ js_dispatch_handle()

JSDispatchHandle v8::internal::RelocInfo::js_dispatch_handle ( )

Definition at line 152 of file assembler-arm-inl.h.

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

◆ JSDispatchHandleModeMask()

static int v8::internal::RelocInfo::JSDispatchHandleModeMask ( )
inlinestatic

Definition at line 383 of file reloc-info.h.

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

◆ ModeMask()

static constexpr int v8::internal::RelocInfo::ModeMask ( Mode mode)
inlinestaticconstexpr

Definition at line 272 of file reloc-info.h.

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

◆ OffHeapTargetIsCodedSpecially()

bool v8::internal::RelocInfo::OffHeapTargetIsCodedSpecially ( )
static

Definition at line 241 of file reloc-info.cc.

◆ pc()

Address v8::internal::RelocInfo::pc ( ) const
inline

Definition at line 275 of file reloc-info.h.

Here is the caller graph for this function:

◆ PostCodegenRelocationMask()

static int v8::internal::RelocInfo::PostCodegenRelocationMask ( )
inlinestatic

Definition at line 390 of file reloc-info.h.

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

◆ rmode()

Mode v8::internal::RelocInfo::rmode ( ) const
inline

Definition at line 276 of file reloc-info.h.

Here is the caller graph for this function:

◆ set_off_heap_target_address()

void v8::internal::RelocInfo::set_off_heap_target_address ( Address target,
ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED )

Definition at line 317 of file reloc-info.cc.

Here is the call graph for this function:

◆ target_address()

Address v8::internal::RelocInfo::target_address ( )

Definition at line 70 of file assembler-arm-inl.h.

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

◆ target_address_address()

Address v8::internal::RelocInfo::target_address_address ( )

Definition at line 76 of file assembler-arm-inl.h.

Here is the call graph for this function:

◆ target_address_size()

int v8::internal::RelocInfo::target_address_size ( )

Definition at line 94 of file assembler-arm-inl.h.

◆ target_builtin_at()

Builtin v8::internal::RelocInfo::target_builtin_at ( Assembler * origin)

Definition at line 157 of file assembler-arm-inl.h.

Here is the call graph for this function:

◆ target_external_reference()

Address v8::internal::RelocInfo::target_external_reference ( )

Definition at line 118 of file assembler-arm-inl.h.

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

◆ target_internal_reference()

Address v8::internal::RelocInfo::target_internal_reference ( )

Definition at line 142 of file assembler-arm-inl.h.

Here is the caller graph for this function:

◆ target_internal_reference_address()

Address v8::internal::RelocInfo::target_internal_reference_address ( )

Definition at line 147 of file assembler-arm-inl.h.

◆ target_object()

Tagged< HeapObject > v8::internal::RelocInfo::target_object ( PtrComprCageBase cage_base)

Definition at line 96 of file assembler-arm-inl.h.

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

◆ target_object_handle()

DirectHandle< HeapObject > v8::internal::RelocInfo::target_object_handle ( Assembler * origin)

Definition at line 102 of file assembler-arm-inl.h.

Here is the call graph for this function:

◆ target_off_heap_target()

Address v8::internal::RelocInfo::target_off_heap_target ( )

Definition at line 159 of file assembler-arm-inl.h.

Here is the call graph for this function:

◆ Visit()

template<typename ObjectVisitor >
void v8::internal::RelocInfo::Visit ( Tagged< InstructionStream > host,
ObjectVisitor * visitor )

Definition at line 18 of file reloc-info-inl.h.

Here is the call graph for this function:

◆ wasm_call_address()

Address v8::internal::RelocInfo::wasm_call_address ( ) const

Definition at line 253 of file reloc-info.cc.

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

◆ wasm_call_tag()

uint32_t v8::internal::RelocInfo::wasm_call_tag ( ) const

Definition at line 202 of file assembler-riscv.cc.

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

◆ wasm_canonical_sig_id()

uint32_t v8::internal::RelocInfo::wasm_canonical_sig_id ( ) const

Definition at line 275 of file reloc-info.cc.

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

◆ wasm_code_pointer_table_entry()

WasmCodePointer v8::internal::RelocInfo::wasm_code_pointer_table_entry ( ) const

Definition at line 130 of file assembler-arm-inl.h.

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

◆ wasm_stub_call_address()

Address v8::internal::RelocInfo::wasm_stub_call_address ( ) const

Definition at line 264 of file reloc-info.cc.

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

Friends And Related Symbol Documentation

◆ RelocIteratorBase

template<typename RelocIteratorType >
friend class RelocIteratorBase
friend

Definition at line 408 of file reloc-info.h.

Member Data Documentation

◆ constant_pool_

Address v8::internal::RelocInfo::constant_pool_ = kNullAddress
protected

Definition at line 405 of file reloc-info.h.

◆ data_

intptr_t v8::internal::RelocInfo::data_ = 0
protected

Definition at line 404 of file reloc-info.h.

◆ kApplyMask

◆ kMaxCallSize

int v8::internal::RelocInfo::kMaxCallSize = 6
staticconstexpr

Definition at line 101 of file reloc-info.h.

◆ kMaxSmallPCDelta

int v8::internal::RelocInfo::kMaxSmallPCDelta = detail::kSmallPCDeltaMask
staticconstexpr

Definition at line 104 of file reloc-info.h.

◆ kMinRelocCommentSize

int v8::internal::RelocInfo::kMinRelocCommentSize = 2 + kSystemPointerSize
staticconstexpr

Definition at line 98 of file reloc-info.h.

◆ pc_

Address v8::internal::RelocInfo::pc_
protected

Definition at line 402 of file reloc-info.h.

◆ rmode_

Mode v8::internal::RelocInfo::rmode_
protected

Definition at line 403 of file reloc-info.h.


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