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

#include <parallel-move.h>

Collaboration diagram for v8::internal::wasm::ParallelMove:

Classes

struct  RegisterLoad
 
struct  RegisterMove
 

Public Member Functions

 ParallelMove (LiftoffAssembler *wasm_asm)
 
 ParallelMove (const ParallelMove &)=delete
 
ParallelMoveoperator= (const ParallelMove &)=delete
 
V8_INLINE ~ParallelMove ()
 
V8_INLINE void Execute ()
 
V8_INLINE void Transfer (const VarState &dst, const VarState &src)
 
void TransferToStack (int dst_offset, const VarState &src)
 
V8_INLINE void LoadIntoRegister (LiftoffRegister dst, const VarState &src)
 
void LoadI64HalfIntoRegister (LiftoffRegister dst, const VarState &src, RegPairHalf half)
 
void MoveRegister (LiftoffRegister dst, LiftoffRegister src, ValueKind kind)
 
void LoadConstant (LiftoffRegister dst, ValueKind kind, int32_t constant)
 
void LoadStackSlot (LiftoffRegister dst, int stack_offset, ValueKind kind)
 
void LoadI64HalfStackSlot (LiftoffRegister dst, int offset, RegPairHalf half)
 

Private Types

using VarState = LiftoffAssembler::VarState
 

Private Member Functions

RegisterMoveregister_move (LiftoffRegister reg)
 
RegisterLoadregister_load (LiftoffRegister reg)
 
int * src_reg_use_count (LiftoffRegister reg)
 
void ExecuteMove (LiftoffRegister dst)
 
void ClearExecutedMove (LiftoffRegister dst)
 
V8_NOINLINE V8_PRESERVE_MOST void ExecuteMoves ()
 
V8_NOINLINE V8_PRESERVE_MOST void ExecuteLoads ()
 

Private Attributes

char register_moves_ [kAfterMaxLiftoffRegCode *sizeof(RegisterMove)]
 
char register_loads_ [kAfterMaxLiftoffRegCode *sizeof(RegisterLoad)]
 
int src_reg_use_count_ [kAfterMaxLiftoffRegCode] = {0}
 
LiftoffRegList move_dst_regs_
 
LiftoffRegList load_dst_regs_
 
LiftoffAssembler *const asm_
 
int last_spill_offset_
 

Detailed Description

Definition at line 24 of file parallel-move.h.

Member Typedef Documentation

◆ VarState

Constructor & Destructor Documentation

◆ ParallelMove() [1/2]

v8::internal::wasm::ParallelMove::ParallelMove ( LiftoffAssembler * wasm_asm)
inlineexplicit

Definition at line 15 of file parallel-move-inl.h.

◆ ParallelMove() [2/2]

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

◆ ~ParallelMove()

V8_INLINE v8::internal::wasm::ParallelMove::~ParallelMove ( )
inline

Definition at line 74 of file parallel-move.h.

Here is the call graph for this function:

Member Function Documentation

◆ ClearExecutedMove()

void v8::internal::wasm::ParallelMove::ClearExecutedMove ( LiftoffRegister dst)
inlineprivate

Definition at line 273 of file parallel-move.h.

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

◆ Execute()

V8_INLINE void v8::internal::wasm::ParallelMove::Execute ( )
inline

Definition at line 76 of file parallel-move.h.

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

◆ ExecuteLoads()

void v8::internal::wasm::ParallelMove::ExecuteLoads ( )
private

Definition at line 72 of file parallel-move.cc.

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

◆ ExecuteMove()

void v8::internal::wasm::ParallelMove::ExecuteMove ( LiftoffRegister dst)
inlineprivate

Definition at line 266 of file parallel-move.h.

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

◆ ExecuteMoves()

void v8::internal::wasm::ParallelMove::ExecuteMoves ( )
private

Definition at line 46 of file parallel-move.cc.

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

◆ LoadConstant()

