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

#include <code.h>

Inheritance diagram for v8::internal::Code:
Collaboration diagram for v8::internal::Code:

Classes

class  BodyDescriptor
 

Public Member Functions

PtrComprCageBase code_cage_base () const
 
Tagged< InstructionStreamunchecked_instruction_stream () const
 
bool has_instruction_stream () const
 
bool has_instruction_stream (RelaxedLoadTag) const
 
Address instruction_end () const
 
CodeEntrypointTag entrypoint_tag () const
 
void SetInstructionStreamAndInstructionStart (IsolateForSandbox isolate, Tagged< InstructionStream > code, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
void SetInstructionStartForOffHeapBuiltin (IsolateForSandbox isolate, Address entry)
 
void ClearInstructionStartForSerialization (IsolateForSandbox isolate)
 
void UpdateInstructionStart (IsolateForSandbox isolate, Tagged< InstructionStream > istream)
 
void initialize_flags (CodeKind kind, bool is_context_specialized, bool is_turbofanned)
 
void clear_padding ()
 
void FlushICache () const
 
uint16_t parameter_count_without_receiver () const
 
bool uses_deoptimization_data () const
 
void clear_deoptimization_data_and_interpreter_data ()
 
bool has_deoptimization_data_or_interpreter_data () const
 
Tagged< TrustedObjectbytecode_or_interpreter_data () const
 
void set_bytecode_or_interpreter_data (Tagged< TrustedObject > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
bool has_source_position_table_or_bytecode_offset_table () const
 
bool has_source_position_table () const
 
bool has_bytecode_offset_table () const
 
void clear_source_position_table_and_bytecode_offset_table ()
 
Tagged< ProtectedFixedArrayunchecked_deoptimization_data () const
 
CodeKind kind () const
 
void set_builtin_id (Builtin builtin_id)
 
Builtin builtin_id () const
 
bool is_builtin () const
 
bool is_optimized_code () const
 
bool is_wasm_code () const
 
bool is_interpreter_trampoline_builtin () const
 
bool is_baseline_trampoline_builtin () const
 
bool is_baseline_leave_frame_builtin () const
 
bool checks_tiering_state () const
 
bool has_tagged_outgoing_params () const
 
bool is_maglevved () const
 
bool is_turbofanned () const
 
bool is_context_specialized () const
 
bool uses_safepoint_table () const
 
uint32_t stack_slots () const
 
Tagged< TrustedByteArraySourcePositionTable (Isolate *isolate, Tagged< SharedFunctionInfo > sfi) const
 
int SourcePosition (int offset) const
 
int SourceStatementPosition (int offset) const
 
Address safepoint_table_address () const
 
int safepoint_table_size () const
 
bool has_safepoint_table () const
 
Address handler_table_address () const
 
int handler_table_size () const
 
bool has_handler_table () const
 
Address constant_pool () const
 
int constant_pool_size () const
 
bool has_constant_pool () const
 
Address code_comments () const
 
int code_comments_size () const
 
bool has_code_comments () const
 
Address builtin_jump_table_info () const
 
int builtin_jump_table_info_size () const
 
bool has_builtin_jump_table_info () const
 
Address unwinding_info_start () const
 
Address unwinding_info_end () const
 
int unwinding_info_size () const
 
bool has_unwinding_info () const
 
uint8_t * relocation_start () const
 
uint8_t * relocation_end () const
 
int relocation_size () const
 
int safepoint_table_offset () const
 
Address body_start () const
 
Address body_end () const
 
int body_size () const
 
Address metadata_start () const
 
Address metadata_end () const
 
int InstructionStreamObjectSize () const
 
int SizeIncludingMetadata () const
 
Address InstructionStart (Isolate *isolate, Address pc) const
 
Address InstructionEnd (Isolate *isolate, Address pc) const
 
bool contains (Isolate *isolate, Address pc) const
 
int GetOffsetFromInstructionStart (Isolate *isolate, Address pc) const
 
SafepointEntry GetSafepointEntry (Isolate *isolate, Address pc)
 
MaglevSafepointEntry GetMaglevSafepointEntry (Isolate *isolate, Address pc)
 
void SetMarkedForDeoptimization (Isolate *isolate, LazyDeoptimizeReason reason)
 
void TraceMarkForDeoptimization (Isolate *isolate, LazyDeoptimizeReason reason)
 
bool CanContainWeakObjects ()
 
bool IsWeakObject (Tagged< HeapObject > object)
 
void ClearEmbeddedObjectsAndJSDispatchHandles (Heap *heap)
 
bool embedded_objects_cleared () const
 
void set_embedded_objects_cleared (bool flag)
 
bool IsIsolateIndependent (Isolate *isolate)
 
uintptr_t GetBaselineStartPCForBytecodeOffset (int bytecode_offset, Tagged< BytecodeArray > bytecodes)
 
uintptr_t GetBaselineEndPCForBytecodeOffset (int bytecode_offset, Tagged< BytecodeArray > bytecodes)
 
bool Inlines (Tagged< SharedFunctionInfo > sfi)
 
uintptr_t GetBaselinePCForNextExecutedBytecode (int bytecode_offset, Tagged< BytecodeArray > bytecodes)
 
int GetBytecodeOffsetForBaselinePC (Address baseline_pc, Tagged< BytecodeArray > bytecodes)
 
void IterateDeoptimizationLiterals (RootVisitor *v)
 
 DEFINE_FIELD_OFFSET_CONSTANTS (ExposedTrustedObject::kHeaderSize, CODE_DATA_FIELDS) template< typename T > using ExternalCodeField
 
- Public Member Functions inherited from v8::internal::ExposedTrustedObject
void init_self_indirect_pointer (Isolate *isolate)
 
void init_self_indirect_pointer (LocalIsolate *isolate)
 
IndirectPointerHandle self_indirect_pointer_handle () const
 
 OBJECT_CONSTRUCTORS (ExposedTrustedObject, TrustedObject)
 
- Public Member Functions inherited from v8::internal::TrustedObject
Tagged< TrustedObjectReadProtectedPointerField (int offset) const
 
Tagged< TrustedObjectReadProtectedPointerField (int offset, AcquireLoadTag) const
 
void WriteProtectedPointerField (int offset, Tagged< TrustedObject > value)
 
void WriteProtectedPointerField (int offset, Tagged< TrustedObject > value, ReleaseStoreTag)
 
bool IsProtectedPointerFieldEmpty (int offset) const
 
bool IsProtectedPointerFieldEmpty (int offset, AcquireLoadTag) const
 
void ClearProtectedPointerField (int offset)
 
void ClearProtectedPointerField (int offset, ReleaseStoreTag)
 
ProtectedPointerSlot RawProtectedPointerField (int byte_offset) const
 
ProtectedMaybeObjectSlot RawProtectedMaybeObjectField (int byte_offset) const
 
 OBJECT_CONSTRUCTORS (TrustedObject, HeapObject)
 
- Public Member Functions inherited from v8::internal::HeapObject
constexpr HeapObject ()=default
 
void set_map (Isolate *isolate, Tagged< Map > value)
 
template<typename IsolateT >
void set_map_safe_transition (IsolateT *isolate, Tagged< Map > value)
 
ObjectSlot map_slot () const
 
void set_map_no_write_barrier (Isolate *isolate, Tagged< Map > value, RelaxedStoreTag=kRelaxedStore)
 
void set_map_no_write_barrier (Isolate *isolate, Tagged< Map > value, ReleaseStoreTag)
 
void set_map_safe_transition_no_write_barrier (Isolate *isolate, Tagged< Map > value, RelaxedStoreTag=kRelaxedStore)
 
void set_map_safe_transition_no_write_barrier (Isolate *isolate, Tagged< Map > value, ReleaseStoreTag)
 
template<typename IsolateT >
void set_map (IsolateT *isolate, Tagged< Map > value, ReleaseStoreTag)
 
template<typename IsolateT >
void set_map_safe_transition (IsolateT *isolate, Tagged< Map > value, ReleaseStoreTag)
 
bool release_compare_and_swap_map_word_forwarded (MapWord old_map_word, Tagged< HeapObject > new_target_object)
 
bool relaxed_compare_and_swap_map_word_forwarded (MapWord old_map_word, Tagged< HeapObject > new_target_object)
 
template<typename IsolateT >
void set_map_after_allocation (IsolateT *isolate, Tagged< Map > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
void set_map_word (Tagged< Map > map, RelaxedStoreTag)
 
void set_map_word_forwarded (Tagged< HeapObject > target_object, RelaxedStoreTag)
 
void set_map_word (Tagged< Map > map, ReleaseStoreTag)
 
void set_map_word_forwarded (Tagged< HeapObject > target_object, ReleaseStoreTag)
 
ReadOnlyRoots EarlyGetReadOnlyRoots () const
 
Address address () const
 
V8_EXPORT_PRIVATE int SizeFromMap (Tagged< Map > map) const
 
template<class T >
requires (std::is_arithmetic_v<T> || std::is_enum_v<T> || std::is_pointer_v<T>)
T ReadField (size_t offset) const
 
template<class T >
requires (std::is_arithmetic_v<T> || std::is_enum_v<T> || std::is_pointer_v<T>)
void WriteField (size_t offset, T value) const
 
template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
T Relaxed_ReadField (size_t offset) const
 
template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
void Relaxed_WriteField (size_t offset, T value)
 
template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
T Acquire_ReadField (size_t offset) const
 
Address ReadSandboxedPointerField (size_t offset, PtrComprCageBase cage_base) const
 
void WriteSandboxedPointerField (size_t offset, PtrComprCageBase cage_base, Address value)
 
void WriteSandboxedPointerField (size_t offset, Isolate *isolate, Address value)
 
size_t ReadBoundedSizeField (size_t offset) const
 
void WriteBoundedSizeField (size_t offset, size_t value)
 
template<ExternalPointerTag tag>
void InitExternalPointerField (size_t offset, IsolateForSandbox isolate, Address value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
template<ExternalPointerTagRange tag_range>
Address ReadExternalPointerField (size_t offset, IsolateForSandbox isolate) const
 
template<CppHeapPointerTag lower_bound, CppHeapPointerTag upper_bound>
Address ReadCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate) const
 
Address ReadCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate, CppHeapPointerTagRange tag_range) const
 
template<ExternalPointerTag tag>
void WriteExternalPointerField (size_t offset, IsolateForSandbox isolate, Address value)
 
void SetupLazilyInitializedExternalPointerField (size_t offset)
 
bool IsLazilyInitializedExternalPointerFieldInitialized (size_t offset) const
 
template<ExternalPointerTag tag>
void WriteLazilyInitializedExternalPointerField (size_t offset, IsolateForSandbox isolate, Address value)
 
void SetupLazilyInitializedCppHeapPointerField (size_t offset)
 
template<CppHeapPointerTag tag>
void WriteLazilyInitializedCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate, Address value)
 
void WriteLazilyInitializedCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate, Address value, CppHeapPointerTag tag)
 
