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

#include <liftoff-assembler.h>

Collaboration diagram for v8::internal::wasm::LiftoffAssembler::CacheState:

Public Types

enum class  SpillLocation { kTopOfStack , kStackSlots }
 

Public Member Functions

 CacheState (Zone *zone)
 
 CacheState (CacheState &&) V8_NOEXCEPT=default
 
CacheStateoperator= (CacheState &&) V8_NOEXCEPT=default
 
 CacheState (const CacheState &)=delete
 
void GetTaggedSlotsForOOLCode (ZoneVector< int > *slots, LiftoffRegList *spills, SpillLocation spill_location)
 
void DefineSafepoint (SafepointTableBuilder::Safepoint &safepoint)
 
void DefineSafepointWithCalleeSavedRegisters (SafepointTableBuilder::Safepoint &safepoint)
 
bool has_unused_register (RegClass rc, LiftoffRegList pinned={}) const
 
bool has_unused_register (LiftoffRegList candidates) const
 
LiftoffRegister unused_register (RegClass rc, LiftoffRegList pinned={}) const
 
LiftoffRegister unused_register (LiftoffRegList candidates, LiftoffRegList pinned={}) const
 
bool has_volatile_register (LiftoffRegList candidates)
 
LiftoffRegister take_volatile_register (LiftoffRegList candidates)
 
void SetCacheRegister (Register *cache, Register reg)
 
void SetInstanceCacheRegister (Register reg)
 
void SetMemStartCacheRegister (Register reg, int memory_index)
 
Register TrySetCachedInstanceRegister (LiftoffRegList pinned)
 
V8_INLINE void ClearCacheRegister (Register *cache)
 
void ClearCachedInstanceRegister ()
 
void ClearCachedMemStartRegister ()
 
void ClearAllCacheRegisters ()
 
void inc_used (LiftoffRegister reg)
 
void dec_used (LiftoffRegister reg)
 
bool is_used (LiftoffRegister reg) const
 
uint32_t get_use_count (LiftoffRegister reg) const
 
void clear_used (LiftoffRegister reg)
 
bool is_free (LiftoffRegister reg) const
 
void reset_used_registers ()
 
LiftoffRegister GetNextSpillReg (LiftoffRegList candidates)
 
void Steal (CacheState &source)
 
void Split (const CacheState &source)
 
uint32_t stack_height () const
 

Public Attributes

SmallZoneVector< VarState, 16 > stack_state
 
LiftoffRegList used_registers
 
uint32_t register_use_count [kAfterMaxLiftoffRegCode] = {0}
 
LiftoffRegList last_spilled_regs
 
Register cached_instance_data = no_reg
 
int cached_mem_index = kNoCachedMemIndex
 
Register cached_mem_start = no_reg
 

Static Public Attributes

static constexpr int kNoCachedMemIndex = -1
 

Private Member Functions

CacheStateoperator= (const CacheState &) V8_NOEXCEPT=default
 

Detailed Description

Definition at line 112 of file liftoff-assembler.h.

Member Enumeration Documentation

◆ SpillLocation

Enumerator
kTopOfStack 
kStackSlots 

Definition at line 121 of file liftoff-assembler.h.

Constructor & Destructor Documentation

◆ CacheState() [1/3]

v8::internal::wasm::LiftoffAssembler::CacheState::CacheState ( Zone * zone)
inlineexplicit

Definition at line 113 of file liftoff-assembler.h.

◆ CacheState() [2/3]

v8::internal::wasm::LiftoffAssembler::CacheState::CacheState ( CacheState && )
default

◆ CacheState() [3/3]

v8::internal::wasm::LiftoffAssembler::CacheState::CacheState ( const CacheState & )
delete

Member Function Documentation

◆ clear_used()

void v8::internal::wasm::LiftoffAssembler::CacheState::clear_used ( LiftoffRegister reg)
inline

Definition at line 340 of file liftoff-assembler.h.

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

◆ ClearAllCacheRegisters()

void v8::internal::wasm::LiftoffAssembler::CacheState::ClearAllCacheRegisters ( )
inline

Definition at line 288 of file liftoff-assembler.h.

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

