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

#include <linkage-location.h>

Collaboration diagram for v8::internal::LinkageLocation:

Public Member Functions

bool operator== (const LinkageLocation &other) const
 
bool operator!= (const LinkageLocation &other) const
 
MachineType GetType () const
 
int GetSizeInPointers () const
 
int32_t GetLocation () const
 
bool IsNullRegister () const
 
NO_INLINE_FOR_ARM64_MSVC bool IsRegister () const
 
bool IsAnyRegister () const
 
bool IsCallerFrameSlot () const
 
bool IsCalleeFrameSlot () const
 
int32_t AsRegister () const
 
int32_t AsCallerFrameSlot () const
 
int32_t AsCalleeFrameSlot () const
 

Static Public Member Functions

static bool IsSameLocation (const LinkageLocation &a, const LinkageLocation &b)
 
static LinkageLocation ForNullRegister (int32_t reg, MachineType type=MachineType::None())
 
static LinkageLocation ForAnyRegister (MachineType type=MachineType::None())
 
static LinkageLocation ForRegister (int32_t reg, MachineType type=MachineType::None())
 
static LinkageLocation ForCallerFrameSlot (int32_t slot, MachineType type)
 
static LinkageLocation ForCalleeFrameSlot (int32_t slot, MachineType type)
 
static LinkageLocation ForSavedCallerReturnAddress ()
 
static LinkageLocation ForSavedCallerFramePtr ()
 
static LinkageLocation ForSavedCallerConstantPool ()
 
static LinkageLocation ForSavedCallerFunction ()
 
static LinkageLocation ConvertToTailCallerLocation (LinkageLocation caller_location, int stack_param_delta)
 

Private Types

enum  LocationType { REGISTER , STACK_SLOT }
 
using TypeField = base::BitField<LocationType, 0, 1>
 
using LocationField = TypeField::Next<int32_t, 31>
 

Private Member Functions

 LinkageLocation (LocationType type, int32_t location, MachineType machine_type)
 

Private Attributes

int32_t bit_field_
 
MachineType machine_type_
 

Static Private Attributes

static constexpr int32_t ANY_REGISTER = -1
 
static constexpr int32_t MAX_STACK_SLOT = 32767
 

Detailed Description

Definition at line 25 of file linkage-location.h.

Member Typedef Documentation

◆ LocationField

Definition at line 159 of file linkage-location.h.

◆ TypeField

Member Enumeration Documentation

◆ LocationType

Enumerator
REGISTER 
STACK_SLOT 

Definition at line 156 of file linkage-location.h.

Constructor & Destructor Documentation

◆ LinkageLocation()

v8::internal::LinkageLocation::LinkageLocation ( LocationType type,
int32_t location,
MachineType machine_type )
inlineprivate

Definition at line 164 of file linkage-location.h.

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

Member Function Documentation

◆ AsCalleeFrameSlot()

int32_t v8::internal::LinkageLocation::AsCalleeFrameSlot ( ) const
inline

Definition at line 150 of file linkage-location.h.

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

◆ AsCallerFrameSlot()

int32_t v8::internal::LinkageLocation::AsCallerFrameSlot ( ) const
inline

Definition at line 146 of file linkage-location.h.

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

◆ AsRegister()

int32_t v8::internal::LinkageLocation::AsRegister ( ) const
inline

Definition at line 142 of file linkage-location.h.

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

◆ ConvertToTailCallerLocation()

static LinkageLocation v8::internal::LinkageLocation::ConvertToTailCallerLocation ( LinkageLocation caller_location,
int stack_param_delta )
inlinestatic

Definition at line 107 of file linkage-location.h.

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

◆ ForAnyRegister()

static LinkageLocation v8::internal::LinkageLocation::ForAnyRegister ( MachineType type = MachineType::None())
inlinestatic

Definition at line 54 of file linkage-location.h.

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

◆ ForCalleeFrameSlot()

static LinkageLocation v8::internal::LinkageLocation::ForCalleeFrameSlot ( int32_t slot,
MachineType type )
inlinestatic

Definition at line 70 of file linkage-location.h.

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

