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

#include <instruction.h>

Inheritance diagram for v8::internal::compiler::UnallocatedOperand:
Collaboration diagram for v8::internal::compiler::UnallocatedOperand:

Public Types

enum  BasicPolicy { FIXED_SLOT , EXTENDED_POLICY }
 
enum  ExtendedPolicy {
  NONE , REGISTER_OR_SLOT , REGISTER_OR_SLOT_OR_CONSTANT , FIXED_REGISTER ,
  FIXED_FP_REGISTER , MUST_HAVE_REGISTER , MUST_HAVE_SLOT , SAME_AS_INPUT
}
 
enum  Lifetime { USED_AT_START , USED_AT_END }
 
using VirtualRegisterField = KindField::Next<uint32_t, 32>
 
using BasicPolicyField = VirtualRegisterField::Next<BasicPolicy, 1>
 
using FixedSlotIndexField = BasicPolicyField::Next<int, 28>
 
using ExtendedPolicyField = BasicPolicyField::Next<ExtendedPolicy, 3>
 
using LifetimeField = ExtendedPolicyField::Next<Lifetime, 1>
 
using HasSecondaryStorageField = LifetimeField::Next<bool, 1>
 
using FixedRegisterField = HasSecondaryStorageField::Next<int, 6>
 
using SecondaryStorageField = FixedRegisterField::Next<int, 3>
 
using InputIndexField = SecondaryStorageField::Next<int, 3>
 
- Public Types inherited from v8::internal::compiler::InstructionOperand
enum  Kind {
  INVALID , UNALLOCATED , CONSTANT , IMMEDIATE ,
  PENDING , ALLOCATED , FIRST_LOCATION_OPERAND_KIND = ALLOCATED
}
 

Public Member Functions

 UnallocatedOperand (ExtendedPolicy policy, int virtual_register)
 
 UnallocatedOperand (int virtual_register, int input_index)
 
 UnallocatedOperand (BasicPolicy policy, int index, int virtual_register)
 
 UnallocatedOperand (ExtendedPolicy policy, int index, int virtual_register)
 
 UnallocatedOperand (ExtendedPolicy policy, Lifetime lifetime, int virtual_register)
 
 UnallocatedOperand (int reg_id, int slot_id, int virtual_register)
 
 UnallocatedOperand (const UnallocatedOperand &other, int virtual_register)
 
bool HasRegisterOrSlotPolicy () const
 
bool HasRegisterOrSlotOrConstantPolicy () const
 
bool HasFixedPolicy () const
 
bool HasRegisterPolicy () const
 
bool HasSlotPolicy () const
 
bool HasSameAsInputPolicy () const
 
bool HasFixedSlotPolicy () const
 
bool HasFixedRegisterPolicy () const
 
bool HasFixedFPRegisterPolicy () const
 
bool HasSecondaryStorage () const
 
int GetSecondaryStorage () const
 
BasicPolicy basic_policy () const
 
ExtendedPolicy extended_policy () const
 
int input_index () const
 
int fixed_slot_index () const
 
int fixed_register_index () const
 
int32_t virtual_register () const
 
bool IsUsedAtStart () const
 
- Public Member Functions inherited from v8::internal::compiler::InstructionOperand
 InstructionOperand ()
 
Kind kind () const
 
bool IsAnyLocationOperand () const
 
bool IsLocationOperand () const
 
bool IsFPLocationOperand () const
 
bool IsAnyRegister () const
 
bool IsRegister () const
 
bool IsFPRegister () const
 
bool IsFloatRegister () const
 
bool IsDoubleRegister () const
 
bool IsSimd128Register () const
 
bool IsSimd256Register () const
 
bool IsAnyStackSlot () const
 
bool IsStackSlot () const
 
bool IsFPStackSlot () const
 
bool IsFloatStackSlot () const
 
bool IsDoubleStackSlot () const
 
bool IsSimd128StackSlot () const
 
bool IsSimd256StackSlot () const
 
bool Equals (const InstructionOperand &that) const
 