template<IndirectPointerTag tag>
Tagged< ExposedTrustedObjectReadTrustedPointerField (size_t offset, IsolateForSandbox isolate) const
 
template<IndirectPointerTag tag>
Tagged< ExposedTrustedObjectReadTrustedPointerField (size_t offset, IsolateForSandbox isolate, AcquireLoadTag) const
 
template<IndirectPointerTag tag>
Tagged< ObjectReadMaybeEmptyTrustedPointerField (size_t offset, IsolateForSandbox isolate, AcquireLoadTag) const
 
template<IndirectPointerTag tag>
void WriteTrustedPointerField (size_t offset, Tagged< ExposedTrustedObject > value)
 
bool IsTrustedPointerFieldEmpty (size_t offset) const
 
bool IsTrustedPointerFieldUnpublished (size_t offset, IndirectPointerTag tag, IsolateForSandbox isolate) const
 
void ClearTrustedPointerField (size_t offest)
 
void ClearTrustedPointerField (size_t offest, ReleaseStoreTag)
 
Tagged< CodeReadCodePointerField (size_t offset, IsolateForSandbox isolate) const
 
void WriteCodePointerField (size_t offset, Tagged< Code > value)
 
bool IsCodePointerFieldEmpty (size_t offset) const
 
void ClearCodePointerField (size_t offest)
 
