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

#include <wasm-interpreter-runtime.h>

Collaboration diagram for v8::internal::wasm::WasmInterpreterRuntime:

Classes

struct  IndirectCallValue
 

Public Types

using PackedArgsSizeField = base::BitField<uint32_t, 0, 14>
 
using HasRefArgsField = base::BitField<bool, 14, 1>
 
using HasRefRetsField = base::BitField<bool, 15, 1>
 

Public Member Functions

 WasmInterpreterRuntime (const WasmModule *module, Isolate *isolate, IndirectHandle< WasmInstanceObject > instance_object, WasmInterpreter::CodeMap *codemap)
 
WasmBytecodeGetFunctionBytecode (uint32_t func_index)
 
std::vector< WasmInterpreterStackEntryGetInterpretedStack (Address frame_pointer)
 
int GetFunctionIndex (Address frame_pointer, int index) const
 
void SetTrapFunctionIndex (int32_t func_index)
 
IsolateGetIsolate () const
 
uint8_t * GetGlobalAddress (uint32_t index)
 
DirectHandle< ObjectGetGlobalRef (uint32_t index) const
 
void SetGlobalRef (uint32_t index, DirectHandle< Object > ref) const
 
int32_t MemoryGrow (uint32_t delta_pages)
 
uint64_t MemorySize () const
 
bool IsMemory64 () const
 
uint8_t * GetMemoryStart () const
 
size_t GetMemorySize () const
 
bool MemoryInit (const uint8_t *&current_code, uint32_t data_segment_index, uint64_t dst, uint64_t src, uint64_t size)
 
bool MemoryCopy (const uint8_t *&current_code, uint64_t dst, uint64_t src, uint64_t size)
 
bool MemoryFill (const uint8_t *&current_code, uint64_t dst, uint32_t value, uint64_t size)
 
bool AllowsAtomicsWait () const
 
int32_t AtomicNotify (uint64_t effective_index, int32_t val)
 
int32_t I32AtomicWait (uint64_t effective_index, int32_t val, int64_t timeout)
 
int32_t I64AtomicWait (uint64_t effective_index, int64_t val, int64_t timeout)
 
bool WasmStackCheck (const uint8_t *current_bytecode, const uint8_t *&code)
 
bool TableGet (const uint8_t *&current_code, uint32_t table_index, uint32_t entry_index, DirectHandle< Object > *result)
 
void TableSet (const uint8_t *&current_code, uint32_t table_index, uint32_t entry_index, DirectHandle< Object > ref)
 
void TableInit (const uint8_t *&current_code, uint32_t table_index, uint32_t element_segment_index, uint32_t dst, uint32_t src, uint32_t size)
 
void TableCopy (const uint8_t *&current_code, uint32_t dst_table_index, uint32_t src_table_index, uint32_t dst, uint32_t src, uint32_t size)
 
uint32_t TableGrow (uint32_t table_index, uint32_t delta, DirectHandle< Object > value)
 
uint32_t TableSize (uint32_t table_index)
 
void TableFill (const uint8_t *&current_code, uint32_t table_index, uint32_t count, DirectHandle< Object > value, uint32_t start)
 
void DataDrop (uint32_t index)
 
void ElemDrop (uint32_t index)
 
const WasmTagGetWasmTag (uint32_t tag_index) const
 
DirectHandle< WasmExceptionPackageCreateWasmExceptionPackage (uint32_t tag_index) const
 
void UnpackException (uint32_t *sp, const WasmTag &tag, DirectHandle< Object > exception_object, uint32_t first_param_slot_index, uint32_t first_param_ref_stack_index)
 
void ThrowException (const uint8_t *&code, uint32_t *sp, Tagged< Object > exception_object)
 
void RethrowException (const uint8_t *&code, uint32_t *sp, uint32_t catch_block_index)
 
void BeginExecution (WasmInterpreterThread *thread, uint32_t function_index, Address frame_pointer, uint8_t *interpreter_fp, uint32_t ref_stack_offset, const std::vector< WasmValue > *argument_values=nullptr)
 
void ContinueExecution (WasmInterpreterThread *thread, bool called_from_js)
 
void ExecuteImportedFunction (const uint8_t *&code, uint32_t func_index, uint32_t current_stack_size, uint32_t ref_stack_fp_offset, uint32_t slot_offset, uint32_t return_slot_offset, bool is_tail_call=false)
 
void PrepareTailCall (const uint8_t *&code, uint32_t func_index, uint32_t current_stack_size, uint32_t return_slot_offset)
 
void ExecuteFunction (const uint8_t *&code, uint32_t function_index, uint32_t current_stack_size, uint32_t ref_stack_fp_offset, uint32_t slot_offset, uint32_t return_slot_offset)
 
void ExecuteIndirectCall (const uint8_t *&current_code, uint32_t table_index, uint32_t sig_index, uint32_t entry_index, uint32_t stack_pos, uint32_t *sp, uint32_t ref_stack_fp_offset, uint32_t slot_offset, uint32_t return_slot_offset, bool is_tail_call)
 
void ExecuteCallRef (const uint8_t *&current_code, WasmRef func_ref, uint32_t sig_index, uint32_t stack_pos, uint32_t *sp, uint32_t ref_stack_fp_offset, uint32_t slot_offset, uint32_t return_slot_offset, bool is_tail_call)
 
const WasmValueGetReturnValue (size_t index) const
 
bool IsRefNull (DirectHandle< Object > ref) const
 
DirectHandle< ObjectGetFunctionRef (uint32_t index) const
 
void StoreWasmRef (uint32_t ref_stack_index, const WasmRef &ref)
 
WasmRef ExtractWasmRef (uint32_t ref_stack_index)
 
void UnwindCurrentStackFrame (uint32_t *sp, uint32_t slot_offset, uint32_t rets_size, uint32_t args_size, uint32_t rets_refs, uint32_t args_refs, uint32_t ref_stack_fp_offset)
 
void PrintStack (uint32_t *sp, RegMode reg_mode, int64_t r0, double fp0)
 
void SetTrap (TrapReason trap_reason, pc_t trap_pc)
 
void SetTrap (TrapReason trap_reason, const uint8_t *&current_code)
 
DirectHandle< MapRttCanon (uint32_t type_index) const
 
std::pair< DirectHandle< WasmStruct >, const StructType * > StructNewUninitialized (uint32_t index) const
 
std::pair< DirectHandle< WasmArray >, const ArrayType * > ArrayNewUninitialized (uint32_t length, uint32_t array_index) const
 
WasmRef WasmArrayNewSegment (uint32_t array_index, uint32_t segment_index, uint32_t offset, uint32_t length)
 
bool WasmArrayInitSegment (uint32_t segment_index, WasmRef wasm_array, uint32_t array_offset, uint32_t segment_offset, uint32_t length)
 
bool WasmArrayCopy (WasmRef dest_wasm_array, uint32_t dest_index, WasmRef src_wasm_array, uint32_t src_index, uint32_t length)
 
WasmRef WasmJSToWasmObject (WasmRef extern_ref, ValueType value_type, uint32_t canonical_index) const
 
WasmRef JSToWasmObject (WasmRef extern_ref, ValueType value_type) const
 
WasmRef WasmToJSObject (WasmRef ref) const
 
const ArrayTypeGetArrayType (uint32_t array_index) const
 
DirectHandle< ObjectGetWasmArrayRefElement (Tagged< WasmArray > array, uint32_t index) const
 
bool SubtypeCheck (const WasmRef obj, const ValueType obj_type, const DirectHandle< Map > rtt, const ModuleTypeIndex target_type, bool null_succeeds) const
 
bool RefIsEq (const WasmRef obj, const ValueType obj_type, bool null_succeeds) const
 
bool RefIsI31 (const WasmRef obj, const ValueType obj_type, bool null_succeeds) const
 
bool RefIsStruct (const WasmRef obj, const ValueType obj_type, bool null_succeeds) const
 
bool RefIsArray (const WasmRef obj, const ValueType obj_type, bool null_succeeds) const
 
bool RefIsString (const WasmRef obj, const ValueType obj_type, bool null_succeeds) const
 
bool IsNullTypecheck (const WasmRef obj, const ValueType obj_type) const
 
Tagged< ObjectGetNullValue (const ValueType obj_type) const
 
size_t TotalBytecodeSize () const
 
void ResetCurrentHandleScope ()
 
 WasmInterpreterRuntime (const WasmInterpreterRuntime &)=delete
 
WasmInterpreterRuntimeoperator= (const WasmInterpreterRuntime &)=delete
 

Static Public Member Functions

static void UpdateIndirectCallTable (Isolate *isolate, DirectHandle< WasmInstanceObject > instance, uint32_t table_index)
 
static void ClearIndirectCallCacheEntry (Isolate *isolate, DirectHandle< WasmInstanceObject > instance, uint32_t table_index, uint32_t entry_index)
 
static void UpdateMemoryAddress (DirectHandle< WasmInstanceObject > instance)
 
static bool IsNull (Isolate *isolate, const WasmRef obj, const ValueType obj_type)
 
static int memory_start_offset ()
 
static int instruction_table_offset ()
 

Private Types

typedef std::vector< IndirectCallValueIndirectCallTable
 
using WasmToJSCallSig
 

Private Member Functions

ExternalCallResult CallImportedFunction (const uint8_t *&current_code, uint32_t function_index, uint32_t *sp, uint32_t current_stack_size, uint32_t ref_stack_fp_index, uint32_t current_slot_offset)
 
void PurgeIndirectCallCache (uint32_t table_index)
 
ExternalCallResult CallExternalJSFunction (const uint8_t *&current_code, const WasmModule *module, DirectHandle< Object > object_ref, const FunctionSig *sig, uint32_t *sp, uint32_t return_slot_offset)
 
Address EffectiveAddress (uint64_t index) const
 
bool BoundsCheckMemRange (uint64_t index, uint64_t *size, Address *out_address) const
 
void InitGlobalAddressCache ()
 
void InitMemoryAddresses ()
 
void InitIndirectFunctionTables ()
 
bool CheckIndirectCallSignature (uint32_t table_index, uint32_t entry_index, uint32_t sig_index) const
 
void StoreRefArgsIntoStackSlots (uint8_t *sp, uint32_t ref_stack_fp_offset, const FunctionSig *sig)
 
void StoreRefResultsIntoRefStack (uint8_t *sp, uint32_t ref_stack_fp_offset, const FunctionSig *sig)
 
void InitializeRefLocalsRefs (const WasmBytecode *target_function)
 
WasmInterpreterThread::ExceptionHandlingResult HandleException (uint32_t *sp, const uint8_t *&current_code)
 
bool MatchingExceptionTag (DirectHandle< Object > exception_object, uint32_t index) const
 
bool SubtypeCheck (Tagged< Map > rtt, Tagged< Map > formal_rtt, uint32_t type_index) const
 
WasmInterpreterThreadthread () const
 
WasmInterpreterThread::State state () const
 
DirectHandle< FixedArrayreference_stack () const
 
void CallWasmToJSBuiltin (Isolate *isolate, DirectHandle< Object > object_ref, Address packed_args, const FunctionSig *sig)
 
DirectHandle< WasmTrustedInstanceDatawasm_trusted_instance_data () const
 

Private Attributes

Isolateisolate_
 
const WasmModulemodule_
 
IndirectHandle< WasmInstanceObjectinstance_object_
 
WasmInterpreter::CodeMapcodemap_
 
uint32_t start_function_index_
 
FrameState current_frame_
 
std::vector< WasmValuefunction_result_
 
int trap_function_index_
 
pc_t trap_pc_
 
WasmInterpreterThreadcurrent_thread_
 
base::TimeTicks fuzzer_start_time_
 
uint8_t * memory_start_
 
PWasmOp *const * instruction_table_
 
std::vector< uint8_t * > global_addresses_
 
std::vector< IndirectCallTableindirect_call_tables_
 
GeneratedCode< WasmToJSCallSiggeneric_wasm_to_js_interpreter_wrapper_fn_
 

Detailed Description

Definition at line 29 of file wasm-interpreter-runtime.h.

Member Typedef Documentation

◆ HasRefArgsField

◆ HasRefRetsField

◆ IndirectCallTable

◆ PackedArgsSizeField

◆ WasmToJSCallSig

Initial value:
Address(Address js_function, Address packed_args,
Address saved_c_entry_fp, const FunctionSig* sig,
Address c_entry_fp, Address callable)
Signature< ValueType > FunctionSig
kWasmInternalFunctionIndirectPointerTag kProtectedInstanceDataOffset sig

Definition at line 352 of file wasm-interpreter-runtime.h.

Constructor & Destructor Documentation

◆ WasmInterpreterRuntime() [1/2]

v8::internal::wasm::WasmInterpreterRuntime::WasmInterpreterRuntime ( const WasmModule * module,
Isolate * isolate,
IndirectHandle< WasmInstanceObject > instance_object,
WasmInterpreter::CodeMap * codemap )

Definition at line 309 of file wasm-interpreter-runtime.cc.

◆ WasmInterpreterRuntime() [2/2]

v8::internal::wasm::WasmInterpreterRuntime::WasmInterpreterRuntime ( const WasmInterpreterRuntime & )
delete

Member Function Documentation

◆ AllowsAtomicsWait()

bool v8::internal::wasm::WasmInterpreterRuntime::AllowsAtomicsWait ( ) const

Definition at line 837 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ ArrayNewUninitialized()

std::pair< DirectHandle< WasmArray >, const ArrayType * > v8::internal::wasm::WasmInterpreterRuntime::ArrayNewUninitialized ( uint32_t length,
uint32_t array_index ) const

Definition at line 2405 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ AtomicNotify()

int32_t v8::internal::wasm::WasmInterpreterRuntime::AtomicNotify ( uint64_t effective_index,
int32_t val )

Definition at line 842 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ BeginExecution()

void v8::internal::wasm::WasmInterpreterRuntime::BeginExecution ( WasmInterpreterThread * thread,
uint32_t function_index,
Address frame_pointer,
uint8_t * interpreter_fp,
uint32_t ref_stack_offset,
const std::vector< WasmValue > * argument_values = nullptr )

Definition at line 895 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ BoundsCheckMemRange()

bool v8::internal::wasm::WasmInterpreterRuntime::BoundsCheckMemRange ( uint64_t index,
uint64_t * size,
Address * out_address ) const
inlineprivate

Definition at line 35 of file wasm-interpreter-runtime-inl.h.

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

◆ CallExternalJSFunction()

ExternalCallResult v8::internal::wasm::WasmInterpreterRuntime::CallExternalJSFunction ( const uint8_t *& current_code,
const WasmModule * module,
DirectHandle< Object > object_ref,
const FunctionSig * sig,
uint32_t * sp,
uint32_t return_slot_offset )
private

Definition at line 2234 of file wasm-interpreter-runtime.cc.

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

◆ CallImportedFunction()

ExternalCallResult v8::internal::wasm::WasmInterpreterRuntime::CallImportedFunction ( const uint8_t *& current_code,
uint32_t function_index,
uint32_t * sp,
uint32_t current_stack_size,
uint32_t ref_stack_fp_index,
uint32_t current_slot_offset )
private

Definition at line 2040 of file wasm-interpreter-runtime.cc.

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

◆ CallWasmToJSBuiltin()

void v8::internal::wasm::WasmInterpreterRuntime::CallWasmToJSBuiltin ( Isolate * isolate,
DirectHandle< Object > object_ref,
Address packed_args,
const FunctionSig * sig )
private

Definition at line 2145 of file wasm-interpreter-runtime.cc.

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

