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

#include <interface-descriptors.h>

Collaboration diagram for v8::internal::CallInterfaceDescriptorData:

Public Types

enum  Flag {
  kNoFlags = 0u , kNoContext = 1u << 0 , kNoStackScan = 1u << 1 , kAllowVarArgs = 1u << 2 ,
  kCalleeSaveRegisters = 1u << 3
}
 
using Flags = base::Flags<Flag>
 

Public Member Functions

 CallInterfaceDescriptorData ()=default
 
 CallInterfaceDescriptorData (const CallInterfaceDescriptorData &)=delete
 
CallInterfaceDescriptorDataoperator= (const CallInterfaceDescriptorData &)=delete
 
void InitializeRegisters (Flags flags, CodeEntrypointTag tag, int return_count, int parameter_count, StackArgumentOrder stack_order, int register_parameter_count, const Register *registers, const DoubleRegister *double_registers, const Register *return_registers, const DoubleRegister *return_double_registers)
 
void InitializeTypes (const MachineType *machine_types, int machine_types_length)
 
void Reset ()
 
bool IsInitialized () const
 
Flags flags () const
 
CodeEntrypointTag tag () const
 
int return_count () const
 
int param_count () const
 
int register_param_count () const
 
Register register_param (int index) const
 
DoubleRegister double_register_param (int index) const
 
Register register_return (int index) const
 
DoubleRegister double_register_return (int index) const
 
MachineType return_type (int index) const
 
MachineType param_type (int index) const
 
StackArgumentOrder stack_order () const
 
void RestrictAllocatableRegisters (const Register *registers, size_t num)
 
RegList allocatable_registers () const
 

Static Public Attributes

static constexpr int kUninitializedCount = -1
 

Private Member Functions

bool IsInitializedRegisters () const
 
bool IsInitializedTypes () const
 

Private Attributes

int register_param_count_ = kUninitializedCount
 
int return_count_ = kUninitializedCount
 
int param_count_ = kUninitializedCount
 
Flags flags_ = kNoFlags
 
CodeEntrypointTag tag_ = kDefaultCodeEntrypointTag
 
StackArgumentOrder stack_order_ = StackArgumentOrder::kDefault
 
RegList allocatable_registers_
 
const Registerregister_params_ = nullptr
 
const DoubleRegisterdouble_register_params_ = nullptr
 
const Registerregister_returns_ = nullptr
 
const DoubleRegisterdouble_register_returns_ = nullptr
 
MachineTypemachine_types_ = nullptr
 

Detailed Description

Definition at line 172 of file interface-descriptors.h.

Member Typedef Documentation

◆ Flags

Member Enumeration Documentation

◆ Flag

Enumerator
kNoFlags 
kNoContext 
kNoStackScan 
kAllowVarArgs 
kCalleeSaveRegisters 

Definition at line 174 of file interface-descriptors.h.

Constructor & Destructor Documentation

◆ CallInterfaceDescriptorData() [1/2]

v8::internal::CallInterfaceDescriptorData::CallInterfaceDescriptorData ( )
default

◆ CallInterfaceDescriptorData() [2/2]

v8::internal::CallInterfaceDescriptorData::CallInterfaceDescriptorData ( const CallInterfaceDescriptorData & )
delete

Member Function Documentation

◆ allocatable_registers()

RegList v8::internal::CallInterfaceDescriptorData::allocatable_registers ( ) const
inline

Definition at line 257 of file interface-descriptors.h.

◆ double_register_param()

DoubleRegister v8::internal::CallInterfaceDescriptorData::double_register_param ( int index) const
inline

Definition at line 232 of file interface-descriptors.h.

◆ double_register_return()

DoubleRegister v8::internal::CallInterfaceDescriptorData::double_register_return ( int index) const
inline

Definition at line 236 of file interface-descriptors.h.

◆ flags()

Flags v8::internal::CallInterfaceDescriptorData::flags ( ) const
inline

Definition at line 226 of file interface-descriptors.h.

Here is the caller graph for this function:

◆ InitializeRegisters()

void v8::internal::CallInterfaceDescriptorData::InitializeRegisters ( Flags flags,
CodeEntrypointTag tag,
int return_count,
int parameter_count,
StackArgumentOrder stack_order,
int register_parameter_count,
const Register * registers,
const DoubleRegister * double_registers,
const Register * return_registers,
const DoubleRegister * return_double_registers )

Definition at line 39 of file interface-descriptors.cc.

Here is the call graph for this function:

◆ InitializeTypes()

void v8::internal::CallInterfaceDescriptorData::InitializeTypes ( const MachineType * machine_types,
int machine_types_length )

Definition at line 68 of file interface-descriptors.cc.

Here is the call graph for this function:

◆ IsInitialized()

bool v8::internal::CallInterfaceDescriptorData::IsInitialized ( ) const
inline

Definition at line 222 of file interface-descriptors.h.

Here is the caller graph for this function:

◆ IsInitializedRegisters()