Address ReadCodeEntrypointViaCodePointerField (size_t offset, CodeEntrypointTag tag) const
 
void WriteCodeEntrypointViaCodePointerField (size_t offset, Address value, CodeEntrypointTag tag)
 
ObjectSlot RawField (int byte_offset) const
 
MaybeObjectSlot RawMaybeWeakField (int byte_offset) const
 
InstructionStreamSlot RawInstructionStreamField (int byte_offset) const
 
ExternalPointerSlot RawExternalPointerField (int byte_offset, ExternalPointerTagRange tag_range) const
 
CppHeapPointerSlot RawCppHeapPointerField (int byte_offset) const
 
IndirectPointerSlot RawIndirectPointerField (int byte_offset, IndirectPointerTag tag) const
 
WriteBarrierMode GetWriteBarrierMode (const DisallowGarbageCollection &promise)
 
void HeapObjectShortPrint (std::ostream &os)
 
void Print ()
 
bool CheckRequiredAlignment (PtrComprCageBase cage_base) const
 
bool NeedsRehashing (InstanceType instance_type) const
 
bool NeedsRehashing (PtrComprCageBase cage_base) const
 
bool CanBeRehashed (PtrComprCageBase cage_base) const
 
template<typename IsolateT >
void RehashBasedOnMap (IsolateT *isolate)
 
Address GetFieldAddress (int field_offset) const
 
HeapObjectoperator-> ()
 
const HeapObjectoperator-> () const
 
template<HeapObject::EmitWriteBarrier emit_write_barrier, typename MemoryOrder , typename IsolateT >
void set_map (IsolateT *isolate, Tagged< Map > value, MemoryOrder order, VerificationMode mode)
 
- Public Member Functions inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
V8_INLINE constexpr TaggedImpl ()
 
V8_INLINE constexpr TaggedImpl (Address ptr)
 
 operator bool () const=delete
 
constexpr bool operator== (TaggedImpl< kOtherRefType, U > other) const
 
constexpr bool operator!= (TaggedImpl< kOtherRefType, U > other) const
 
constexpr bool SafeEquals (TaggedImpl< kOtherRefType, Address > other) const
 
constexpr bool operator< (TaggedImpl other) const
 
V8_INLINE constexpr Address ptr () const
 
constexpr bool IsObject () const
 
constexpr bool IsSmi () const
 
bool ToSmi (Tagged< Smi > *value) const
 
Tagged< SmiToSmi () const
 
constexpr bool IsHeapObject () const
 
constexpr bool IsCleared () const
 
constexpr bool IsStrongOrWeak () const
 
constexpr bool IsStrong () const
 
constexpr bool IsStrongOrSmi () const
 
constexpr bool IsWeak () const
 
constexpr bool IsWeakOrCleared () const
 
bool GetHeapObjectIfStrong (Tagged< HeapObject > *result) const
 
bool GetHeapObjectIfStrong (Isolate *isolate, Tagged< HeapObject > *result) const
 
Tagged< HeapObjectGetHeapObjectAssumeStrong () const
 
Tagged< HeapObjectGetHeapObjectAssumeStrong (Isolate *isolate) const
 