◆ ClearCachedInstanceRegister()

void v8::internal::wasm::LiftoffAssembler::CacheState::ClearCachedInstanceRegister ( )
inline

Definition at line 276 of file liftoff-assembler.h.

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

◆ ClearCachedMemStartRegister()

void v8::internal::wasm::LiftoffAssembler::CacheState::ClearCachedMemStartRegister ( )
inline

Definition at line 280 of file liftoff-assembler.h.

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

◆ ClearCacheRegister()

V8_INLINE void v8::internal::wasm::LiftoffAssembler::CacheState::ClearCacheRegister ( Register * cache)
inline

Definition at line 265 of file liftoff-assembler.h.

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

◆ dec_used()

void v8::internal::wasm::LiftoffAssembler::CacheState::dec_used ( LiftoffRegister reg)
inline

Definition at line 306 of file liftoff-assembler.h.

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

◆ DefineSafepoint()

void v8::internal::wasm::LiftoffAssembler::CacheState::DefineSafepoint ( SafepointTableBuilder::Safepoint & safepoint)

Definition at line 307 of file liftoff-assembler.cc.

Here is the call graph for this function:

◆ DefineSafepointWithCalleeSavedRegisters()

void v8::internal::wasm::LiftoffAssembler::CacheState::DefineSafepointWithCalleeSavedRegisters ( SafepointTableBuilder::Safepoint & safepoint)

Definition at line 322 of file liftoff-assembler.cc.

Here is the call graph for this function:

◆ get_use_count()

uint32_t v8::internal::wasm::LiftoffAssembler::CacheState::get_use_count ( LiftoffRegister reg) const
inline

Definition at line 330 of file liftoff-assembler.h.

Here is the caller graph for this function:

◆ GetNextSpillReg()

LiftoffRegister v8::internal::wasm::LiftoffAssembler::CacheState::GetNextSpillReg ( LiftoffRegList candidates)
inline

Definition at line 359 of file liftoff-assembler.h.

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

◆ GetTaggedSlotsForOOLCode()

void v8::internal::wasm::LiftoffAssembler::CacheState::GetTaggedSlotsForOOLCode ( ZoneVector< int > * slots,
LiftoffRegList * spills,
SpillLocation spill_location )

Definition at line 288 of file liftoff-assembler.cc.

Here is the call graph for this function:

◆ has_unused_register() [1/2]

bool v8::internal::wasm::LiftoffAssembler::CacheState::has_unused_register ( LiftoffRegList candidates) const
inline

Definition at line 169 of file liftoff-assembler.h.

Here is the call graph for this function:

◆ has_unused_register() [2/2]

bool v8::internal::wasm::LiftoffAssembler::CacheState::has_unused_register ( RegClass rc,
LiftoffRegList pinned = {} ) const
inline

Definition at line 155 of file liftoff-assembler.h.

Here is the caller graph for this function:

◆ has_volatile_register()

bool v8::internal::wasm::LiftoffAssembler::CacheState::has_volatile_register ( LiftoffRegList candidates)
inline

Definition at line 202 of file liftoff-assembler.h.

Here is the caller graph for this function:

◆ inc_used()

void v8::internal::wasm::LiftoffAssembler::CacheState::inc_used ( LiftoffRegister reg)
inline

Definition at line 293 of file liftoff-assembler.h.

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

◆ is_free()

bool v8::internal::wasm::LiftoffAssembler::CacheState::is_free ( LiftoffRegister reg) const
inline

Definition at line 351 of file liftoff-assembler.h.

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

◆ is_used()

bool v8::internal::wasm::LiftoffAssembler::CacheState::is_used ( LiftoffRegister reg) const
inline

Definition at line 323 of file liftoff-assembler.h.

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

◆ operator=() [1/2]

CacheState & v8::internal::wasm::LiftoffAssembler::CacheState::operator= ( CacheState && )
default

◆ operator=() [2/2]

CacheState & v8::internal::wasm::LiftoffAssembler::CacheState::operator= ( const CacheState & )
privatedefault

◆ reset_used_registers()

void v8::internal::wasm::LiftoffAssembler::CacheState::reset_used_registers ( )
inline

