v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LUnallocated Class Reference

#include <lithium.h>

Inheritance diagram for LUnallocated:
Collaboration diagram for LUnallocated:

Data Structures

class  BasicPolicyField
 
class  ExtendedPolicyField
 
class  FixedRegisterField
 
class  FixedSlotIndexField
 
class  LifetimeField
 
class  VirtualRegisterField
 

Public Types

enum  BasicPolicy { FIXED_SLOT, EXTENDED_POLICY }
 
enum  ExtendedPolicy {
  NONE, ANY, FIXED_REGISTER, FIXED_DOUBLE_REGISTER,
  MUST_HAVE_REGISTER, WRITABLE_REGISTER, SAME_AS_FIRST_INPUT
}
 
enum  Lifetime { USED_AT_START, USED_AT_END }
 
- Public Types inherited from LOperand
enum  Kind {
  INVALID, UNALLOCATED, CONSTANT_OPERAND, STACK_SLOT,
  DOUBLE_STACK_SLOT, REGISTER, DOUBLE_REGISTER
}
 

Public Member Functions

 LUnallocated (ExtendedPolicy policy)
 
 LUnallocated (BasicPolicy policy, int index)
 
 LUnallocated (ExtendedPolicy policy, int index)
 
 LUnallocated (ExtendedPolicy policy, Lifetime lifetime)
 
LUnallocatedCopyUnconstrained (Zone *zone)
 
 STATIC_ASSERT (kKindFieldWidth==3)
 
bool HasAnyPolicy () const
 
bool HasFixedPolicy () const
 
bool HasRegisterPolicy () const
 
bool HasSameAsInputPolicy () const
 
bool HasFixedSlotPolicy () const
 
bool HasFixedRegisterPolicy () const
 
bool HasFixedDoubleRegisterPolicy () const
 
bool HasWritableRegisterPolicy () const
 
BasicPolicy basic_policy () const
 
ExtendedPolicy extended_policy () const
 
int fixed_slot_index () const
 
int fixed_register_index () const
 
int virtual_register () const
 
void set_virtual_register (unsigned id)
 
bool IsUsedAtStart ()
 
- Public Member Functions inherited from LOperand
 LOperand ()
 
Kind kind () const
 
int index () const
 
bool Equals (LOperand *other) const
 
void PrintTo (StringStream *stream)
 
void ConvertTo (Kind kind, int index)
 
- Public Member Functions inherited from ZoneObject
 INLINE (void *operator new(size_t size, Zone *zone))
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)
 

Static Public Member Functions

static LUnallocatedcast (LOperand *op)
 
- Static Public Member Functions inherited from LOperand
static void SetUpCaches ()
 
static void TearDownCaches ()
 

Static Public Attributes

static const int kMaxVirtualRegisters = VirtualRegisterField::kMax + 1
 
static const int kFixedSlotIndexWidth = FixedSlotIndexField::kSize
 
static const int kMaxFixedSlotIndex = (1 << (kFixedSlotIndexWidth - 1)) - 1
 
static const int kMinFixedSlotIndex = -(1 << (kFixedSlotIndexWidth - 1))
 

Additional Inherited Members

- Protected Member Functions inherited from LOperand
 LOperand (Kind kind, int index)
 
- Protected Attributes inherited from LOperand
unsigned value_
 
- Static Protected Attributes inherited from LOperand
static const int kKindFieldWidth = 3
 

Detailed Description

Definition at line 91 of file lithium.h.

Member Enumeration Documentation

Enumerator
FIXED_SLOT 
EXTENDED_POLICY 

Definition at line 93 of file lithium.h.

Enumerator
NONE 
ANY 
FIXED_REGISTER 
FIXED_DOUBLE_REGISTER 
MUST_HAVE_REGISTER 
WRITABLE_REGISTER 
SAME_AS_FIRST_INPUT 

Definition at line 98 of file lithium.h.

enum Lifetime
Enumerator
USED_AT_START 
USED_AT_END 

Definition at line 109 of file lithium.h.

Constructor & Destructor Documentation

Member Function Documentation

static LUnallocated* cast ( LOperand op)
inlinestatic

Definition at line 156 of file lithium.h.

References ASSERT.

Referenced by LOperand::PrintTo(), and UsePosition::UsePosition().

LUnallocated* CopyUnconstrained ( Zone zone)
inline
int fixed_slot_index ( ) const
inline
bool HasAnyPolicy ( ) const
inline
bool HasFixedDoubleRegisterPolicy ( ) const
inline
bool HasFixedRegisterPolicy ( ) const
inline
bool HasFixedSlotPolicy ( ) const
inline

Definition at line 217 of file lithium.h.

References LUnallocated::basic_policy(), and LUnallocated::FIXED_SLOT.

Referenced by LUnallocated::fixed_slot_index().

bool HasSameAsInputPolicy ( ) const
inline
bool HasWritableRegisterPolicy ( ) const
inline
void set_virtual_register ( unsigned  id)
inline
STATIC_ASSERT ( kKindFieldWidth  = =3)
int virtual_register ( ) const
inline

Field Documentation

const int kFixedSlotIndexWidth = FixedSlotIndexField::kSize
static

Definition at line 194 of file lithium.h.

const int kMaxFixedSlotIndex = (1 << (kFixedSlotIndexWidth - 1)) - 1
static

Definition at line 195 of file lithium.h.

Referenced by OptimizedCompileJob::CreateGraph().

const int kMaxVirtualRegisters = VirtualRegisterField::kMax + 1
static

Definition at line 193 of file lithium.h.

Referenced by BASE_EMBEDDED< Visitor >::GetVirtualRegister(), and LChunk::NewChunk().

const int kMinFixedSlotIndex = -(1 << (kFixedSlotIndexWidth - 1))
static

Definition at line 196 of file lithium.h.

Referenced by OptimizedCompileJob::CreateGraph().


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