bool v8::internal::CallInterfaceDescriptorData::IsInitializedRegisters ( ) const
inlineprivate

Definition at line 260 of file interface-descriptors.h.

Here is the caller graph for this function:

◆ IsInitializedTypes()

bool v8::internal::CallInterfaceDescriptorData::IsInitializedTypes ( ) const
inlineprivate

Definition at line 268 of file interface-descriptors.h.

Here is the caller graph for this function:

◆ operator=()

CallInterfaceDescriptorData & v8::internal::CallInterfaceDescriptorData::operator= ( const CallInterfaceDescriptorData & )
delete

◆ param_count()

int v8::internal::CallInterfaceDescriptorData::param_count ( ) const
inline

Definition at line 229 of file interface-descriptors.h.

◆ param_type()

MachineType v8::internal::CallInterfaceDescriptorData::param_type ( int index) const
inline

Definition at line 243 of file interface-descriptors.h.

◆ register_param()

Register v8::internal::CallInterfaceDescriptorData::register_param ( int index) const
inline

Definition at line 231 of file interface-descriptors.h.

◆ register_param_count()

int v8::internal::CallInterfaceDescriptorData::register_param_count ( ) const
inline

Definition at line 230 of file interface-descriptors.h.

◆ register_return()

Register v8::internal::CallInterfaceDescriptorData::register_return ( int index) const
inline

Definition at line 235 of file interface-descriptors.h.

◆ Reset()

void v8::internal::CallInterfaceDescriptorData::Reset ( )

Definition at line 98 of file interface-descriptors.cc.

◆ RestrictAllocatableRegisters()

void v8::internal::CallInterfaceDescriptorData::RestrictAllocatableRegisters ( const Register * registers,
size_t num )
inline

Definition at line 249 of file interface-descriptors.h.

◆ return_count()

int v8::internal::CallInterfaceDescriptorData::return_count ( ) const
inline

Definition at line 228 of file interface-descriptors.h.

Here is the caller graph for this function:

◆ return_type()

MachineType v8::internal::CallInterfaceDescriptorData::return_type ( int index) const
inline

Definition at line 239 of file interface-descriptors.h.

◆ stack_order()

StackArgumentOrder v8::internal::CallInterfaceDescriptorData::stack_order ( ) const
inline

Definition at line 247 of file interface-descriptors.h.

Here is the caller graph for this function:

◆ tag()

CodeEntrypointTag v8::internal::CallInterfaceDescriptorData::tag ( ) const
inline

Definition at line 227 of file interface-descriptors.h.

Here is the caller graph for this function:

Member Data Documentation

◆ allocatable_registers_

RegList v8::internal::CallInterfaceDescriptorData::allocatable_registers_
private

Definition at line 287 of file interface-descriptors.h.

◆ double_register_params_

const DoubleRegister* v8::internal::CallInterfaceDescriptorData::double_register_params_ = nullptr
private

Definition at line 296 of file interface-descriptors.h.

◆ double_register_returns_

const DoubleRegister* v8::internal::CallInterfaceDescriptorData::double_register_returns_ = nullptr
private

Definition at line 298 of file interface-descriptors.h.

◆ flags_

Flags v8::internal::CallInterfaceDescriptorData::flags_ = kNoFlags
private

Definition at line 281 of file interface-descriptors.h.

◆ kUninitializedCount

int v8::internal::CallInterfaceDescriptorData::kUninitializedCount = -1
staticconstexpr

Definition at line 190 of file interface-descriptors.h.

◆ machine_types_

MachineType* v8::internal::CallInterfaceDescriptorData::machine_types_ = nullptr
private

Definition at line 299 of file interface-descriptors.h.

◆ param_count_

int v8::internal::CallInterfaceDescriptorData::param_count_ = kUninitializedCount
private

Definition at line 280 of file interface-descriptors.h.

◆ register_param_count_

int v8::internal::CallInterfaceDescriptorData::register_param_count_ = kUninitializedCount
private

Definition at line 278 of file interface-descriptors.h.

◆ register_params_

const Register* v8::internal::CallInterfaceDescriptorData::register_params_ = nullptr
private

Definition at line 295 of file interface-descriptors.h.

◆ register_returns_

const Register* v8::internal::CallInterfaceDescriptorData::register_returns_ = nullptr
private

Definition at line 297 of file interface-descriptors.h.

◆ return_count_

int v8::internal::CallInterfaceDescriptorData::return_count_ = kUninitializedCount
private

Definition at line 279 of file interface-descriptors.h.

◆ stack_order_

StackArgumentOrder v8::internal::CallInterfaceDescriptorData::stack_order_ = StackArgumentOrder::kDefault
private

Definition at line 283 of file interface-descriptors.h.

◆ tag_

CodeEntrypointTag v8::internal::CallInterfaceDescriptorData::tag_ = kDefaultCodeEntrypointTag
private

Definition at line 282 of file interface-descriptors.h.


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