V8 Project
v8::internal::ArgumentsAccessStub Class Reference

#include <code-stubs.h>

+ Inheritance diagram for v8::internal::ArgumentsAccessStub:
+ Collaboration diagram for v8::internal::ArgumentsAccessStub:

Classes

class  TypeBits
 

Public Types

enum  Type { READ_ELEMENT , NEW_SLOPPY_FAST , NEW_SLOPPY_SLOW , NEW_STRICT }
 

Public Member Functions

 ArgumentsAccessStub (Isolate *isolate, Type type)
 
virtual CallInterfaceDescriptor GetCallInterfaceDescriptor () OVERRIDE
 
- Public Member Functions inherited from v8::internal::PlatformCodeStub
virtual Handle< CodeGenerateCode () OVERRIDE
 
virtual Code::Kind GetCodeKind () const
 

Private Member Functions

Type type () const
 
void GenerateReadElement (MacroAssembler *masm)
 
void GenerateNewStrict (MacroAssembler *masm)
 
void GenerateNewSloppyFast (MacroAssembler *masm)
 
void GenerateNewSloppySlow (MacroAssembler *masm)
 
virtual void PrintName (OStream &os) const OVERRIDE
 
 DEFINE_PLATFORM_CODE_STUB (ArgumentsAccess, PlatformCodeStub)
 

Additional Inherited Members

- Protected Member Functions inherited from v8::internal::PlatformCodeStub
 PlatformCodeStub (Isolate *isolate)
 
virtual void Generate (MacroAssembler *masm)=0
 
 DEFINE_CODE_STUB_BASE (PlatformCodeStub, CodeStub)
 

Detailed Description

Definition at line 1467 of file code-stubs.h.

Member Enumeration Documentation

◆ Type

Enumerator
READ_ELEMENT 
NEW_SLOPPY_FAST 
NEW_SLOPPY_SLOW 
NEW_STRICT 

Definition at line 1469 of file code-stubs.h.

Constructor & Destructor Documentation

◆ ArgumentsAccessStub()

v8::internal::ArgumentsAccessStub::ArgumentsAccessStub ( Isolate isolate,
Type  type 
)
inline

Definition at line 1476 of file code-stubs.h.

1476  : PlatformCodeStub(isolate) {
1477  minor_key_ = TypeBits::encode(type);
1478  }
static U encode(T value)
Definition: utils.h:217
PlatformCodeStub(Isolate *isolate)
Definition: code-stubs.h:341

References v8::internal::BitFieldBase< T, shift, size, U >::encode(), and type().

+ Here is the call graph for this function:

Member Function Documentation

◆ DEFINE_PLATFORM_CODE_STUB()

v8::internal::ArgumentsAccessStub::DEFINE_PLATFORM_CODE_STUB ( ArgumentsAccess  ,
PlatformCodeStub   
)
private

◆ GenerateNewSloppyFast()

void v8::internal::ArgumentsAccessStub::GenerateNewSloppyFast ( MacroAssembler masm)
private

◆ GenerateNewSloppySlow()

void v8::internal::ArgumentsAccessStub::GenerateNewSloppySlow ( MacroAssembler masm)
private

◆ GenerateNewStrict()

void v8::internal::ArgumentsAccessStub::GenerateNewStrict ( MacroAssembler masm)
private

◆ GenerateReadElement()

void v8::internal::ArgumentsAccessStub::GenerateReadElement ( MacroAssembler masm)
private

◆ GetCallInterfaceDescriptor()

virtual CallInterfaceDescriptor v8::internal::ArgumentsAccessStub::GetCallInterfaceDescriptor ( )
inlinevirtual

Definition at line 1480 of file code-stubs.h.

1480  {
1481  if (type() == READ_ELEMENT) {
1482  return ArgumentsAccessReadDescriptor(isolate());
1483  }
1484  return ContextOnlyDescriptor(isolate());
1485  }

References READ_ELEMENT, and type().

+ Here is the call graph for this function:

◆ PrintName()

void v8::internal::ArgumentsAccessStub::PrintName ( OStream os) const
privatevirtual

Definition at line 775 of file code-stubs.cc.

775  { // NOLINT
776  os << "ArgumentsAccessStub_";
777  switch (type()) {
778  case READ_ELEMENT:
779  os << "ReadElement";
780  break;
781  case NEW_SLOPPY_FAST:
782  os << "NewSloppyFast";
783  break;
784  case NEW_SLOPPY_SLOW:
785  os << "NewSloppySlow";
786  break;
787  case NEW_STRICT:
788  os << "NewStrict";
789  break;
790  }
791  return;
792 }

References NEW_SLOPPY_FAST, NEW_SLOPPY_SLOW, NEW_STRICT, READ_ELEMENT, and type().

+ Here is the call graph for this function:

◆ type()

Type v8::internal::ArgumentsAccessStub::type ( ) const
inlineprivate

Definition at line 1488 of file code-stubs.h.

1488 { return TypeBits::decode(minor_key_); }
static T decode(U value)
Definition: utils.h:228

References v8::internal::BitFieldBase< T, shift, size, U >::decode().

Referenced by ArgumentsAccessStub(), GetCallInterfaceDescriptor(), and PrintName().

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

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