v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
instruction.h File Reference
Include dependency graph for instruction.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::internal::compiler::InstructionOperand
 
class  v8::internal::compiler::UnallocatedOperand
 
class  v8::internal::compiler::ConstantOperand
 
class  v8::internal::compiler::ImmediateOperand
 
class  v8::internal::compiler::PendingOperand
 
class  v8::internal::compiler::LocationOperand
 
class  v8::internal::compiler::AllocatedOperand
 
struct  v8::internal::compiler::CompareOperandModuloType
 
class  v8::internal::compiler::MoveOperands
 
class  v8::internal::compiler::ParallelMove
 
class  v8::internal::compiler::ReferenceMap
 
class  v8::internal::compiler::Instruction
 
class  v8::internal::compiler::RpoNumber
 
class  v8::internal::compiler::Constant
 
class  v8::internal::compiler::StateValueDescriptor
 
class  v8::internal::compiler::StateValueList
 
struct  v8::internal::compiler::StateValueList::Value
 
class  v8::internal::compiler::StateValueList::iterator
 
struct  v8::internal::compiler::StateValueList::Slice
 
class  v8::internal::compiler::FrameStateDescriptor
 
class  v8::internal::compiler::DeoptimizationEntry
 
class  v8::internal::compiler::PhiInstruction
 
class  v8::internal::compiler::InstructionBlock
 
struct  v8::internal::compiler::PrintableInstructionBlock
 
class  v8::internal::compiler::InstructionSequence
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::compiler
 
namespace  v8::internal::compiler::turboshaft
 

Macros

#define INSTRUCTION_OPERAND_ALIGN   ALIGNAS(8)
 
#define INSTRUCTION_OPERAND_PREDICATE(name, type)
 
#define INSTRUCTION_OPERAND_CASTS(OperandType, OperandKind)
 

Typedefs

using v8::internal::compiler::InstructionOperandVector = ZoneVector<InstructionOperand>
 
using v8::internal::compiler::DeoptimizationVector = ZoneVector<DeoptimizationEntry>
 
using v8::internal::compiler::ConstantMap = ZoneUnorderedMap< int, Constant>
 
using v8::internal::compiler::Instructions = ZoneVector<Instruction*>
 
using v8::internal::compiler::ReferenceMaps = ZoneVector<ReferenceMap*>
 
using v8::internal::compiler::InstructionBlocks = ZoneVector<InstructionBlock*>
 

Enumerations

enum class  v8::internal::compiler::StateValueKind : uint8_t {
  v8::internal::compiler::kArgumentsElements , v8::internal::compiler::kArgumentsLength , v8::internal::compiler::kRestLength , v8::internal::compiler::kPlain ,
  v8::internal::compiler::kOptimizedOut , v8::internal::compiler::kNestedObject , v8::internal::compiler::kDuplicate , v8::internal::compiler::kStringConcat
}
 

Functions

std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const InstructionOperand &op)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const MoveOperands &mo)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const ParallelMove &pm)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const ReferenceMap &pm)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const Instruction &instr)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const RpoNumber &rpo)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const Constant &constant)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, StateValueKind kind)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const PrintableInstructionBlock &printable_block)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const InstructionSequence &code)
 

Variables

constexpr size_t v8::internal::compiler::kNumCcmpOperands = 5
 
constexpr size_t v8::internal::compiler::kCcmpOffsetOfOpcode = 0
 
constexpr size_t v8::internal::compiler::kCcmpOffsetOfLhs = 1
 
constexpr size_t v8::internal::compiler::kCcmpOffsetOfRhs = 2
 
constexpr size_t v8::internal::compiler::kCcmpOffsetOfDefaultFlags = 3
 
constexpr size_t v8::internal::compiler::kCcmpOffsetOfCompareCondition = 4
 
constexpr size_t v8::internal::compiler::kConditionalSetEndOffsetOfNumCcmps = 1
 
constexpr size_t v8::internal::compiler::kConditionalSetEndOffsetOfCondition = 2
 
constexpr size_t v8::internal::compiler::kBranchEndOffsetOfFalseBlock = 1
 
constexpr size_t v8::internal::compiler::kBranchEndOffsetOfTrueBlock = 2
 
constexpr size_t v8::internal::compiler::kConditionalBranchEndOffsetOfNumCcmps = 3
 
constexpr size_t v8::internal::compiler::kConditionalBranchEndOffsetOfCondition = 4
 

Macro Definition Documentation

◆ INSTRUCTION_OPERAND_ALIGN

#define INSTRUCTION_OPERAND_ALIGN   ALIGNAS(8)

Definition at line 45 of file instruction.h.

◆ INSTRUCTION_OPERAND_CASTS

#define INSTRUCTION_OPERAND_CASTS ( OperandType,
OperandKind )
Value:
\
static OperandType* cast(InstructionOperand* op) { \
DCHECK_EQ(OperandKind, op->kind()); \
return static_cast<OperandType*>(op); \
} \
\
static const OperandType* cast(const InstructionOperand* op) { \
DCHECK_EQ(OperandKind, op->kind()); \
return static_cast<const OperandType*>(op); \
} \
\
static OperandType cast(const InstructionOperand& op) { \
DCHECK_EQ(OperandKind, op.kind()); \
return *static_cast<const OperandType*>(&op); \
}
uint32_t cast

Definition at line 171 of file instruction.h.

◆ INSTRUCTION_OPERAND_PREDICATE

#define INSTRUCTION_OPERAND_PREDICATE ( name,
type )
Value:
bool Is##name() const { return kind() == type; }
const char * name
Definition builtins.cc:39
Builtins::Kind kind
Definition builtins.cc:40
wasm::ValueType type

Definition at line 68 of file instruction.h.