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

#include <bytecode-array-iterator.h>

Inheritance diagram for v8::internal::interpreter::BytecodeArrayIterator:
Collaboration diagram for v8::internal::interpreter::BytecodeArrayIterator:

Public Member Functions

 BytecodeArrayIterator (Handle< BytecodeArray > bytecode_array, int initial_offset=0)
 
 BytecodeArrayIterator (Handle< BytecodeArray > bytecode_array, int initial_offset, DisallowGarbageCollection &no_gc)
 
 ~BytecodeArrayIterator ()
 
 BytecodeArrayIterator (const BytecodeArrayIterator &)=delete
 
BytecodeArrayIteratoroperator= (const BytecodeArrayIterator &)=delete
 
void Advance ()
 
void AdvanceTo (int offset)
 
void SetOffset (int offset)
 
void Reset ()
 
bool CurrentBytecodeIsValidOSREntry () const
 
void ApplyDebugBreak ()
 
Bytecode current_bytecode () const
 
int current_bytecode_size () const
 
int current_bytecode_size_without_prefix () const
 
int current_offset () const
 
uint8_t * current_address () const
 
int next_offset () const
 
Bytecode next_bytecode () const
 
OperandScale current_operand_scale () const
 
DirectHandle< BytecodeArraybytecode_array () const
 
uint32_t GetFlag8Operand (int operand_index) const
 
uint32_t GetFlag16Operand (int operand_index) const
 
uint32_t GetUnsignedImmediateOperand (int operand_index) const
 
int32_t GetImmediateOperand (int operand_index) const
 
uint32_t GetIndexOperand (int operand_index) const
 
FeedbackSlot GetSlotOperand (int operand_index) const
 
Register GetParameter (int parameter_index) const
 
uint32_t GetRegisterCountOperand (int operand_index) const
 
Register GetRegisterOperand (int operand_index) const
 
Register GetStarTargetRegister () const
 
std::pair< Register, RegisterGetRegisterPairOperand (int operand_index) const
 
RegisterList GetRegisterListOperand (int operand_index) const
 
int GetRegisterOperandRange (int operand_index) const
 
Runtime::FunctionId GetRuntimeIdOperand (int operand_index) const
 
Runtime::FunctionId GetIntrinsicIdOperand (int operand_index) const
 
uint32_t GetNativeContextIndexOperand (int operand_index) const
 
template<typename IsolateT >
Handle< ObjectGetConstantAtIndex (int offset, IsolateT *isolate) const
 
bool IsConstantAtIndexSmi (int offset) const
 
Tagged< SmiGetConstantAtIndexAsSmi (int offset) const
 
template<typename IsolateT >
Handle< ObjectGetConstantForIndexOperand (int operand_index, IsolateT *isolate) const
 
int GetRelativeJumpTargetOffset () const
 
int GetJumpTargetOffset () const
 
JumpTableTargetOffsets GetJumpTableTargetOffsets () const
 
int GetAbsoluteOffset (int relative_offset) const
 
std::ostream & PrintTo (std::ostream &os) const
 
void UpdatePointers ()
 
bool done () const
 
bool operator== (const BytecodeArrayIterator &other) const
 
bool operator!= (const BytecodeArrayIterator &other) const
 

Static Public Member Functions

static bool IsValidOffset (Handle< BytecodeArray > bytecode_array, int offset)
 
static bool IsValidOSREntryOffset (Handle< BytecodeArray > bytecode_array, int offset)
 
static void UpdatePointersCallback (void *iterator)
 

Protected Member Functions

void SetOffsetUnchecked (int offset)
 

Private Member Functions

uint32_t GetUnsignedOperand (int operand_index, OperandType operand_type) const
 
int32_t GetSignedOperand (int operand_index, OperandType operand_type) const
 
void UpdateOperandScale ()
 

Private Attributes

Handle< BytecodeArraybytecode_array_
 
uint8_t * start_
 
uint8_t * end_
 
uint8_t * cursor_
 
OperandScale operand_scale_
 
int prefix_size_
 
LocalHeap *const local_heap_
 

Detailed Description

Definition at line 70 of file bytecode-array-iterator.h.

Constructor & Destructor Documentation

◆ BytecodeArrayIterator() [1/3]

v8::internal::interpreter::BytecodeArrayIterator::BytecodeArrayIterator ( Handle< BytecodeArray > bytecode_array,
int initial_offset = 0 )
explicit