bool GetHeapObjectIfWeak (Tagged< HeapObject > *result) const
 
bool GetHeapObjectIfWeak (Isolate *isolate, Tagged< HeapObject > *result) const
 
Tagged< HeapObjectGetHeapObjectAssumeWeak () const
 
Tagged< HeapObjectGetHeapObjectAssumeWeak (Isolate *isolate) const
 
bool GetHeapObject (Tagged< HeapObject > *result) const
 
bool GetHeapObject (Isolate *isolate, Tagged< HeapObject > *result) const
 
bool GetHeapObject (Tagged< HeapObject > *result, HeapObjectReferenceType *reference_type) const
 
bool GetHeapObject (Isolate *isolate, Tagged< HeapObject > *result, HeapObjectReferenceType *reference_type) const
 
Tagged< HeapObjectGetHeapObject () const
 
Tagged< HeapObjectGetHeapObject (Isolate *isolate) const
 
Tagged< ObjectGetHeapObjectOrSmi () const
 
Tagged< ObjectGetHeapObjectOrSmi (Isolate *isolate) const
 
Tagged< Tcast () const
 

Static Public Member Functions

static bool IsWeakObjectInOptimizedCode (Tagged< HeapObject > object)
 
static bool IsWeakObjectInDeoptimizationLiteralArray (Tagged< Object > object)
 
static Tagged< CodeFromTargetAddress (Address address)
 
- Static Public Member Functions inherited from v8::internal::HeapObject
static void SetFillerMap (const WritableFreeSpace &writable_page, Tagged< Map > value)
 
static Tagged< HeapObjectFromAddress (Address address)
 
template<typename CompareAndSwapImpl >
static Tagged< ObjectSeqCst_CompareAndSwapField (Tagged< Object > expected_value, Tagged< Object > new_value, CompareAndSwapImpl compare_and_swap_impl)
 
template<typename ObjectType >
static JSDispatchHandle AllocateAndInstallJSDispatchHandle (ObjectType host, size_t offset, Isolate *isolate, uint16_t parameter_count, DirectHandle< Code > code, WriteBarrierMode mode=WriteBarrierMode::UPDATE_WRITE_BARRIER)
 
static void Print (Tagged< Object > obj)
 
static void Print (Tagged< Object > obj, std::ostream &os)
 
static AllocationAlignment RequiredAlignment (Tagged< Map > map)
 

Static Public Attributes

static const int kMarkedForDeoptimizationBit
 
static const int kIsTurbofannedBit = IsTurbofannedField::kShift
 
static const int kArgumentsBits = 16
 
static const int kMaxArguments = (1 << kArgumentsBits) - 10
 
- Static Public Attributes inherited from v8::internal::ExposedTrustedObject
static constexpr int kHeaderSize = TrustedObject::kHeaderSize
 
- Static Public Attributes inherited from v8::internal::TrustedObject
static constexpr int kHeaderSize = HeapObject::kHeaderSize
 
- Static Public Attributes inherited from v8::internal::HeapObject
static constexpr int kMapOffset = offsetof(HeapObjectLayout, map_)
 
static constexpr int kHeaderSize = sizeof(HeapObjectLayout)
 
- Static Public Attributes inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
static const bool kIsFull
 
static const bool kCanBeWeak
 

Private Types

enum  BytecodeToPCPosition { kPcAtStartOfBytecode , kPcAtEndOfBytecode }
 

Private Member Functions

void set_instruction_start (IsolateForSandbox isolate, Address value)
 
Tagged< Objectraw_deoptimization_data_or_interpreter_data () const
 
Tagged< Objectraw_position_table () const
 
uintptr_t GetBaselinePCForBytecodeOffset (int bytecode_offset, BytecodeToPCPosition position, Tagged< BytecodeArray > bytecodes)
 
 OBJECT_CONSTRUCTORS (Code, ExposedTrustedObject)
 

Private Attributes

friend Factory
 
friend FactoryBase< Factory >
 
friend FactoryBase< LocalFactory >
 

Friends

template<typename IsolateT >
class Deserializer
 

Additional Inherited Members

- Public Types inherited from v8::internal::HeapObject
using MapField = TaggedField<MapWord, HeapObject::kMapOffset>
 
- Protected Member Functions inherited from v8::internal::HeapObject
V8_INLINE constexpr HeapObject (Address ptr, HeapObject::SkipTypeCheckTag)
 
 HeapObject (Address ptr)
 
Address field_address (size_t offset) const
 
- Protected Member Functions inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
Addressptr_location ()
 
const Addressptr_location () const
 
- Static Protected Member Functions inherited from v8::internal::HeapObject
template<typename T >
static bool IsSmi (T obj)
 
template<typename T >
static bool IsHeapObject (T obj)
 

Detailed Description

Definition at line 63 of file code.h.

Member Enumeration Documentation

◆ BytecodeToPCPosition

Enumerator
kPcAtStartOfBytecode 
kPcAtEndOfBytecode 

Definition at line 475 of file code.h.

Member Function Documentation

◆ body_end()

Address v8::internal::Code::body_end ( ) const
inline

Definition at line 214 of file code-inl.h.

