V8 Project
v8::internal::CallInterfaceDescriptorData Class Reference

#include <interface-descriptors.h>

+ Collaboration diagram for v8::internal::CallInterfaceDescriptorData:

Public Member Functions

 CallInterfaceDescriptorData ()
 
void Initialize (int register_parameter_count, Register *registers, Representation *param_representations, PlatformInterfaceDescriptor *platform_descriptor=NULL)
 
bool IsInitialized () const
 
int register_param_count () const
 
Register register_param (int index) const
 
Registerregister_params () const
 
Representation register_param_representation (int index) const
 
Representationregister_param_representations () const
 
PlatformInterfaceDescriptorplatform_specific_descriptor () const
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (CallInterfaceDescriptorData)
 

Private Attributes

int register_param_count_
 
SmartArrayPointer< Registerregister_params_
 
SmartArrayPointer< Representationregister_param_representations_
 
PlatformInterfaceDescriptorplatform_specific_descriptor_
 

Detailed Description

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

Constructor & Destructor Documentation

◆ CallInterfaceDescriptorData()

v8::internal::CallInterfaceDescriptorData::CallInterfaceDescriptorData ( )
inline

Member Function Documentation

◆ DISALLOW_COPY_AND_ASSIGN()

v8::internal::CallInterfaceDescriptorData::DISALLOW_COPY_AND_ASSIGN ( CallInterfaceDescriptorData  )
private

◆ Initialize()

void v8::internal::CallInterfaceDescriptorData::Initialize ( int  register_parameter_count,
Register registers,
Representation param_representations,
PlatformInterfaceDescriptor platform_descriptor = NULL 
)

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

15  {
16  platform_specific_descriptor_ = platform_descriptor;
17  register_param_count_ = register_parameter_count;
18 
19  // An interface descriptor must have a context register.
20  DCHECK(register_parameter_count > 0 &&
21  registers[0].is(CallInterfaceDescriptor::ContextRegister()));
22 
23  // InterfaceDescriptor owns a copy of the registers array.
24  register_params_.Reset(NewArray<Register>(register_parameter_count));
25  for (int i = 0; i < register_parameter_count; i++) {
26  register_params_[i] = registers[i];
27  }
28 
29  // If a representations array is specified, then the descriptor owns that as
30  // well.
33  NewArray<Representation>(register_parameter_count));
34  for (int i = 0; i < register_parameter_count; i++) {
35  // If there is a context register, the representation must be tagged.
36  DCHECK(
37  i != 0 ||
40  }
41  }
42 }
SmartArrayPointer< Register > register_params_
PlatformInterfaceDescriptor * platform_specific_descriptor_
SmartArrayPointer< Representation > register_param_representations_
Representation * register_param_representations() const
static const Register ContextRegister()
static Representation Tagged()
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL
#define DCHECK(condition)
Definition: logging.h:205

References v8::internal::CallInterfaceDescriptor::ContextRegister(), DCHECK, v8::internal::compiler::anonymous_namespace{value-numbering-reducer.cc}::Equals(), NULL, platform_specific_descriptor_, register_param_count_, register_param_representations(), register_param_representations_, register_params_, and v8::internal::Representation::Tagged().

+ Here is the call graph for this function:

◆ IsInitialized()

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

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

72 { return register_param_count_ >= 0; }

References register_param_count_.

◆ platform_specific_descriptor()

PlatformInterfaceDescriptor* v8::internal::CallInterfaceDescriptorData::platform_specific_descriptor ( ) const
inline

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

83  {
85  }

References platform_specific_descriptor_.

Referenced by v8::internal::CallInterfaceDescriptor::platform_specific_descriptor().

+ Here is the caller graph for this function:

◆ register_param()

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

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

75 { return register_params_[index]; }

References register_params_.

Referenced by v8::internal::CallInterfaceDescriptor::GetParameterRegister().

+ Here is the caller graph for this function:

◆ register_param_count()

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

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

74 { return register_param_count_; }

References register_param_count_.

Referenced by v8::internal::CallInterfaceDescriptor::GetEnvironmentLength(), and v8::internal::CallInterfaceDescriptor::GetRegisterParameterCount().

+ Here is the caller graph for this function:

◆ register_param_representation()

Representation v8::internal::CallInterfaceDescriptorData::register_param_representation ( int  index) const
inline

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

77  {
78  return register_param_representations_[index];
79  }

References register_param_representations_.

Referenced by v8::internal::CallInterfaceDescriptor::GetParameterRepresentation().

+ Here is the caller graph for this function:

◆ register_param_representations()

Representation* v8::internal::CallInterfaceDescriptorData::register_param_representations ( ) const
inline

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

80  {
82  }

References register_param_representations_.

Referenced by Initialize().

+ Here is the caller graph for this function:

◆ register_params()

Register* v8::internal::CallInterfaceDescriptorData::register_params ( ) const
inline

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

76 { return register_params_.get(); }

References register_params_.

Member Data Documentation

◆ platform_specific_descriptor_

PlatformInterfaceDescriptor* v8::internal::CallInterfaceDescriptorData::platform_specific_descriptor_
private

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

Referenced by Initialize(), and platform_specific_descriptor().

◆ register_param_count_

int v8::internal::CallInterfaceDescriptorData::register_param_count_
private

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

Referenced by Initialize(), IsInitialized(), and register_param_count().

◆ register_param_representations_

SmartArrayPointer<Representation> v8::internal::CallInterfaceDescriptorData::register_param_representations_
private

◆ register_params_

SmartArrayPointer<Register> v8::internal::CallInterfaceDescriptorData::register_params_
private

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

Referenced by Initialize(), register_param(), and register_params().


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