◆ CheckIndirectCallSignature()

bool v8::internal::wasm::WasmInterpreterRuntime::CheckIndirectCallSignature ( uint32_t table_index,
uint32_t entry_index,
uint32_t sig_index ) const
private

Definition at line 1744 of file wasm-interpreter-runtime.cc.

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

◆ ClearIndirectCallCacheEntry()

void v8::internal::wasm::WasmInterpreterRuntime::ClearIndirectCallCacheEntry ( Isolate * isolate,
DirectHandle< WasmInstanceObject > instance,
uint32_t table_index,
uint32_t entry_index )
static

Definition at line 1716 of file wasm-interpreter-runtime.cc.

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

◆ ContinueExecution()

void v8::internal::wasm::WasmInterpreterRuntime::ContinueExecution ( WasmInterpreterThread * thread,
bool called_from_js )

Definition at line 1056 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ CreateWasmExceptionPackage()

DirectHandle< WasmExceptionPackage > v8::internal::wasm::WasmInterpreterRuntime::CreateWasmExceptionPackage ( uint32_t tag_index) const

Definition at line 669 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ DataDrop()

void v8::internal::wasm::WasmInterpreterRuntime::DataDrop ( uint32_t index)
inline

Definition at line 94 of file wasm-interpreter-runtime-inl.h.

Here is the call graph for this function:

◆ EffectiveAddress()

Address v8::internal::wasm::WasmInterpreterRuntime::EffectiveAddress ( uint64_t index) const
inlineprivate

Definition at line 24 of file wasm-interpreter-runtime-inl.h.

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

◆ ElemDrop()

void v8::internal::wasm::WasmInterpreterRuntime::ElemDrop ( uint32_t index)
inline

Definition at line 98 of file wasm-interpreter-runtime-inl.h.

Here is the call graph for this function:

◆ ExecuteCallRef()

void v8::internal::wasm::WasmInterpreterRuntime::ExecuteCallRef ( const uint8_t *& current_code,
WasmRef func_ref,
uint32_t sig_index,
uint32_t stack_pos,
uint32_t * sp,
uint32_t ref_stack_fp_offset,
uint32_t slot_offset,
uint32_t return_slot_offset,
bool is_tail_call )

Definition at line 1972 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ ExecuteFunction()

void v8::internal::wasm::WasmInterpreterRuntime::ExecuteFunction ( const uint8_t *& code,
uint32_t function_index,
uint32_t current_stack_size,
uint32_t ref_stack_fp_offset,
uint32_t slot_offset,
uint32_t return_slot_offset )

Definition at line 1522 of file wasm-interpreter-runtime.cc.

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

◆ ExecuteImportedFunction()

void v8::internal::wasm::WasmInterpreterRuntime::ExecuteImportedFunction ( const uint8_t *& code,
uint32_t func_index,
uint32_t current_stack_size,
uint32_t ref_stack_fp_offset,
uint32_t slot_offset,
uint32_t return_slot_offset,
bool is_tail_call = false )

Definition at line 1360 of file wasm-interpreter-runtime.cc.

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

◆ ExecuteIndirectCall()

void v8::internal::wasm::WasmInterpreterRuntime::ExecuteIndirectCall ( const uint8_t *& current_code,
uint32_t table_index,
uint32_t sig_index,
uint32_t entry_index,
uint32_t stack_pos,
uint32_t * sp,
uint32_t ref_stack_fp_offset,
uint32_t slot_offset,
uint32_t return_slot_offset,
bool is_tail_call )

Definition at line 1786 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ ExtractWasmRef()

WasmRef v8::internal::wasm::WasmInterpreterRuntime::ExtractWasmRef ( uint32_t ref_stack_index)

Definition at line 1214 of file wasm-interpreter-runtime.cc.

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

◆ GetArrayType()

const ArrayType * v8::internal::wasm::WasmInterpreterRuntime::GetArrayType ( uint32_t array_index) const
inline

Definition at line 146 of file wasm-interpreter-runtime-inl.h.

Here is the caller graph for this function:

◆ GetFunctionBytecode()

WasmBytecode * v8::internal::wasm::WasmInterpreterRuntime::GetFunctionBytecode ( uint32_t func_index)
inline

Definition at line 103 of file wasm-interpreter-runtime-inl.h.

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

◆ GetFunctionIndex()

int v8::internal::wasm::WasmInterpreterRuntime::GetFunctionIndex ( Address frame_pointer,
int index ) const

Definition at line 2783 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ GetFunctionRef()

DirectHandle< Object > v8::internal::wasm::WasmInterpreterRuntime::GetFunctionRef ( uint32_t index) const
inline

Definition at line 139 of file wasm-interpreter-runtime-inl.h.

Here is the call graph for this function:

◆ GetGlobalAddress()

uint8_t * v8::internal::wasm::WasmInterpreterRuntime::GetGlobalAddress ( uint32_t index)
inline

Definition at line 49 of file wasm-interpreter-runtime-inl.h.

◆ GetGlobalRef()

DirectHandle< Object > v8::internal::wasm::WasmInterpreterRuntime::GetGlobalRef ( uint32_t index) const
inline

Definition at line 54 of file wasm-interpreter-runtime-inl.h.

Here is the call graph for this function:

◆ GetInterpretedStack()

std::vector< WasmInterpreterStackEntry > v8::internal::wasm::WasmInterpreterRuntime::GetInterpretedStack ( Address frame_pointer)

Definition at line 2757 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ GetIsolate()

Isolate * v8::internal::wasm::WasmInterpreterRuntime::GetIsolate ( ) const
inline

Definition at line 44 of file wasm-interpreter-runtime.h.

Here is the caller graph for this function:

◆ GetMemorySize()

size_t v8::internal::wasm::WasmInterpreterRuntime::GetMemorySize ( ) const
inline

Definition at line 90 of file wasm-interpreter-runtime-inl.h.

Here is the call graph for this function:

◆ GetMemoryStart()

uint8_t * v8::internal::wasm::WasmInterpreterRuntime::GetMemoryStart ( ) const
inline

Definition at line 53 of file wasm-interpreter-runtime.h.

◆ GetNullValue()

Tagged< Object > v8::internal::wasm::WasmInterpreterRuntime::GetNullValue ( const ValueType obj_type) const
inline

Definition at line 114 of file wasm-interpreter-runtime-inl.h.

Here is the call graph for this function:

◆ GetReturnValue()

const WasmValue & v8::internal::wasm::WasmInterpreterRuntime::GetReturnValue ( size_t index) const
inline

Definition at line 146 of file wasm-interpreter-runtime.h.

◆ GetWasmArrayRefElement()

DirectHandle< Object > v8::internal::wasm::WasmInterpreterRuntime::GetWasmArrayRefElement ( Tagged< WasmArray > array,
uint32_t index ) const
inline

Definition at line 151 of file wasm-interpreter-runtime-inl.h.

Here is the call graph for this function:

◆ GetWasmTag()

const WasmTag & v8::internal::wasm::WasmInterpreterRuntime::GetWasmTag ( uint32_t tag_index) const
inline

Definition at line 99 of file wasm-interpreter-runtime.h.

Here is the caller graph for this function:

◆ HandleException()

WasmInterpreterThread::ExceptionHandlingResult v8::internal::wasm::WasmInterpreterRuntime::HandleException ( uint32_t * sp,
const uint8_t *& current_code )
private

Definition at line 716 of file wasm-interpreter-runtime.cc.

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

◆ I32AtomicWait()

int32_t v8::internal::wasm::WasmInterpreterRuntime::I32AtomicWait ( uint64_t effective_index,
int32_t val,
int64_t timeout )

Definition at line 859 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ I64AtomicWait()

int32_t v8::internal::wasm::WasmInterpreterRuntime::I64AtomicWait ( uint64_t effective_index,
int64_t val,
int64_t timeout )

Definition at line 877 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ InitGlobalAddressCache()

void v8::internal::wasm::WasmInterpreterRuntime::InitGlobalAddressCache ( )
private

Definition at line 348 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ InitializeRefLocalsRefs()

void v8::internal::wasm::WasmInterpreterRuntime::InitializeRefLocalsRefs ( const WasmBytecode * target_function)
private

Definition at line 1416 of file wasm-interpreter-runtime.cc.

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

◆ InitIndirectFunctionTables()

void v8::internal::wasm::WasmInterpreterRuntime::InitIndirectFunctionTables ( )
private

Definition at line 383 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ InitMemoryAddresses()

void v8::internal::wasm::WasmInterpreterRuntime::InitMemoryAddresses ( )
inlineprivate

Definition at line 78 of file wasm-interpreter-runtime-inl.h.

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

◆ instruction_table_offset()

int v8::internal::wasm::WasmInterpreterRuntime::instruction_table_offset ( )
static

Definition at line 2136 of file wasm-interpreter-runtime.cc.

◆ IsMemory64()

bool v8::internal::wasm::WasmInterpreterRuntime::IsMemory64 ( ) const
inline

Definition at line 86 of file wasm-interpreter-runtime-inl.h.

◆ IsNull()

bool v8::internal::wasm::WasmInterpreterRuntime::IsNull ( Isolate * isolate,
const WasmRef obj,
const ValueType obj_type )
inlinestatic

Definition at line 124 of file wasm-interpreter-runtime-inl.h.

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

◆ IsNullTypecheck()

bool v8::internal::wasm::WasmInterpreterRuntime::IsNullTypecheck ( const WasmRef obj,
const ValueType obj_type ) const
inline

Definition at line 108 of file wasm-interpreter-runtime-inl.h.

Here is the call graph for this function:

◆ IsRefNull()

bool v8::internal::wasm::WasmInterpreterRuntime::IsRefNull ( DirectHandle< Object > ref) const
inline

Definition at line 133 of file wasm-interpreter-runtime-inl.h.

Here is the call graph for this function:

◆ JSToWasmObject()

WasmRef v8::internal::wasm::WasmInterpreterRuntime::JSToWasmObject ( WasmRef extern_ref,
ValueType value_type ) const

Definition at line 2537 of file wasm-interpreter-runtime.cc.

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

◆ MatchingExceptionTag()

bool v8::internal::wasm::WasmInterpreterRuntime::MatchingExceptionTag ( DirectHandle< Object > exception_object,
uint32_t index ) const
private

◆ memory_start_offset()

int v8::internal::wasm::WasmInterpreterRuntime::memory_start_offset ( )
static

Definition at line 2131 of file wasm-interpreter-runtime.cc.

◆ MemoryCopy()

bool v8::internal::wasm::WasmInterpreterRuntime::MemoryCopy ( const uint8_t *& current_code,
uint64_t dst,
uint64_t src,
uint64_t size )

Definition at line 546 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ MemoryFill()

bool v8::internal::wasm::WasmInterpreterRuntime::MemoryFill ( const uint8_t *& current_code,
uint64_t dst,
uint32_t value,
uint64_t size )

Definition at line 562 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ MemoryGrow()

int32_t v8::internal::wasm::WasmInterpreterRuntime::MemoryGrow ( uint32_t delta_pages)

Definition at line 372 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ MemoryInit()

bool v8::internal::wasm::WasmInterpreterRuntime::MemoryInit ( const uint8_t *& current_code,
uint32_t data_segment_index,
uint64_t dst,
uint64_t src,
uint64_t size )

Definition at line 524 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ MemorySize()

uint64_t v8::internal::wasm::WasmInterpreterRuntime::MemorySize ( ) const
inline

Definition at line 82 of file wasm-interpreter-runtime-inl.h.

Here is the call graph for this function:

◆ operator=()

WasmInterpreterRuntime & v8::internal::wasm::WasmInterpreterRuntime::operator= ( const WasmInterpreterRuntime & )
delete

◆ PrepareTailCall()

void v8::internal::wasm::WasmInterpreterRuntime::PrepareTailCall ( const uint8_t *& code,
uint32_t func_index,
uint32_t current_stack_size,
uint32_t return_slot_offset )

Definition at line 1438 of file wasm-interpreter-runtime.cc.

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

◆ PrintStack()

void v8::internal::wasm::WasmInterpreterRuntime::PrintStack ( uint32_t * sp,
RegMode reg_mode,
int64_t r0,
double fp0 )

Definition at line 2800 of file wasm-interpreter-runtime.cc.

◆ PurgeIndirectCallCache()

void v8::internal::wasm::WasmInterpreterRuntime::PurgeIndirectCallCache ( uint32_t table_index)
private

Definition at line 1700 of file wasm-interpreter-runtime.cc.

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

◆ reference_stack()

DirectHandle< FixedArray > v8::internal::wasm::WasmInterpreterRuntime::reference_stack ( ) const
inlineprivate

Definition at line 280 of file wasm-interpreter-runtime.h.

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

◆ RefIsArray()

bool v8::internal::wasm::WasmInterpreterRuntime::RefIsArray ( const WasmRef obj,
const ValueType obj_type,
bool null_succeeds ) const

Definition at line 2710 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ RefIsEq()

bool v8::internal::wasm::WasmInterpreterRuntime::RefIsEq ( const WasmRef obj,
const ValueType obj_type,
bool null_succeeds ) const

Definition at line 2675 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ RefIsI31()

bool v8::internal::wasm::WasmInterpreterRuntime::RefIsI31 ( const WasmRef obj,
const ValueType obj_type,
bool null_succeeds ) const

Definition at line 2682 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ RefIsString()

bool v8::internal::wasm::WasmInterpreterRuntime::RefIsString ( const WasmRef obj,
const ValueType obj_type,
bool null_succeeds ) const

Definition at line 2724 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ RefIsStruct()

bool v8::internal::wasm::WasmInterpreterRuntime::RefIsStruct ( const WasmRef obj,
const ValueType obj_type,
bool null_succeeds ) const

Definition at line 2696 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ ResetCurrentHandleScope()

void v8::internal::wasm::WasmInterpreterRuntime::ResetCurrentHandleScope ( )

Definition at line 2752 of file wasm-interpreter-runtime.cc.

◆ RethrowException()

void v8::internal::wasm::WasmInterpreterRuntime::RethrowException ( const uint8_t *& code,
uint32_t * sp,
uint32_t catch_block_index )

Definition at line 704 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ RttCanon()

DirectHandle< Map > v8::internal::wasm::WasmInterpreterRuntime::RttCanon ( uint32_t type_index) const

Definition at line 2388 of file wasm-interpreter-runtime.cc.

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

◆ SetGlobalRef()

void v8::internal::wasm::WasmInterpreterRuntime::SetGlobalRef ( uint32_t index,
DirectHandle< Object > ref ) const
inline

Definition at line 66 of file wasm-interpreter-runtime-inl.h.

Here is the call graph for this function:

◆ SetTrap() [1/2]

void v8::internal::wasm::WasmInterpreterRuntime::SetTrap ( TrapReason trap_reason,
const uint8_t *& current_code )

Definition at line 2743 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ SetTrap() [2/2]

void v8::internal::wasm::WasmInterpreterRuntime::SetTrap ( TrapReason trap_reason,
pc_t trap_pc )

Definition at line 2730 of file wasm-interpreter-runtime.cc.

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

◆ SetTrapFunctionIndex()

void v8::internal::wasm::WasmInterpreterRuntime::SetTrapFunctionIndex ( int32_t func_index)

Definition at line 2795 of file wasm-interpreter-runtime.cc.

◆ state()

WasmInterpreterThread::State v8::internal::wasm::WasmInterpreterRuntime::state ( ) const
inlineprivate

Definition at line 278 of file wasm-interpreter-runtime.h.

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

◆ StoreRefArgsIntoStackSlots()

void v8::internal::wasm::WasmInterpreterRuntime::StoreRefArgsIntoStackSlots ( uint8_t * sp,
uint32_t ref_stack_fp_offset,
const FunctionSig * sig )
private

Definition at line 1291 of file wasm-interpreter-runtime.cc.

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

◆ StoreRefResultsIntoRefStack()

void v8::internal::wasm::WasmInterpreterRuntime::StoreRefResultsIntoRefStack ( uint8_t * sp,
uint32_t ref_stack_fp_offset,
const FunctionSig * sig )
private

Definition at line 1330 of file wasm-interpreter-runtime.cc.

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

◆ StoreWasmRef()

void v8::internal::wasm::WasmInterpreterRuntime::StoreWasmRef ( uint32_t ref_stack_index,
const WasmRef & ref )

Definition at line 1204 of file wasm-interpreter-runtime.cc.

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

◆ StructNewUninitialized()

std::pair< DirectHandle< WasmStruct >, const StructType * > v8::internal::wasm::WasmInterpreterRuntime::StructNewUninitialized ( uint32_t index) const

Definition at line 2397 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ SubtypeCheck() [1/2]

bool v8::internal::wasm::WasmInterpreterRuntime::SubtypeCheck ( const WasmRef obj,
const ValueType obj_type,
const DirectHandle< Map > rtt,
const ModuleTypeIndex target_type,
bool null_succeeds ) const

Definition at line 2601 of file wasm-interpreter-runtime.cc.

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

◆ SubtypeCheck() [2/2]

bool v8::internal::wasm::WasmInterpreterRuntime::SubtypeCheck ( Tagged< Map > rtt,
Tagged< Map > formal_rtt,
uint32_t type_index ) const
private

Definition at line 2577 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ TableCopy()

void v8::internal::wasm::WasmInterpreterRuntime::TableCopy ( const uint8_t *& current_code,
uint32_t dst_table_index,
uint32_t src_table_index,
uint32_t dst,
uint32_t src,
uint32_t size )

Definition at line 458 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ TableFill()

void v8::internal::wasm::WasmInterpreterRuntime::TableFill ( const uint8_t *& current_code,
uint32_t table_index,
uint32_t count,
DirectHandle< Object > value,
uint32_t start )

Definition at line 500 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ TableGet()

bool v8::internal::wasm::WasmInterpreterRuntime::TableGet ( const uint8_t *& current_code,
uint32_t table_index,
uint32_t entry_index,
DirectHandle< Object > * result )

Definition at line 391 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ TableGrow()

uint32_t v8::internal::wasm::WasmInterpreterRuntime::TableGrow ( uint32_t table_index,
uint32_t delta,
DirectHandle< Object > value )

Definition at line 480 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ TableInit()

void v8::internal::wasm::WasmInterpreterRuntime::TableInit ( const uint8_t *& current_code,
uint32_t table_index,
uint32_t element_segment_index,
uint32_t dst,
uint32_t src,
uint32_t size )

Definition at line 429 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ TableSet()

void v8::internal::wasm::WasmInterpreterRuntime::TableSet ( const uint8_t *& current_code,
uint32_t table_index,
uint32_t entry_index,
DirectHandle< Object > ref )

Definition at line 411 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ TableSize()

uint32_t v8::internal::wasm::WasmInterpreterRuntime::TableSize ( uint32_t table_index)

Definition at line 491 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ thread()

WasmInterpreterThread * v8::internal::wasm::WasmInterpreterRuntime::thread ( ) const
inlineprivate

Definition at line 274 of file wasm-interpreter-runtime.h.

Here is the caller graph for this function:

◆ ThrowException()

void v8::internal::wasm::WasmInterpreterRuntime::ThrowException ( const uint8_t *& code,
uint32_t * sp,
Tagged< Object > exception_object )

Definition at line 683 of file wasm-interpreter-runtime.cc.

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

◆ TotalBytecodeSize()

size_t v8::internal::wasm::WasmInterpreterRuntime::TotalBytecodeSize ( ) const
inline

Definition at line 210 of file wasm-interpreter-runtime.h.

Here is the call graph for this function:

◆ UnpackException()

void v8::internal::wasm::WasmInterpreterRuntime::UnpackException ( uint32_t * sp,
const WasmTag & tag,
DirectHandle< Object > exception_object,
uint32_t first_param_slot_index,
uint32_t first_param_ref_stack_index )

Definition at line 577 of file wasm-interpreter-runtime.cc.

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

◆ UnwindCurrentStackFrame()

void v8::internal::wasm::WasmInterpreterRuntime::UnwindCurrentStackFrame ( uint32_t * sp,
uint32_t slot_offset,
uint32_t rets_size,
uint32_t args_size,
uint32_t rets_refs,
uint32_t args_refs,
uint32_t ref_stack_fp_offset )

Definition at line 1225 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ UpdateIndirectCallTable()

void v8::internal::wasm::WasmInterpreterRuntime::UpdateIndirectCallTable ( Isolate * isolate,
DirectHandle< WasmInstanceObject > instance,
uint32_t table_index )
static

Definition at line 1732 of file wasm-interpreter-runtime.cc.

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

◆ UpdateMemoryAddress()

