V8 Project
instruction.h File Reference
#include <deque>
#include <map>
#include <set>
#include "src/compiler/common-operator.h"
#include "src/compiler/frame.h"
#include "src/compiler/graph.h"
#include "src/compiler/instruction-codes.h"
#include "src/compiler/opcodes.h"
#include "src/compiler/schedule.h"
#include "src/macro-assembler.h"
#include "src/zone-allocator.h"
+ 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::UnallocatedOperand::BasicPolicyField
 
class  v8::internal::compiler::UnallocatedOperand::VirtualRegisterField
 
class  v8::internal::compiler::UnallocatedOperand::FixedSlotIndexField
 
class  v8::internal::compiler::UnallocatedOperand::ExtendedPolicyField
 
class  v8::internal::compiler::UnallocatedOperand::LifetimeField
 
class  v8::internal::compiler::UnallocatedOperand::FixedRegisterField
 
class  v8::internal::compiler::FINAL< kOperandKind, kNumCachedOperands >
 
class  v8::internal::compiler::Instruction
 
class  v8::internal::compiler::GapInstruction
 
class  v8::internal::compiler::FrameStateDescriptor
 
class  v8::internal::compiler::FINAL< kOperandKind, kNumCachedOperands >::StateId
 

Namespaces

 v8
 Debugger support for the V8 JavaScript engine.
 
 v8::internal
 
 v8::internal::compiler
 

Macros

#define INSTRUCTION_OPERAND_LIST(V)
 
#define INSTRUCTION_OPERAND_PREDICATE(name, type, number)    bool Is##name() const { return kind() == type; }
 
#define INSTRUCTION_TYPEDEF_SUBKIND_OPERAND_CLASS(name, type, number)    typedef SubKindOperand<InstructionOperand::type, number> name##Operand;
 

Typedefs

typedef ZoneVector< InstructionOperand * > v8::internal::compiler::InstructionOperandVector
 
typedef ZoneDeque< Constant > v8::internal::compiler::ConstantDeque
 
typedef std::map< int, Constant, std::less< int >, zone_allocator< std::pair< int, Constant > > > v8::internal::compiler::ConstantMap
 
typedef ZoneDeque< Instruction * > v8::internal::compiler::InstructionDeque
 
typedef ZoneDeque< PointerMap * > v8::internal::compiler::PointerMapDeque
 
typedef ZoneVector< FrameStateDescriptor * > v8::internal::compiler::DeoptimizationVector
 

Functions

OStream & v8::internal::compiler::operator<< (OStream &os, const InstructionOperand &op)
 
OStream & v8::internal::compiler::operator<< (OStream &os, const MoveOperands &mo)
 
OStream & v8::internal::compiler::operator<< (OStream &os, const ParallelMove &pm)
 
OStream & v8::internal::compiler::operator<< (OStream &os, const PointerMap &pm)
 
OStream & v8::internal::compiler::operator<< (OStream &os, const Instruction &instr)
 
OStream & v8::internal::compiler::operator<< (OStream &os, const Constant &constant)
 
OStream & v8::internal::compiler::operator<< (OStream &os, const InstructionSequence &code)
 

Variables

const InstructionCode v8::internal::compiler::kGapInstruction = -1
 
const InstructionCode v8::internal::compiler::kBlockStartInstruction = -2
 
const InstructionCode v8::internal::compiler::kSourcePositionInstruction = -3
 

Macro Definition Documentation

◆ INSTRUCTION_OPERAND_LIST

#define INSTRUCTION_OPERAND_LIST (   V)
Value:
V(Constant, CONSTANT, 128) \
V(Immediate, IMMEDIATE, 128) \
V(StackSlot, STACK_SLOT, 128) \
V(DoubleStackSlot, DOUBLE_STACK_SLOT, 128) \
V(DoubleRegister, DOUBLE_REGISTER, DoubleRegister::kMaxNumRegisters)
#define REGISTER(N, C)
#define V(NAME, Name, id)
Definition: execution.h:170
DwVfpRegister DoubleRegister
const int kNumRegisters
Definition: constants-arm.h:34

Definition at line 39 of file instruction.h.

◆ INSTRUCTION_OPERAND_PREDICATE

#define INSTRUCTION_OPERAND_PREDICATE (   name,
  type,
  number 
)     bool Is##name() const { return kind() == type; }

Definition at line 65 of file instruction.h.

◆ INSTRUCTION_TYPEDEF_SUBKIND_OPERAND_CLASS

#define INSTRUCTION_TYPEDEF_SUBKIND_OPERAND_CLASS (   name,
  type,
  number 
)     typedef SubKindOperand<InstructionOperand::type, number> name##Operand;

Definition at line 341 of file instruction.h.