Here is the call graph for this function:

◆ body_size()

int v8::internal::Code::body_size ( ) const
inline

Definition at line 216 of file code-inl.h.

Here is the caller graph for this function:

◆ body_start()

Address v8::internal::Code::body_start ( ) const
inline

Definition at line 212 of file code-inl.h.

Here is the caller graph for this function:

◆ builtin_id()

Builtin v8::internal::Code::builtin_id ( ) const
inline

Definition at line 904 of file code-inl.h.

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

◆ builtin_jump_table_info()

Address v8::internal::Code::builtin_jump_table_info ( ) const
inline

Definition at line 646 of file code-inl.h.

Here is the call graph for this function:

◆ builtin_jump_table_info_size()

int v8::internal::Code::builtin_jump_table_info_size ( ) const
inline

Definition at line 650 of file code-inl.h.

Here is the caller graph for this function:

◆ bytecode_or_interpreter_data()

Tagged< TrustedObject > v8::internal::Code::bytecode_or_interpreter_data ( ) const
inline

Definition at line 131 of file code-inl.h.

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

◆ CanContainWeakObjects()

bool v8::internal::Code::CanContainWeakObjects ( )
inline

Definition at line 675 of file code-inl.h.

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

◆ checks_tiering_state()

bool v8::internal::Code::checks_tiering_state ( ) const
inline

Definition at line 411 of file code-inl.h.

Here is the call graph for this function:

◆ clear_deoptimization_data_and_interpreter_data()

void v8::internal::Code::clear_deoptimization_data_and_interpreter_data ( )
inline

Definition at line 122 of file code-inl.h.

Here is the call graph for this function:

◆ clear_padding()

void v8::internal::Code::clear_padding ( )
inline

Definition at line 875 of file code-inl.h.

Here is the call graph for this function:

◆ clear_source_position_table_and_bytecode_offset_table()

void v8::internal::Code::clear_source_position_table_and_bytecode_offset_table ( )
inline

Definition at line 191 of file code-inl.h.

Here is the call graph for this function:

◆ ClearEmbeddedObjectsAndJSDispatchHandles()

void v8::internal::Code::ClearEmbeddedObjectsAndJSDispatchHandles ( Heap * heap)

Definition at line 34 of file code.cc.

Here is the call graph for this function:

◆ ClearInstructionStartForSerialization()

void v8::internal::Code::ClearInstructionStartForSerialization ( IsolateForSandbox isolate)
inline

Definition at line 859 of file code-inl.h.

Here is the call graph for this function:

◆ code_cage_base()

PtrComprCageBase v8::internal::Code::code_cage_base ( ) const
inline

Definition at line 761 of file code-inl.h.

Here is the call graph for this function:

◆ code_comments()

Address v8::internal::Code::code_comments ( ) const
inline

Definition at line 619 of file code-inl.h.

Here is the call graph for this function:

◆ code_comments_size()

int v8::internal::Code::code_comments_size ( ) const
inline

Definition at line 623 of file code-inl.h.

Here is the caller graph for this function:

◆ constant_pool()

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

Definition at line 614 of file code-inl.h.

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

◆ constant_pool_size()

int v8::internal::Code::constant_pool_size ( ) const
inline

Definition at line 278 of file code-inl.h.

Here is the caller graph for this function:

◆ contains()

bool v8::internal::Code::contains ( Isolate * isolate,
Address pc ) const
inline

Definition at line 313 of file code-inl.h.

Here is the call graph for this function:

◆ DEFINE_FIELD_OFFSET_CONSTANTS()

v8::internal::Code::DEFINE_FIELD_OFFSET_CONSTANTS ( ExposedTrustedObject::kHeaderSize ,
CODE_DATA_FIELDS  )

◆ embedded_objects_cleared()

bool v8::internal::Code::embedded_objects_cleared ( ) const
inline

Definition at line 574 of file code-inl.h.

◆ entrypoint_tag()

CodeEntrypointTag v8::internal::Code::entrypoint_tag ( ) const
inline

Definition at line 826 of file code-inl.h.

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

◆ FlushICache()

void v8::internal::Code::FlushICache ( ) const

Definition at line 63 of file code.cc.

Here is the call graph for this function:

◆ FromTargetAddress()

Tagged< Code > v8::internal::Code::FromTargetAddress ( Address address)
inlinestatic

Definition at line 671 of file code-inl.h.

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

◆ GetBaselineEndPCForBytecodeOffset()

uintptr_t v8::internal::Code::GetBaselineEndPCForBytecodeOffset ( int bytecode_offset,
Tagged< BytecodeArray > bytecodes )
inline

Definition at line 383 of file code-inl.h.

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

◆ GetBaselinePCForBytecodeOffset()

uintptr_t v8::internal::Code::GetBaselinePCForBytecodeOffset ( int bytecode_offset,
BytecodeToPCPosition position,
Tagged< BytecodeArray > bytecodes )
inlineprivate

Definition at line 347 of file code-inl.h.

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

◆ GetBaselinePCForNextExecutedBytecode()

uintptr_t v8::internal::Code::GetBaselinePCForNextExecutedBytecode ( int bytecode_offset,
Tagged< BytecodeArray > bytecodes )
inline

