v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
instructions.h File Reference
#include <memory>
#include <optional>
#include "src/torque/ast.h"
#include "src/torque/source-positions.h"
#include "src/torque/types.h"
#include "src/torque/utils.h"
Include dependency graph for instructions.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::internal::torque::DefinitionLocation
 
struct  v8::internal::torque::InstructionBase
 
class  v8::internal::torque::Instruction
 
struct  v8::internal::torque::PeekInstruction
 
struct  v8::internal::torque::PokeInstruction
 
struct  v8::internal::torque::DeleteRangeInstruction
 
struct  v8::internal::torque::PushUninitializedInstruction
 
struct  v8::internal::torque::PushBuiltinPointerInstruction
 
struct  v8::internal::torque::NamespaceConstantInstruction
 
struct  v8::internal::torque::LoadReferenceInstruction
 
struct  v8::internal::torque::StoreReferenceInstruction
 
struct  v8::internal::torque::LoadBitFieldInstruction
 
struct  v8::internal::torque::StoreBitFieldInstruction
 
struct  v8::internal::torque::CallIntrinsicInstruction
 
struct  v8::internal::torque::CallCsaMacroInstruction
 
struct  v8::internal::torque::CallCsaMacroAndBranchInstruction
 
struct  v8::internal::torque::MakeLazyNodeInstruction
 
struct  v8::internal::torque::CallBuiltinInstruction
 
struct  v8::internal::torque::CallBuiltinPointerInstruction
 
struct  v8::internal::torque::CallRuntimeInstruction
 
struct  v8::internal::torque::BranchInstruction
 
struct  v8::internal::torque::ConstexprBranchInstruction
 
struct  v8::internal::torque::GotoInstruction
 
struct  v8::internal::torque::GotoExternalInstruction
 
struct  v8::internal::torque::ReturnInstruction
 
struct  v8::internal::torque::PrintErrorInstruction
 
struct  v8::internal::torque::AbortInstruction
 
struct  v8::internal::torque::UnsafeCastInstruction
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::torque
 

Macros

#define TORQUE_BACKEND_AGNOSTIC_INSTRUCTION_LIST(V)
 
#define TORQUE_BACKEND_DEPENDENT_INSTRUCTION_LIST(V)
 
#define TORQUE_INSTRUCTION_LIST(V)
 
#define TORQUE_INSTRUCTION_BOILERPLATE()
 
#define ENUM_ITEM(name)
 
#define ENUM_ITEM(name)
 

Enumerations

enum class  v8::internal::torque::InstructionKind { v8::internal::torque::ENUM_ITEM }
 

Functions

std::ostream & v8::internal::torque::operator<< (std::ostream &stream, const DefinitionLocation &loc)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const PeekInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const PokeInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const DeleteRangeInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const PushUninitializedInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const PushBuiltinPointerInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const NamespaceConstantInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const LoadReferenceInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const StoreReferenceInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const LoadBitFieldInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const StoreBitFieldInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const CallIntrinsicInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const CallCsaMacroInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const CallCsaMacroAndBranchInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const MakeLazyNodeInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const CallBuiltinInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const CallBuiltinPointerInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const CallRuntimeInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const BranchInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const ConstexprBranchInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const GotoInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const GotoExternalInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const ReturnInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const PrintErrorInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const AbortInstruction &instruction)
 
std::ostream & v8::internal::torque::operator<< (std::ostream &os, const UnsafeCastInstruction &instruction)
 

Macro Definition Documentation

◆ ENUM_ITEM [1/2]

#define ENUM_ITEM ( name)
Value:
k##name,
const char * name
Definition builtins.cc:39

Definition at line 72 of file instructions.h.

◆ ENUM_ITEM [2/2]

#define ENUM_ITEM ( name)
Value:
case InstructionKind::k##name: \
return #name;

Definition at line 72 of file instructions.h.

◆ TORQUE_BACKEND_AGNOSTIC_INSTRUCTION_LIST

#define TORQUE_BACKEND_AGNOSTIC_INSTRUCTION_LIST ( V)
Value:
V(PeekInstruction) \
V(PokeInstruction) \
V(DeleteRangeInstruction)
#define V(Name)

Definition at line 27 of file instructions.h.

◆ TORQUE_BACKEND_DEPENDENT_INSTRUCTION_LIST

#define TORQUE_BACKEND_DEPENDENT_INSTRUCTION_LIST ( V)
Value:
V(PushUninitializedInstruction) \
V(PushBuiltinPointerInstruction) \
V(LoadReferenceInstruction) \
V(StoreReferenceInstruction) \
V(LoadBitFieldInstruction) \
V(StoreBitFieldInstruction) \
V(CallCsaMacroInstruction) \
V(CallIntrinsicInstruction) \
V(NamespaceConstantInstruction) \
V(CallCsaMacroAndBranchInstruction) \
V(CallBuiltinInstruction) \
V(CallRuntimeInstruction) \
V(CallBuiltinPointerInstruction) \
V(BranchInstruction) \
V(ConstexprBranchInstruction) \
V(GotoInstruction) \
V(GotoExternalInstruction) \
V(MakeLazyNodeInstruction) \
V(ReturnInstruction) \
V(PrintErrorInstruction) \
V(AbortInstruction) \
V(UnsafeCastInstruction)

Definition at line 33 of file instructions.h.

◆ TORQUE_INSTRUCTION_BOILERPLATE

#define TORQUE_INSTRUCTION_BOILERPLATE ( )
Value:
static const InstructionKind kKind; \
std::unique_ptr<InstructionBase> Clone() const override; \
void Assign(const InstructionBase& other) override; \
void TypeInstruction(Stack<const Type*>* stack, ControlFlowGraph* cfg) \
const override; \
void RecomputeDefinitionLocations(Stack<DefinitionLocation>* locations, \
Worklist<Block*>* worklist) \
const override;

Definition at line 61 of file instructions.h.

◆ TORQUE_INSTRUCTION_LIST

#define TORQUE_INSTRUCTION_LIST ( V)
Value:
TORQUE_BACKEND_DEPENDENT_INSTRUCTION_LIST(V)
#define TORQUE_BACKEND_AGNOSTIC_INSTRUCTION_LIST(V)

Definition at line 57 of file instructions.h.