Definition at line 353 of file liftoff-assembler.h.

Here is the caller graph for this function:

◆ SetCacheRegister()

void v8::internal::wasm::LiftoffAssembler::CacheState::SetCacheRegister ( Register * cache,
Register reg )
inline

Definition at line 230 of file liftoff-assembler.h.

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

◆ SetInstanceCacheRegister()

void v8::internal::wasm::LiftoffAssembler::CacheState::SetInstanceCacheRegister ( Register reg)
inline

Definition at line 240 of file liftoff-assembler.h.

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

◆ SetMemStartCacheRegister()

void v8::internal::wasm::LiftoffAssembler::CacheState::SetMemStartCacheRegister ( Register reg,
int memory_index )
inline

Definition at line 244 of file liftoff-assembler.h.

Here is the call graph for this function:

◆ Split()

void v8::internal::wasm::LiftoffAssembler::CacheState::Split ( const CacheState & source)

Definition at line 269 of file liftoff-assembler.cc.

Here is the caller graph for this function:

◆ stack_height()

uint32_t v8::internal::wasm::LiftoffAssembler::CacheState::stack_height ( ) const
inline

Definition at line 377 of file liftoff-assembler.h.

Here is the caller graph for this function:

◆ Steal()

void v8::internal::wasm::LiftoffAssembler::CacheState::Steal ( CacheState & source)

Definition at line 264 of file liftoff-assembler.cc.

Here is the caller graph for this function:

◆ take_volatile_register()

LiftoffRegister v8::internal::wasm::LiftoffAssembler::CacheState::take_volatile_register ( LiftoffRegList candidates)
inline

Definition at line 208 of file liftoff-assembler.h.

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

◆ TrySetCachedInstanceRegister()

Register v8::internal::wasm::LiftoffAssembler::CacheState::TrySetCachedInstanceRegister ( LiftoffRegList pinned)
inline

Definition at line 250 of file liftoff-assembler.h.

Here is the call graph for this function:

◆ unused_register() [1/2]

LiftoffRegister v8::internal::wasm::LiftoffAssembler::CacheState::unused_register ( LiftoffRegList candidates,
LiftoffRegList pinned = {} ) const
inline

Definition at line 192 of file liftoff-assembler.h.

◆ unused_register() [2/2]

LiftoffRegister v8::internal::wasm::LiftoffAssembler::CacheState::unused_register ( RegClass rc,
LiftoffRegList pinned = {} ) const
inline

Definition at line 174 of file liftoff-assembler.h.

Here is the caller graph for this function:

Member Data Documentation

◆ cached_instance_data

Register v8::internal::wasm::LiftoffAssembler::CacheState::cached_instance_data = no_reg

Definition at line 145 of file liftoff-assembler.h.

◆ cached_mem_index

int v8::internal::wasm::LiftoffAssembler::CacheState::cached_mem_index = kNoCachedMemIndex

Definition at line 149 of file liftoff-assembler.h.

◆ cached_mem_start

Register v8::internal::wasm::LiftoffAssembler::CacheState::cached_mem_start = no_reg

Definition at line 150 of file liftoff-assembler.h.

◆ kNoCachedMemIndex

int v8::internal::wasm::LiftoffAssembler::CacheState::kNoCachedMemIndex = -1
staticconstexpr

Definition at line 146 of file liftoff-assembler.h.

◆ last_spilled_regs

LiftoffRegList v8::internal::wasm::LiftoffAssembler::CacheState::last_spilled_regs

Definition at line 144 of file liftoff-assembler.h.

◆ register_use_count

uint32_t v8::internal::wasm::LiftoffAssembler::CacheState::register_use_count[kAfterMaxLiftoffRegCode] = {0}

Definition at line 143 of file liftoff-assembler.h.

◆ stack_state

SmallZoneVector<VarState, 16> v8::internal::wasm::LiftoffAssembler::CacheState::stack_state

Definition at line 141 of file liftoff-assembler.h.

◆ used_registers

LiftoffRegList v8::internal::wasm::LiftoffAssembler::CacheState::used_registers

Definition at line 142 of file liftoff-assembler.h.


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