Definition at line 389 of file code-inl.h.

Here is the call graph for this function:

◆ GetBaselineStartPCForBytecodeOffset()

uintptr_t v8::internal::Code::GetBaselineStartPCForBytecodeOffset ( int bytecode_offset,
Tagged< BytecodeArray > bytecodes )
inline

Definition at line 377 of file code-inl.h.

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

◆ GetBytecodeOffsetForBaselinePC()

int v8::internal::Code::GetBytecodeOffsetForBaselinePC ( Address baseline_pc,
Tagged< BytecodeArray > bytecodes )
inline

Definition at line 334 of file code-inl.h.

Here is the call graph for this function:

◆ GetMaglevSafepointEntry()

MaglevSafepointEntry v8::internal::Code::GetMaglevSafepointEntry ( Isolate * isolate,
Address pc )

Definition at line 108 of file code.cc.

Here is the call graph for this function:

◆ GetOffsetFromInstructionStart()

int v8::internal::Code::GetOffsetFromInstructionStart ( Isolate * isolate,
Address pc ) const
inline

Definition at line 248 of file code-inl.h.

Here is the call graph for this function:

◆ GetSafepointEntry()

SafepointEntry v8::internal::Code::GetSafepointEntry ( Isolate * isolate,
Address pc )

Definition at line 102 of file code.cc.

Here is the call graph for this function:

◆ handler_table_address()

Address v8::internal::Code::handler_table_address ( ) const
inline

Definition at line 268 of file code-inl.h.

Here is the call graph for this function:

◆ handler_table_size()

int v8::internal::Code::handler_table_size ( ) const
inline

Definition at line 272 of file code-inl.h.

Here is the caller graph for this function:

◆ has_builtin_jump_table_info()

bool v8::internal::Code::has_builtin_jump_table_info ( ) const
inline

Definition at line 654 of file code-inl.h.

Here is the call graph for this function:

◆ has_bytecode_offset_table()

bool v8::internal::Code::has_bytecode_offset_table ( ) const
inline

Definition at line 186 of file code-inl.h.

Here is the call graph for this function:

◆ has_code_comments()

bool v8::internal::Code::has_code_comments ( ) const
inline

Definition at line 627 of file code-inl.h.

Here is the call graph for this function:

◆ has_constant_pool()

bool v8::internal::Code::has_constant_pool ( ) const
inline

Definition at line 288 of file code-inl.h.

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

◆ has_deoptimization_data_or_interpreter_data()

bool v8::internal::Code::has_deoptimization_data_or_interpreter_data ( ) const
inline

Definition at line 126 of file code-inl.h.

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

◆ has_handler_table()

bool v8::internal::Code::has_handler_table ( ) const
inline

Definition at line 276 of file code-inl.h.

Here is the call graph for this function:

◆ has_instruction_stream() [1/2]

bool v8::internal::Code::has_instruction_stream ( ) const
inline

Definition at line 739 of file code-inl.h.

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

◆ has_instruction_stream() [2/2]

bool v8::internal::Code::has_instruction_stream ( RelaxedLoadTag tag) const
inline

Definition at line 749 of file code-inl.h.

Here is the call graph for this function:

◆ has_safepoint_table()

bool v8::internal::Code::has_safepoint_table ( ) const
inline

Definition at line 266 of file code-inl.h.

Here is the call graph for this function:

◆ has_source_position_table()

bool v8::internal::Code::has_source_position_table ( ) const
inline

Definition at line 179 of file code-inl.h.

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

◆ has_source_position_table_or_bytecode_offset_table()

bool v8::internal::Code::has_source_position_table_or_bytecode_offset_table ( ) const
inline

Definition at line 175 of file code-inl.h.

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

◆ has_tagged_outgoing_params()

bool v8::internal::Code::has_tagged_outgoing_params ( ) const
inline

Definition at line 424 of file code-inl.h.

Here is the call graph for this function:

◆ has_unwinding_info()

bool v8::internal::Code::has_unwinding_info ( ) const
inline

Definition at line 668 of file code-inl.h.

Here is the call graph for this function:

◆ initialize_flags()

void v8::internal::Code::initialize_flags ( CodeKind kind,
bool is_context_specialized,
bool is_turbofanned )
inline

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

Here is the call graph for this function:

◆ Inlines()

bool v8::internal::Code::Inlines ( Tagged< SharedFunctionInfo > sfi)

Definition at line 165 of file code.cc.

Here is the call graph for this function:

◆ instruction_end()

Address v8::internal::Code::instruction_end ( ) const
inline

Definition at line 218 of file code-inl.h.

◆ InstructionEnd()

Address v8::internal::Code::InstructionEnd ( Isolate * isolate,
Address pc ) const
inline

Definition at line 244 of file code-inl.h.

Here is the call graph for this function:

◆ InstructionStart()

Address v8::internal::Code::InstructionStart ( Isolate * isolate,
Address pc ) const
inline

Definition at line 236 of file code-inl.h.

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

◆ InstructionStreamObjectSize()

int v8::internal::Code::InstructionStreamObjectSize ( ) const
inline

Definition at line 319 of file code-inl.h.

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

◆ is_baseline_leave_frame_builtin()

bool v8::internal::Code::is_baseline_leave_frame_builtin ( ) const
inline

Definition at line 928 of file code-inl.h.

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

◆ is_baseline_trampoline_builtin()

bool v8::internal::Code::is_baseline_trampoline_builtin ( ) const
inline

Definition at line 924 of file code-inl.h.

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

◆ is_builtin()

bool v8::internal::Code::is_builtin ( ) const
inline

Definition at line 914 of file code-inl.h.

Here is the call graph for this function:

◆ is_context_specialized()

bool v8::internal::Code::is_context_specialized ( ) const
inline

Definition at line 433 of file code-inl.h.

◆ is_interpreter_trampoline_builtin()

bool v8::internal::Code::is_interpreter_trampoline_builtin ( ) const
inline

Definition at line 920 of file code-inl.h.

Here is the call graph for this function:

◆ is_maglevved()

bool v8::internal::Code::is_maglevved ( ) const
inline

Definition at line 441 of file code-inl.h.

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

◆ is_optimized_code()

bool v8::internal::Code::is_optimized_code ( ) const
inline

Definition at line 916 of file code-inl.h.

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

◆ is_turbofanned()

bool v8::internal::Code::is_turbofanned ( ) const
inline

Definition at line 437 of file code-inl.h.

Here is the caller graph for this function:

◆ is_wasm_code()

bool v8::internal::Code::is_wasm_code ( ) const
inline

Definition at line 595 of file code-inl.h.

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

◆ IsIsolateIndependent()

bool v8::internal::Code::IsIsolateIndependent ( Isolate * isolate)

Definition at line 115 of file code.cc.

Here is the call graph for this function:

◆ IsWeakObject()

bool v8::internal::Code::IsWeakObject ( Tagged< HeapObject > object)
inline

Definition at line 679 of file code-inl.h.

Here is the call graph for this function:

◆ IsWeakObjectInDeoptimizationLiteralArray()

bool v8::internal::Code::IsWeakObjectInDeoptimizationLiteralArray ( Tagged< Object > object)
inlinestatic

Definition at line 693 of file code-inl.h.

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

◆ IsWeakObjectInOptimizedCode()

bool v8::internal::Code::IsWeakObjectInOptimizedCode ( Tagged< HeapObject > object)
inlinestatic

Definition at line 683 of file code-inl.h.

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

◆ IterateDeoptimizationLiterals()

void v8::internal::Code::IterateDeoptimizationLiterals ( RootVisitor * v)
inline

Definition at line 702 of file code-inl.h.

Here is the call graph for this function:

◆ kind()

CodeKind v8::internal::Code::kind ( ) const
inline

Definition at line 332 of file code-inl.h.

Here is the caller graph for this function:

◆ metadata_end()

Address v8::internal::Code::metadata_end ( ) const
inline

Definition at line 254 of file code-inl.h.

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

◆ metadata_start()

Address v8::internal::Code::metadata_start ( ) const
inline

Definition at line 222 of file code-inl.h.

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

◆ OBJECT_CONSTRUCTORS()

v8::internal::Code::OBJECT_CONSTRUCTORS ( Code ,
ExposedTrustedObject  )
private

◆ parameter_count_without_receiver()

uint16_t v8::internal::Code::parameter_count_without_receiver ( ) const
inline

Definition at line 98 of file code-inl.h.

◆ raw_deoptimization_data_or_interpreter_data()

Tagged< Object > v8::internal::Code::raw_deoptimization_data_or_interpreter_data ( ) const
private

Definition at line 25 of file code.cc.

Here is the call graph for this function:

◆ raw_position_table()

Tagged< Object > v8::internal::Code::raw_position_table ( ) const
private

Definition at line 30 of file code.cc.

Here is the call graph for this function:

◆ relocation_end()

uint8_t * v8::internal::Code::relocation_end ( ) const
inline

Definition at line 301 of file code-inl.h.

Here is the call graph for this function:

◆ relocation_size()

int v8::internal::Code::relocation_size ( ) const
inline

Definition at line 307 of file code-inl.h.

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

◆ relocation_start()

uint8_t * v8::internal::Code::relocation_start ( ) const
inline

Definition at line 295 of file code-inl.h.

Here is the call graph for this function:

◆ safepoint_table_address()

Address v8::internal::Code::safepoint_table_address ( ) const
inline

Definition at line 258 of file code-inl.h.

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

◆ safepoint_table_offset()

int v8::internal::Code::safepoint_table_offset ( ) const
inline

Definition at line 263 of file code.h.

Here is the caller graph for this function:

◆ safepoint_table_size()

int v8::internal::Code::safepoint_table_size ( ) const
inline

Definition at line 262 of file code-inl.h.

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

◆ set_builtin_id()

void v8::internal::Code::set_builtin_id ( Builtin builtin_id)
inline

Definition at line 898 of file code-inl.h.

Here is the call graph for this function:

◆ set_bytecode_or_interpreter_data()

void v8::internal::Code::set_bytecode_or_interpreter_data ( Tagged< TrustedObject > value,
WriteBarrierMode mode = UPDATE_WRITE_BARRIER )
inline

Definition at line 135 of file code-inl.h.