void v8::internal::wasm::ParallelMove::LoadConstant ( LiftoffRegister dst,
ValueKind kind,
int32_t constant )
inline

Definition at line 185 of file parallel-move.h.

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

◆ LoadI64HalfIntoRegister()

void v8::internal::wasm::ParallelMove::LoadI64HalfIntoRegister ( LiftoffRegister dst,
const VarState & src,
RegPairHalf half )
inline

Definition at line 117 of file parallel-move.h.

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

◆ LoadI64HalfStackSlot()

void v8::internal::wasm::ParallelMove::LoadI64HalfStackSlot ( LiftoffRegister dst,
int offset,
RegPairHalf half )
inline

Definition at line 230 of file parallel-move.h.

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

◆ LoadIntoRegister()

V8_INLINE void v8::internal::wasm::ParallelMove::LoadIntoRegister ( LiftoffRegister dst,
const VarState & src )
inline

Definition at line 105 of file parallel-move.h.

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

◆ LoadStackSlot()

void v8::internal::wasm::ParallelMove::LoadStackSlot ( LiftoffRegister dst,
int stack_offset,
ValueKind kind )
inline

Definition at line 198 of file parallel-move.h.

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

◆ MoveRegister()

void v8::internal::wasm::ParallelMove::MoveRegister ( LiftoffRegister dst,
LiftoffRegister src,
ValueKind kind )
inline

Definition at line 142 of file parallel-move.h.

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

◆ operator=()

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

◆ register_load()

RegisterLoad * v8::internal::wasm::ParallelMove::register_load ( LiftoffRegister reg)
inlineprivate

Definition at line 258 of file parallel-move.h.

Here is the caller graph for this function:

◆ register_move()

RegisterMove * v8::internal::wasm::ParallelMove::register_move ( LiftoffRegister reg)
inlineprivate

Definition at line 254 of file parallel-move.h.

Here is the caller graph for this function:

◆ src_reg_use_count()

int * v8::internal::wasm::ParallelMove::src_reg_use_count ( LiftoffRegister reg)
inlineprivate

Definition at line 262 of file parallel-move.h.

Here is the caller graph for this function:

◆ Transfer()

V8_INLINE void v8::internal::wasm::ParallelMove::Transfer ( const VarState & dst,
const VarState & src )
inline

Definition at line 89 of file parallel-move.h.

Here is the call graph for this function:

◆ TransferToStack()

void v8::internal::wasm::ParallelMove::TransferToStack ( int dst_offset,
const VarState & src )

Definition at line 11 of file parallel-move.cc.

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

Member Data Documentation

◆ asm_

LiftoffAssembler* const v8::internal::wasm::ParallelMove::asm_
private

Definition at line 249 of file parallel-move.h.

◆ last_spill_offset_

int v8::internal::wasm::ParallelMove::last_spill_offset_
private

Definition at line 252 of file parallel-move.h.

◆ load_dst_regs_

LiftoffRegList v8::internal::wasm::ParallelMove::load_dst_regs_
private

Definition at line 248 of file parallel-move.h.

◆ move_dst_regs_

LiftoffRegList v8::internal::wasm::ParallelMove::move_dst_regs_
private

Definition at line 247 of file parallel-move.h.

◆ register_loads_

char v8::internal::wasm::ParallelMove::register_loads_[kAfterMaxLiftoffRegCode *sizeof(RegisterLoad)]
private

Definition at line 244 of file parallel-move.h.

◆ register_moves_

char v8::internal::wasm::ParallelMove::register_moves_[kAfterMaxLiftoffRegCode *sizeof(RegisterMove)]
private

Definition at line 242 of file parallel-move.h.

◆ src_reg_use_count_

int v8::internal::wasm::ParallelMove::src_reg_use_count_[kAfterMaxLiftoffRegCode] = {0}
private

Definition at line 246 of file parallel-move.h.


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