void v8::internal::wasm::WasmInterpreterRuntime::UpdateMemoryAddress ( DirectHandle< WasmInstanceObject > instance)
static

Definition at line 360 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ wasm_trusted_instance_data()

DirectHandle< WasmTrustedInstanceData > v8::internal::wasm::WasmInterpreterRuntime::wasm_trusted_instance_data ( ) const
inlineprivate

Definition at line 198 of file wasm-interpreter-runtime-inl.h.

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

◆ WasmArrayCopy()

bool v8::internal::wasm::WasmInterpreterRuntime::WasmArrayCopy ( WasmRef dest_wasm_array,
uint32_t dest_index,
WasmRef src_wasm_array,
uint32_t src_index,
uint32_t length )

Definition at line 2483 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ WasmArrayInitSegment()

bool v8::internal::wasm::WasmInterpreterRuntime::WasmArrayInitSegment ( uint32_t segment_index,
WasmRef wasm_array,
uint32_t array_offset,
uint32_t segment_offset,
uint32_t length )

Definition at line 2452 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ WasmArrayNewSegment()

WasmRef v8::internal::wasm::WasmInterpreterRuntime::WasmArrayNewSegment ( uint32_t array_index,
uint32_t segment_index,
uint32_t offset,
uint32_t length )

Definition at line 2420 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ WasmJSToWasmObject()

WasmRef v8::internal::wasm::WasmInterpreterRuntime::WasmJSToWasmObject ( WasmRef extern_ref,
ValueType value_type,
uint32_t canonical_index ) const

Definition at line 2512 of file wasm-interpreter-runtime.cc.

Here is the call graph for this function:

◆ WasmStackCheck()

bool v8::internal::wasm::WasmInterpreterRuntime::WasmStackCheck ( const uint8_t * current_bytecode,
const uint8_t *& code )
inline

Definition at line 156 of file wasm-interpreter-runtime-inl.h.

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

◆ WasmToJSObject()

WasmRef v8::internal::wasm::WasmInterpreterRuntime::WasmToJSObject ( WasmRef ref) const

Definition at line 2559 of file wasm-interpreter-runtime.cc.

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

Member Data Documentation

◆ codemap_

WasmInterpreter::CodeMap* v8::internal::wasm::WasmInterpreterRuntime::codemap_
private

Definition at line 293 of file wasm-interpreter-runtime.h.

◆ current_frame_

FrameState v8::internal::wasm::WasmInterpreterRuntime::current_frame_
private

Definition at line 296 of file wasm-interpreter-runtime.h.

◆ current_thread_

WasmInterpreterThread* v8::internal::wasm::WasmInterpreterRuntime::current_thread_
private

Definition at line 302 of file wasm-interpreter-runtime.h.

◆ function_result_

std::vector<WasmValue> v8::internal::wasm::WasmInterpreterRuntime::function_result_
private

Definition at line 297 of file wasm-interpreter-runtime.h.

◆ fuzzer_start_time_

base::TimeTicks v8::internal::wasm::WasmInterpreterRuntime::fuzzer_start_time_
private

Definition at line 304 of file wasm-interpreter-runtime.h.

◆ generic_wasm_to_js_interpreter_wrapper_fn_

GeneratedCode<WasmToJSCallSig> v8::internal::wasm::WasmInterpreterRuntime::generic_wasm_to_js_interpreter_wrapper_fn_
private

Definition at line 357 of file wasm-interpreter-runtime.h.

◆ global_addresses_

std::vector<uint8_t*> v8::internal::wasm::WasmInterpreterRuntime::global_addresses_
private

Definition at line 317 of file wasm-interpreter-runtime.h.

◆ indirect_call_tables_

std::vector<IndirectCallTable> v8::internal::wasm::WasmInterpreterRuntime::indirect_call_tables_
private

Definition at line 350 of file wasm-interpreter-runtime.h.

◆ instance_object_

IndirectHandle<WasmInstanceObject> v8::internal::wasm::WasmInterpreterRuntime::instance_object_
private

Definition at line 292 of file wasm-interpreter-runtime.h.

◆ instruction_table_

PWasmOp* const* v8::internal::wasm::WasmInterpreterRuntime::instruction_table_
private

Definition at line 312 of file wasm-interpreter-runtime.h.

◆ isolate_

Isolate* v8::internal::wasm::WasmInterpreterRuntime::isolate_
private

Definition at line 290 of file wasm-interpreter-runtime.h.

◆ memory_start_

uint8_t* v8::internal::wasm::WasmInterpreterRuntime::memory_start_
private

Definition at line 306 of file wasm-interpreter-runtime.h.

◆ module_

const WasmModule* v8::internal::wasm::WasmInterpreterRuntime::module_
private

Definition at line 291 of file wasm-interpreter-runtime.h.

◆ start_function_index_

uint32_t v8::internal::wasm::WasmInterpreterRuntime::start_function_index_
private

Definition at line 295 of file wasm-interpreter-runtime.h.

◆ trap_function_index_

int v8::internal::wasm::WasmInterpreterRuntime::trap_function_index_
private

Definition at line 299 of file wasm-interpreter-runtime.h.

◆ trap_pc_

pc_t v8::internal::wasm::WasmInterpreterRuntime::trap_pc_
private

Definition at line 300 of file wasm-interpreter-runtime.h.


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