Definition at line 16 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ BytecodeArrayIterator() [2/3]

v8::internal::interpreter::BytecodeArrayIterator::BytecodeArrayIterator ( Handle< BytecodeArray > bytecode_array,
int initial_offset,
DisallowGarbageCollection & no_gc )

Definition at line 35 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ ~BytecodeArrayIterator()

v8::internal::interpreter::BytecodeArrayIterator::~BytecodeArrayIterator ( )

Definition at line 53 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ BytecodeArrayIterator() [3/3]

v8::internal::interpreter::BytecodeArrayIterator::BytecodeArrayIterator ( const BytecodeArrayIterator & )
delete

Member Function Documentation

◆ Advance()

void v8::internal::interpreter::BytecodeArrayIterator::Advance ( )
inline

Definition at line 81 of file bytecode-array-iterator.h.

Here is the caller graph for this function:

◆ AdvanceTo()

void v8::internal::interpreter::BytecodeArrayIterator::AdvanceTo ( int offset)

Definition at line 59 of file bytecode-array-iterator.cc.

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

◆ ApplyDebugBreak()

void v8::internal::interpreter::BytecodeArrayIterator::ApplyDebugBreak ( )

Definition at line 111 of file bytecode-array-iterator.cc.

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

◆ bytecode_array()

DirectHandle< BytecodeArray > v8::internal::interpreter::BytecodeArrayIterator::bytecode_array ( ) const
inline

Definition at line 128 of file bytecode-array-iterator.h.

Here is the caller graph for this function:

◆ current_address()

uint8_t * v8::internal::interpreter::BytecodeArrayIterator::current_address ( ) const
inline

Definition at line 116 of file bytecode-array-iterator.h.

Here is the caller graph for this function:

◆ current_bytecode()

Bytecode v8::internal::interpreter::BytecodeArrayIterator::current_bytecode ( ) const
inline

Definition at line 100 of file bytecode-array-iterator.h.

Here is the caller graph for this function:

◆ current_bytecode_size()

int v8::internal::interpreter::BytecodeArrayIterator::current_bytecode_size ( ) const
inline

Definition at line 107 of file bytecode-array-iterator.h.

Here is the caller graph for this function:

◆ current_bytecode_size_without_prefix()

int v8::internal::interpreter::BytecodeArrayIterator::current_bytecode_size_without_prefix ( ) const
inline

Definition at line 110 of file bytecode-array-iterator.h.

◆ current_offset()

int v8::internal::interpreter::BytecodeArrayIterator::current_offset ( ) const
inline

Definition at line 113 of file bytecode-array-iterator.h.

Here is the caller graph for this function:

◆ current_operand_scale()

OperandScale v8::internal::interpreter::BytecodeArrayIterator::current_operand_scale ( ) const
inline

Definition at line 127 of file bytecode-array-iterator.h.

Here is the caller graph for this function:

◆ CurrentBytecodeIsValidOSREntry()

bool v8::internal::interpreter::BytecodeArrayIterator::CurrentBytecodeIsValidOSREntry ( ) const

Definition at line 107 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ done()

bool v8::internal::interpreter::BytecodeArrayIterator::done ( ) const
inline

Definition at line 179 of file bytecode-array-iterator.h.

Here is the caller graph for this function:

◆ GetAbsoluteOffset()

int v8::internal::interpreter::BytecodeArrayIterator::GetAbsoluteOffset ( int relative_offset) const

Definition at line 346 of file bytecode-array-iterator.cc.

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

◆ GetConstantAtIndex()

template<typename IsolateT >
Handle< Object > v8::internal::interpreter::BytecodeArrayIterator::GetConstantAtIndex ( int offset,
IsolateT * isolate ) const

Definition at line 284 of file bytecode-array-iterator.cc.

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

◆ GetConstantAtIndexAsSmi()

Tagged< Smi > v8::internal::interpreter::BytecodeArrayIterator::GetConstantAtIndexAsSmi ( int offset) const

Definition at line 293 of file bytecode-array-iterator.cc.

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

◆ GetConstantForIndexOperand()

template<typename IsolateT >
Handle< Object > v8::internal::interpreter::BytecodeArrayIterator::GetConstantForIndexOperand ( int operand_index,
IsolateT * isolate ) const

Definition at line 298 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ GetFlag16Operand()

uint32_t v8::internal::interpreter::BytecodeArrayIterator::GetFlag16Operand ( int operand_index) const