Here is the call graph for this function:

◆ set_embedded_objects_cleared()

void v8::internal::Code::set_embedded_objects_cleared ( bool flag)
inline

Definition at line 578 of file code-inl.h.

Here is the caller graph for this function:

◆ set_instruction_start()

void v8::internal::Code::set_instruction_start ( IsolateForSandbox isolate,
Address value )
inlineprivate

Definition at line 817 of file code-inl.h.

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

◆ SetInstructionStartForOffHeapBuiltin()

void v8::internal::Code::SetInstructionStartForOffHeapBuiltin ( IsolateForSandbox isolate,
Address entry )
inline

Definition at line 853 of file code-inl.h.

Here is the call graph for this function:

◆ SetInstructionStreamAndInstructionStart()

void v8::internal::Code::SetInstructionStreamAndInstructionStart ( IsolateForSandbox isolate,
Tagged< InstructionStream > code,
WriteBarrierMode mode = UPDATE_WRITE_BARRIER )
inline

Definition at line 846 of file code-inl.h.

Here is the call graph for this function:

◆ SetMarkedForDeoptimization()

void v8::internal::Code::SetMarkedForDeoptimization ( Isolate * isolate,
LazyDeoptimizeReason reason )
inline

Definition at line 513 of file code-inl.h.

Here is the call graph for this function:

◆ SizeIncludingMetadata()

int v8::internal::Code::SizeIncludingMetadata ( ) const
inline

Definition at line 323 of file code-inl.h.

Here is the call graph for this function:

◆ SourcePosition()

int v8::internal::Code::SourcePosition ( int offset) const

Definition at line 67 of file code.cc.

Here is the call graph for this function:

◆ SourcePositionTable()

Tagged< TrustedByteArray > v8::internal::Code::SourcePositionTable ( Isolate * isolate,
Tagged< SharedFunctionInfo > sfi ) const
inline

Definition at line 197 of file code-inl.h.

◆ SourceStatementPosition()

int v8::internal::Code::SourceStatementPosition ( int offset) const

Definition at line 85 of file code.cc.

Here is the call graph for this function:

◆ stack_slots()

uint32_t v8::internal::Code::stack_slots ( ) const
inline

Definition at line 491 of file code-inl.h.

Here is the call graph for this function:

◆ TraceMarkForDeoptimization()

void v8::internal::Code::TraceMarkForDeoptimization ( Isolate * isolate,
LazyDeoptimizeReason reason )

Definition at line 337 of file code.cc.

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

◆ unchecked_deoptimization_data()

Tagged< ProtectedFixedArray > v8::internal::Code::unchecked_deoptimization_data ( ) const
inline

Definition at line 290 of file code-inl.h.

Here is the call graph for this function:

◆ unchecked_instruction_stream()

Tagged< InstructionStream > v8::internal::Code::unchecked_instruction_stream ( ) const
inline

Definition at line 777 of file code-inl.h.

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

◆ unwinding_info_end()

Address v8::internal::Code::unwinding_info_end ( ) const
inline

Definition at line 662 of file code-inl.h.

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

◆ unwinding_info_size()

int v8::internal::Code::unwinding_info_size ( ) const
inline

Definition at line 664 of file code-inl.h.

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

◆ unwinding_info_start()

Address v8::internal::Code::unwinding_info_start ( ) const
inline

Definition at line 658 of file code-inl.h.

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

◆ UpdateInstructionStart()

void v8::internal::Code::UpdateInstructionStart ( IsolateForSandbox isolate,
Tagged< InstructionStream > istream )
inline

Definition at line 869 of file code-inl.h.

Here is the call graph for this function:

◆ uses_deoptimization_data()

bool v8::internal::Code::uses_deoptimization_data ( ) const
inline

Definition at line 118 of file code-inl.h.

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

◆ uses_safepoint_table()

bool v8::internal::Code::uses_safepoint_table ( ) const
inline

Definition at line 487 of file code-inl.h.

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

Friends And Related Symbol Documentation

◆ Deserializer

template<typename IsolateT >
friend class Deserializer
friend

Definition at line 487 of file code.h.

Member Data Documentation

◆ Factory

friend v8::internal::Code::Factory
private

Definition at line 488 of file code.h.

◆ FactoryBase< Factory >

friend v8::internal::Code::FactoryBase< Factory >
private

Definition at line 489 of file code.h.

◆ FactoryBase< LocalFactory >

friend v8::internal::Code::FactoryBase< LocalFactory >
private

Definition at line 490 of file code.h.

◆ kArgumentsBits

const int v8::internal::Code::kArgumentsBits = 16
static

Definition at line 460 of file code.h.

◆ kIsTurbofannedBit

const int v8::internal::Code::kIsTurbofannedBit = IsTurbofannedField::kShift
static

Definition at line 458 of file code.h.

◆ kMarkedForDeoptimizationBit

const int v8::internal::Code::kMarkedForDeoptimizationBit
static
Initial value:
=
MarkedForDeoptimizationField::kShift

Definition at line 456 of file code.h.

◆ kMaxArguments

const int v8::internal::Code::kMaxArguments = (1 << kArgumentsBits) - 10
static

Definition at line 463 of file code.h.


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