◆ ForCallerFrameSlot()

static LinkageLocation v8::internal::LinkageLocation::ForCallerFrameSlot ( int32_t slot,
MachineType type )
inlinestatic

Definition at line 65 of file linkage-location.h.

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

◆ ForNullRegister()

static LinkageLocation v8::internal::LinkageLocation::ForNullRegister ( int32_t reg,
MachineType type = MachineType::None() )
inlinestatic

Definition at line 49 of file linkage-location.h.

Here is the call graph for this function:

◆ ForRegister()

static LinkageLocation v8::internal::LinkageLocation::ForRegister ( int32_t reg,
MachineType type = MachineType::None() )
inlinestatic

Definition at line 59 of file linkage-location.h.

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

◆ ForSavedCallerConstantPool()

static LinkageLocation v8::internal::LinkageLocation::ForSavedCallerConstantPool ( )
inlinestatic

Definition at line 92 of file linkage-location.h.

Here is the call graph for this function:

◆ ForSavedCallerFramePtr()

static LinkageLocation v8::internal::LinkageLocation::ForSavedCallerFramePtr ( )
inlinestatic

Definition at line 85 of file linkage-location.h.

Here is the call graph for this function:

◆ ForSavedCallerFunction()

static LinkageLocation v8::internal::LinkageLocation::ForSavedCallerFunction ( )
inlinestatic

Definition at line 100 of file linkage-location.h.

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

◆ ForSavedCallerReturnAddress()

static LinkageLocation v8::internal::LinkageLocation::ForSavedCallerReturnAddress ( )
inlinestatic

Definition at line 78 of file linkage-location.h.

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

◆ GetLocation()

int32_t v8::internal::LinkageLocation::GetLocation ( ) const
inline

Definition at line 123 of file linkage-location.h.

Here is the caller graph for this function:

◆ GetSizeInPointers()

int v8::internal::LinkageLocation::GetSizeInPointers ( ) const
inline

Definition at line 119 of file linkage-location.h.

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

◆ GetType()

MachineType v8::internal::LinkageLocation::GetType ( ) const
inline

Definition at line 117 of file linkage-location.h.

Here is the caller graph for this function:

◆ IsAnyRegister()

bool v8::internal::LinkageLocation::IsAnyRegister ( ) const
inline

Definition at line 136 of file linkage-location.h.

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

◆ IsCalleeFrameSlot()

bool v8::internal::LinkageLocation::IsCalleeFrameSlot ( ) const
inline

Definition at line 140 of file linkage-location.h.

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

◆ IsCallerFrameSlot()

bool v8::internal::LinkageLocation::IsCallerFrameSlot ( ) const
inline

Definition at line 139 of file linkage-location.h.

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

◆ IsNullRegister()

bool v8::internal::LinkageLocation::IsNullRegister ( ) const
inline

Definition at line 130 of file linkage-location.h.

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

◆ IsRegister()

NO_INLINE_FOR_ARM64_MSVC bool v8::internal::LinkageLocation::IsRegister ( ) const
inline

Definition at line 133 of file linkage-location.h.

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

◆ IsSameLocation()

static bool v8::internal::LinkageLocation::IsSameLocation ( const LinkageLocation & a,
const LinkageLocation & b )
inlinestatic

Definition at line 36 of file linkage-location.h.

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

◆ operator!=()

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

Definition at line 32 of file linkage-location.h.

◆ operator==()

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

Definition at line 27 of file linkage-location.h.

Member Data Documentation

◆ ANY_REGISTER

int32_t v8::internal::LinkageLocation::ANY_REGISTER = -1
staticconstexprprivate

Definition at line 161 of file linkage-location.h.

◆ bit_field_

int32_t v8::internal::LinkageLocation::bit_field_
private

Definition at line 173 of file linkage-location.h.

◆ machine_type_

MachineType v8::internal::LinkageLocation::machine_type_
private

Definition at line 174 of file linkage-location.h.

◆ MAX_STACK_SLOT

int32_t v8::internal::LinkageLocation::MAX_STACK_SLOT = 32767
staticconstexprprivate

Definition at line 162 of file linkage-location.h.


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