Definition at line 159 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ GetFlag8Operand()

uint32_t v8::internal::interpreter::BytecodeArrayIterator::GetFlag8Operand ( int operand_index) const

Definition at line 153 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ GetImmediateOperand()

int32_t v8::internal::interpreter::BytecodeArrayIterator::GetImmediateOperand ( int operand_index) const

Definition at line 172 of file bytecode-array-iterator.cc.

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

◆ GetIndexOperand()

uint32_t v8::internal::interpreter::BytecodeArrayIterator::GetIndexOperand ( int operand_index) const

Definition at line 185 of file bytecode-array-iterator.cc.

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

◆ GetIntrinsicIdOperand()

Runtime::FunctionId v8::internal::interpreter::BytecodeArrayIterator::GetIntrinsicIdOperand ( int operand_index) const

Definition at line 273 of file bytecode-array-iterator.cc.

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

◆ GetJumpTableTargetOffsets()

JumpTableTargetOffsets v8::internal::interpreter::BytecodeArrayIterator::GetJumpTableTargetOffsets ( ) const

Definition at line 329 of file bytecode-array-iterator.cc.

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

◆ GetJumpTargetOffset()

int v8::internal::interpreter::BytecodeArrayIterator::GetJumpTargetOffset ( ) const

Definition at line 325 of file bytecode-array-iterator.cc.

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

◆ GetNativeContextIndexOperand()

uint32_t v8::internal::interpreter::BytecodeArrayIterator::GetNativeContextIndexOperand ( int operand_index) const

Definition at line 265 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ GetParameter()

Register v8::internal::interpreter::BytecodeArrayIterator::GetParameter ( int parameter_index) const

Definition at line 197 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ GetRegisterCountOperand()

uint32_t v8::internal::interpreter::BytecodeArrayIterator::GetRegisterCountOperand ( int operand_index) const

Definition at line 178 of file bytecode-array-iterator.cc.

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

◆ GetRegisterListOperand()

RegisterList v8::internal::interpreter::BytecodeArrayIterator::GetRegisterListOperand ( int operand_index) const

Definition at line 235 of file bytecode-array-iterator.cc.

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

◆ GetRegisterOperand()

Register v8::internal::interpreter::BytecodeArrayIterator::GetRegisterOperand ( int operand_index) const

Definition at line 204 of file bytecode-array-iterator.cc.

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

◆ GetRegisterOperandRange()

int v8::internal::interpreter::BytecodeArrayIterator::GetRegisterOperandRange ( int operand_index) const

Definition at line 242 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ GetRegisterPairOperand()

std::pair< Register, Register > v8::internal::interpreter::BytecodeArrayIterator::GetRegisterPairOperand ( int operand_index) const

Definition at line 228 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ GetRelativeJumpTargetOffset()

int v8::internal::interpreter::BytecodeArrayIterator::GetRelativeJumpTargetOffset ( ) const

Definition at line 309 of file bytecode-array-iterator.cc.

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

◆ GetRuntimeIdOperand()

Runtime::FunctionId v8::internal::interpreter::BytecodeArrayIterator::GetRuntimeIdOperand ( int operand_index) const

Definition at line 256 of file bytecode-array-iterator.cc.

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

◆ GetSignedOperand()

int32_t v8::internal::interpreter::BytecodeArrayIterator::GetSignedOperand ( int operand_index,
OperandType operand_type ) const
private

Definition at line 138 of file bytecode-array-iterator.cc.

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

◆ GetSlotOperand()

FeedbackSlot v8::internal::interpreter::BytecodeArrayIterator::GetSlotOperand ( int operand_index) const

Definition at line 192 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ GetStarTargetRegister()

Register v8::internal::interpreter::BytecodeArrayIterator::GetStarTargetRegister ( ) const

Definition at line 215 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ GetUnsignedImmediateOperand()

uint32_t v8::internal::interpreter::BytecodeArrayIterator::GetUnsignedImmediateOperand ( int operand_index) const

Definition at line 165 of file bytecode-array-iterator.cc.

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

◆ GetUnsignedOperand()

uint32_t v8::internal::interpreter::BytecodeArrayIterator::GetUnsignedOperand ( int operand_index,
OperandType operand_type ) const
private

Definition at line 123 of file bytecode-array-iterator.cc.

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

◆ IsConstantAtIndexSmi()