bool Compare (const InstructionOperand &that) const
 
bool EqualsCanonicalized (const InstructionOperand &that) const
 
bool CompareCanonicalized (const InstructionOperand &that) const
 
bool InterferesWith (const InstructionOperand &other) const
 
void Print () const
 
bool operator== (const InstructionOperand &other) const
 
bool operator!= (const InstructionOperand &other) const
 

Private Member Functions

 UnallocatedOperand (int virtual_register)
 

Additional Inherited Members

- Static Public Member Functions inherited from v8::internal::compiler::InstructionOperand
template<typename SubKindOperand >
static SubKindOperand * New (Zone *zone, const SubKindOperand &op)
 
static void ReplaceWith (InstructionOperand *dest, const InstructionOperand *src)
 
- Static Public Attributes inherited from v8::internal::compiler::InstructionOperand
static const int kInvalidVirtualRegister = -1
 
- Protected Types inherited from v8::internal::compiler::InstructionOperand
using KindField = base::BitField64<Kind, 0, 3>
 
- Protected Member Functions inherited from v8::internal::compiler::InstructionOperand
 InstructionOperand (Kind kind)
 
uint64_t GetCanonicalizedValue () const
 
- Protected Attributes inherited from v8::internal::compiler::InstructionOperand
uint64_t value_
 

Detailed Description

Definition at line 188 of file instruction.h.

Member Typedef Documentation

◆ BasicPolicyField

◆ ExtendedPolicyField

◆ FixedRegisterField

◆ FixedSlotIndexField

◆ HasSecondaryStorageField

◆ InputIndexField

◆ LifetimeField

◆ SecondaryStorageField

◆ VirtualRegisterField

Member Enumeration Documentation

◆ BasicPolicy

Enumerator
FIXED_SLOT 
EXTENDED_POLICY 

Definition at line 190 of file instruction.h.

◆ ExtendedPolicy

Enumerator
NONE 
REGISTER_OR_SLOT 
REGISTER_OR_SLOT_OR_CONSTANT 
FIXED_REGISTER 
FIXED_FP_REGISTER 
MUST_HAVE_REGISTER 
MUST_HAVE_SLOT 
SAME_AS_INPUT 

Definition at line 192 of file instruction.h.

◆ Lifetime

Enumerator
USED_AT_START 
USED_AT_END 

Definition at line 204 of file instruction.h.

Constructor & Destructor Documentation

◆ UnallocatedOperand() [1/8]

v8::internal::compiler::UnallocatedOperand::UnallocatedOperand ( ExtendedPolicy policy,
int virtual_register )
inline

Definition at line 216 of file instruction.h.

Here is the call graph for this function:

◆ UnallocatedOperand() [2/8]

v8::internal::compiler::UnallocatedOperand::UnallocatedOperand ( int virtual_register,
int input_index )
inline

Definition at line 223 of file instruction.h.

Here is the call graph for this function:

◆ UnallocatedOperand() [3/8]

v8::internal::compiler::UnallocatedOperand::UnallocatedOperand ( BasicPolicy policy,
int index,
int virtual_register )
inline

Definition at line 231 of file instruction.h.

Here is the call graph for this function:

◆ UnallocatedOperand() [4/8]

v8::internal::compiler::UnallocatedOperand::UnallocatedOperand ( ExtendedPolicy policy,
int index,
int virtual_register )
inline

Definition at line 240 of file instruction.h.

Here is the call graph for this function:

◆ UnallocatedOperand() [5/8]

v8::internal::compiler::UnallocatedOperand::UnallocatedOperand ( ExtendedPolicy policy,
Lifetime lifetime,
int virtual_register )
inline

Definition at line 249 of file instruction.h.

Here is the call graph for this function:

◆ UnallocatedOperand() [6/8]

v8::internal::compiler::UnallocatedOperand::UnallocatedOperand ( int reg_id,
int slot_id,
int virtual_register )
inline

Definition at line 257 of file instruction.h.

Here is the call graph for this function:

◆ UnallocatedOperand() [7/8]

v8::internal::compiler::UnallocatedOperand::UnallocatedOperand ( const UnallocatedOperand & other,
int virtual_register )
inline

Definition at line 263 of file instruction.h.

Here is the call graph for this function:

◆ UnallocatedOperand() [8/8]

v8::internal::compiler::UnallocatedOperand::UnallocatedOperand ( int virtual_register)
inlineexplicitprivate

Definition at line 392 of file instruction.h.

Here is the call graph for this function:

Member Function Documentation

◆ basic_policy()

BasicPolicy v8::internal::compiler::UnallocatedOperand::basic_policy ( ) const
inline

Definition at line 315 of file instruction.h.

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

◆ extended_policy()

ExtendedPolicy v8::internal::compiler::UnallocatedOperand::extended_policy ( ) const
inline

Definition at line 318 of file instruction.h.

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

◆ fixed_register_index()

int v8::internal::compiler::UnallocatedOperand::fixed_register_index ( ) const
inline

Definition at line 336 of file instruction.h.

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

◆ fixed_slot_index()

int v8::internal::compiler::UnallocatedOperand::fixed_slot_index ( ) const
inline

Definition at line 329 of file instruction.h.

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

◆ GetSecondaryStorage()

int v8::internal::compiler::UnallocatedOperand::GetSecondaryStorage ( ) const
inline

Definition at line 309 of file instruction.h.

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

◆ HasFixedFPRegisterPolicy()

bool v8::internal::compiler::UnallocatedOperand::HasFixedFPRegisterPolicy ( ) const
inline

Definition at line 300 of file instruction.h.

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

◆ HasFixedPolicy()

bool v8::internal::compiler::UnallocatedOperand::HasFixedPolicy ( ) const
inline

Definition at line 278 of file instruction.h.

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

◆ HasFixedRegisterPolicy()

bool v8::internal::compiler::UnallocatedOperand::HasFixedRegisterPolicy ( ) const
inline

Definition at line 296 of file instruction.h.

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

◆ HasFixedSlotPolicy()

bool v8::internal::compiler::UnallocatedOperand::HasFixedSlotPolicy ( ) const
inline

Definition at line 295 of file instruction.h.

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

◆ HasRegisterOrSlotOrConstantPolicy()

bool v8::internal::compiler::UnallocatedOperand::HasRegisterOrSlotOrConstantPolicy ( ) const
inline

Definition at line 274 of file instruction.h.

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

◆ HasRegisterOrSlotPolicy()

bool v8::internal::compiler::UnallocatedOperand::HasRegisterOrSlotPolicy ( ) const
inline

Definition at line 270 of file instruction.h.

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

◆ HasRegisterPolicy()

bool v8::internal::compiler::UnallocatedOperand::HasRegisterPolicy ( ) const
inline

Definition at line 283 of file instruction.h.

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

◆ HasSameAsInputPolicy()

bool v8::internal::compiler::UnallocatedOperand::HasSameAsInputPolicy ( ) const
inline

Definition at line 291 of file instruction.h.

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

◆ HasSecondaryStorage()

bool v8::internal::compiler::UnallocatedOperand::HasSecondaryStorage ( ) const
inline

Definition at line 304 of file instruction.h.

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

◆ HasSlotPolicy()

bool v8::internal::compiler::UnallocatedOperand::HasSlotPolicy ( ) const
inline

Definition at line 287 of file instruction.h.

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

◆ input_index()

int v8::internal::compiler::UnallocatedOperand::input_index ( ) const
inline

Definition at line 323 of file instruction.h.

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

◆ IsUsedAtStart()

bool v8::internal::compiler::UnallocatedOperand::IsUsedAtStart ( ) const
inline

Definition at line 347 of file instruction.h.

Here is the call graph for this function:

◆ virtual_register()

int32_t v8::internal::compiler::UnallocatedOperand::virtual_register ( ) const
inline

Definition at line 342 of file instruction.h.

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 file: