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

#include <instruction.h>

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

Public Types

enum  Kind {
  INVALID , UNALLOCATED , CONSTANT , IMMEDIATE ,
  PENDING , ALLOCATED , FIRST_LOCATION_OPERAND_KIND = ALLOCATED
}
 

Public Member Functions

 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
 

Static Public Member Functions

template<typename SubKindOperand >
static SubKindOperand * New (Zone *zone, const SubKindOperand &op)
 
static void ReplaceWith (InstructionOperand *dest, const InstructionOperand *src)
 

Static Public Attributes

static const int kInvalidVirtualRegister = -1
 

Protected Types

using KindField = base::BitField64<Kind, 0, 3>
 

Protected Member Functions

 InstructionOperand (Kind kind)
 
uint64_t GetCanonicalizedValue () const
 

Protected Attributes

uint64_t value_
 

Detailed Description

Definition at line 48 of file instruction.h.

Member Typedef Documentation

◆ KindField

Member Enumeration Documentation

◆ Kind

Enumerator
INVALID 
UNALLOCATED 
CONSTANT 
IMMEDIATE 
PENDING 
ALLOCATED 
FIRST_LOCATION_OPERAND_KIND 

Definition at line 52 of file instruction.h.

Constructor & Destructor Documentation

◆ InstructionOperand() [1/2]

v8::internal::compiler::InstructionOperand::InstructionOperand ( )
inline

Definition at line 64 of file instruction.h.

◆ InstructionOperand() [2/2]

v8::internal::compiler::InstructionOperand::InstructionOperand ( Kind kind)
inlineexplicitprotected

Definition at line 158 of file instruction.h.

Member Function Documentation

◆ Compare()

bool v8::internal::compiler::InstructionOperand::Compare ( const InstructionOperand & that) const
inline

Definition at line 128 of file instruction.h.

◆ CompareCanonicalized()

bool v8::internal::compiler::InstructionOperand::CompareCanonicalized ( const InstructionOperand & that) const
inline

Definition at line 140 of file instruction.h.

◆ Equals()

bool v8::internal::compiler::InstructionOperand::Equals ( const InstructionOperand & that) const
inline

Definition at line 120 of file instruction.h.

Here is the caller graph for this function:

◆ EqualsCanonicalized()

bool v8::internal::compiler::InstructionOperand::EqualsCanonicalized ( const InstructionOperand & that) const
inline

Definition at line 132 of file instruction.h.

Here is the caller graph for this function:

◆ GetCanonicalizedValue()

uint64_t v8::internal::compiler::InstructionOperand::GetCanonicalizedValue ( ) const
inlineprotected

Definition at line 733 of file instruction.h.

Here is the call graph for this function:

◆ InterferesWith()

bool v8::internal::compiler::InstructionOperand::InterferesWith ( const InstructionOperand & other) const

Definition at line 92 of file instruction.cc.

Here is the call graph for this function:

◆ IsAnyLocationOperand()

bool v8::internal::compiler::InstructionOperand::IsAnyLocationOperand ( ) const
inline

Definition at line 635 of file instruction.h.

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

◆ IsAnyRegister()

bool v8::internal::compiler::InstructionOperand::IsAnyRegister ( ) const
inline

Definition at line 649 of file instruction.h.

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

◆ IsAnyStackSlot()

bool v8::internal::compiler::InstructionOperand::IsAnyStackSlot ( ) const
inline

Definition at line 685 of file instruction.h.

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

◆ IsDoubleRegister()

bool v8::internal::compiler::InstructionOperand::IsDoubleRegister ( ) const
inline

Definition at line 670 of file instruction.h.

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

◆ IsDoubleStackSlot()

bool v8::internal::compiler::InstructionOperand::IsDoubleStackSlot ( ) const
inline

Definition at line 709 of file instruction.h.

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

◆ IsFloatRegister()

bool v8::internal::compiler::InstructionOperand::IsFloatRegister ( ) const
inline

Definition at line 665 of file instruction.h.

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

◆ IsFloatStackSlot()

bool v8::internal::compiler::InstructionOperand::IsFloatStackSlot ( ) const
inline

Definition at line 701 of file instruction.h.

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

◆ IsFPLocationOperand()

bool v8::internal::compiler::InstructionOperand::IsFPLocationOperand ( ) const
inline

Definition at line 644 of file instruction.h.

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

◆ IsFPRegister()

bool v8::internal::compiler::InstructionOperand::IsFPRegister ( ) const
inline

Definition at line 660 of file instruction.h.

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

◆ IsFPStackSlot()

bool v8::internal::compiler::InstructionOperand::IsFPStackSlot ( ) const
inline

Definition at line 696 of file instruction.h.

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

◆ IsLocationOperand()

bool v8::internal::compiler::InstructionOperand::IsLocationOperand ( ) const
inline

Definition at line 639 of file instruction.h.

Here is the call graph for this function:

◆ IsRegister()

bool v8::internal::compiler::InstructionOperand::IsRegister ( ) const
inline

Definition at line 655 of file instruction.h.

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

◆ IsSimd128Register()

bool v8::internal::compiler::InstructionOperand::IsSimd128Register ( ) const
inline

Definition at line 675 of file instruction.h.

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

◆ IsSimd128StackSlot()

bool v8::internal::compiler::InstructionOperand::IsSimd128StackSlot ( ) const
inline

Definition at line 717 of file instruction.h.

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

◆ IsSimd256Register()

bool v8::internal::compiler::InstructionOperand::IsSimd256Register ( ) const
inline

Definition at line 680 of file instruction.h.

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

◆ IsSimd256StackSlot()

bool v8::internal::compiler::InstructionOperand::IsSimd256StackSlot ( ) const
inline

Definition at line 725 of file instruction.h.

Here is the call graph for this function:

◆ IsStackSlot()

bool v8::internal::compiler::InstructionOperand::IsStackSlot ( ) const
inline

Definition at line 691 of file instruction.h.

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

◆ kind()

Kind v8::internal::compiler::InstructionOperand::kind ( ) const
inline

Definition at line 66 of file instruction.h.

Here is the caller graph for this function:

◆ New()

template<typename SubKindOperand >
static SubKindOperand * v8::internal::compiler::InstructionOperand::New ( Zone * zone,
const SubKindOperand & op )
inlinestatic

Definition at line 111 of file instruction.h.

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

◆ operator!=()

bool v8::internal::compiler::InstructionOperand::operator!= ( const InstructionOperand & other) const
inline

Definition at line 153 of file instruction.h.

◆ operator==()

bool v8::internal::compiler::InstructionOperand::operator== ( const InstructionOperand & other) const
inline

Definition at line 150 of file instruction.h.

◆ Print()

void v8::internal::compiler::InstructionOperand::Print ( ) const

Definition at line 163 of file instruction.cc.

◆ ReplaceWith()

static void v8::internal::compiler::InstructionOperand::ReplaceWith ( InstructionOperand * dest,
const InstructionOperand * src )
inlinestatic

Definition at line 115 of file instruction.h.

Here is the caller graph for this function:

Member Data Documentation

◆ kInvalidVirtualRegister

const int v8::internal::compiler::InstructionOperand::kInvalidVirtualRegister = -1
static

Definition at line 50 of file instruction.h.

◆ value_

uint64_t v8::internal::compiler::InstructionOperand::value_
protected

Definition at line 164 of file instruction.h.


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