bool v8::internal::interpreter::BytecodeArrayIterator::IsConstantAtIndexSmi ( int offset) const

Definition at line 289 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ IsValidOffset()

bool v8::internal::interpreter::BytecodeArrayIterator::IsValidOffset ( Handle< BytecodeArray > bytecode_array,
int offset )
static

Definition at line 91 of file bytecode-array-iterator.cc.

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

◆ IsValidOSREntryOffset()

bool v8::internal::interpreter::BytecodeArrayIterator::IsValidOSREntryOffset ( Handle< BytecodeArray > bytecode_array,
int offset )
static

Definition at line 101 of file bytecode-array-iterator.cc.

Here is the call graph for this function:

◆ next_bytecode()

Bytecode v8::internal::interpreter::BytecodeArrayIterator::next_bytecode ( ) const
inline

Definition at line 118 of file bytecode-array-iterator.h.

◆ next_offset()

int v8::internal::interpreter::BytecodeArrayIterator::next_offset ( ) const
inline

Definition at line 117 of file bytecode-array-iterator.h.

Here is the caller graph for this function:

◆ operator!=()

bool v8::internal::interpreter::BytecodeArrayIterator::operator!= ( const BytecodeArrayIterator & other) const
inline

Definition at line 184 of file bytecode-array-iterator.h.

◆ operator=()

BytecodeArrayIterator & v8::internal::interpreter::BytecodeArrayIterator::operator= ( const BytecodeArrayIterator & )
delete

◆ operator==()

bool v8::internal::interpreter::BytecodeArrayIterator::operator== ( const BytecodeArrayIterator & other) const
inline

Definition at line 181 of file bytecode-array-iterator.h.

◆ PrintTo()

std::ostream & v8::internal::interpreter::BytecodeArrayIterator::PrintTo ( std::ostream & os) const

Definition at line 350 of file bytecode-array-iterator.cc.

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

◆ Reset()

void v8::internal::interpreter::BytecodeArrayIterator::Reset ( )

Definition at line 78 of file bytecode-array-iterator.cc.

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

◆ SetOffset()

void v8::internal::interpreter::BytecodeArrayIterator::SetOffset ( int offset)

Definition at line 68 of file bytecode-array-iterator.cc.

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

◆ SetOffsetUnchecked()

void v8::internal::interpreter::BytecodeArrayIterator::SetOffsetUnchecked ( int offset)
protected

Definition at line 84 of file bytecode-array-iterator.cc.

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

◆ UpdateOperandScale()

void v8::internal::interpreter::BytecodeArrayIterator::UpdateOperandScale ( )
inlineprivate

Definition at line 196 of file bytecode-array-iterator.h.

Here is the caller graph for this function:

◆ UpdatePointers()

void v8::internal::interpreter::BytecodeArrayIterator::UpdatePointers ( )

Definition at line 354 of file bytecode-array-iterator.cc.

◆ UpdatePointersCallback()

static void v8::internal::interpreter::BytecodeArrayIterator::UpdatePointersCallback ( void * iterator)
inlinestatic

Definition at line 173 of file bytecode-array-iterator.h.

Here is the caller graph for this function:

Member Data Documentation

◆ bytecode_array_

Handle<BytecodeArray> v8::internal::interpreter::BytecodeArrayIterator::bytecode_array_
private

Definition at line 211 of file bytecode-array-iterator.h.

◆ cursor_

uint8_t* v8::internal::interpreter::BytecodeArrayIterator::cursor_
private

Definition at line 216 of file bytecode-array-iterator.h.

◆ end_

uint8_t* v8::internal::interpreter::BytecodeArrayIterator::end_
private

Definition at line 213 of file bytecode-array-iterator.h.

◆ local_heap_

LocalHeap* const v8::internal::interpreter::BytecodeArrayIterator::local_heap_
private

Definition at line 219 of file bytecode-array-iterator.h.

◆ operand_scale_

OperandScale v8::internal::interpreter::BytecodeArrayIterator::operand_scale_
private

Definition at line 217 of file bytecode-array-iterator.h.

◆ prefix_size_

int v8::internal::interpreter::BytecodeArrayIterator::prefix_size_
private

Definition at line 218 of file bytecode-array-iterator.h.

◆ start_

uint8_t* v8::internal::interpreter::BytecodeArrayIterator::start_
private

Definition at line 212 of file bytecode-array-iterator.h.


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