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

Go to the source code of this file.

Classes

class  v8::internal::interpreter::BytecodeOperands
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::interpreter
 

Macros

#define INVALID_OPERAND_TYPE_LIST(V)
 
#define REGISTER_INPUT_OPERAND_TYPE_LIST(V)
 
#define REGISTER_OUTPUT_OPERAND_TYPE_LIST(V)
 
#define SIGNED_SCALABLE_SCALAR_OPERAND_TYPE_LIST(V)
 
#define UNSIGNED_SCALABLE_SCALAR_OPERAND_TYPE_LIST(V)
 
#define UNSIGNED_FIXED_SCALAR_OPERAND_TYPE_LIST(V)
 
#define NON_REGISTER_OPERAND_TYPE_LIST(V)
 
#define REGISTER_OPERAND_TYPE_LIST(V)
 
#define OPERAND_TYPE_LIST(V)
 
#define OPERAND_SCALE_LIST(V)
 
#define DECLARE_OPERAND_SCALE(Name, Scale)
 
#define OPERAND_TYPE_INFO_LIST(V)
 
#define DECLARE_OPERAND_TYPE_INFO(Name, ...)
 
#define DECLARE_OPERAND_TYPE(Name, _)
 
#define COUNT_OPERAND_TYPES(x, _)
 
#define OPERAND_SCALE_COUNT(...)
 

Enumerations

enum class  v8::internal::interpreter::OperandScale : uint8_t { v8::internal::interpreter::DECLARE_OPERAND_SCALE , v8::internal::interpreter::kLast = kQuadruple }
 
enum class  v8::internal::interpreter::OperandSize : uint8_t {
  v8::internal::interpreter::kNone = 0 , v8::internal::interpreter::kByte = 1 , v8::internal::interpreter::kShort = 2 , v8::internal::interpreter::kQuad = 4 ,
  v8::internal::interpreter::kLast = kQuad
}
 
enum class  v8::internal::interpreter::OperandTypeInfo : uint8_t { v8::internal::interpreter::DECLARE_OPERAND_TYPE_INFO }
 
enum class  v8::internal::interpreter::OperandType : uint8_t { v8::internal::interpreter::DECLARE_OPERAND_TYPE , v8::internal::interpreter::COUNT_OPERAND_TYPES , v8::internal::interpreter::kLast = -1 OPERAND_TYPE_LIST(COUNT_OPERAND_TYPES) }
 
enum class  v8::internal::interpreter::ImplicitRegisterUse : uint8_t {
  v8::internal::interpreter::kNone = 0 , v8::internal::interpreter::kReadAccumulator = 1 << 0 , v8::internal::interpreter::kWriteAccumulator = 1 << 1 , v8::internal::interpreter::kClobberAccumulator = 1 << 2 ,
  v8::internal::interpreter::kWriteShortStar = 1 << 3 , v8::internal::interpreter::kReadWriteAccumulator = kReadAccumulator | kWriteAccumulator , v8::internal::interpreter::kReadAndClobberAccumulator = kReadAccumulator | kClobberAccumulator , v8::internal::interpreter::kReadAccumulatorWriteShortStar = kReadAccumulator | kWriteShortStar
}
 

Functions

constexpr ImplicitRegisterUse v8::internal::interpreter::operator& (ImplicitRegisterUse lhs, ImplicitRegisterUse rhs)
 
constexpr ImplicitRegisterUse v8::internal::interpreter::operator| (ImplicitRegisterUse lhs, ImplicitRegisterUse rhs)
 
std::ostream & v8::internal::interpreter::operator<< (std::ostream &os, const ImplicitRegisterUse &use)
 
std::ostream & v8::internal::interpreter::operator<< (std::ostream &os, const OperandScale &operand_scale)
 
std::ostream & v8::internal::interpreter::operator<< (std::ostream &os, const OperandSize &operand_size)
 
std::ostream & v8::internal::interpreter::operator<< (std::ostream &os, const OperandType &operand_type)
 

Macro Definition Documentation

◆ COUNT_OPERAND_TYPES

#define COUNT_OPERAND_TYPES ( x,
_ )
Value:
+1

Definition at line 107 of file bytecode-operands.h.

◆ DECLARE_OPERAND_SCALE

#define DECLARE_OPERAND_SCALE ( Name,
Scale )
Value:
k##Name = Scale,

Definition at line 70 of file bytecode-operands.h.

◆ DECLARE_OPERAND_TYPE

#define DECLARE_OPERAND_TYPE ( Name,
_ )
Value:
k##Name,

Definition at line 104 of file bytecode-operands.h.

◆ DECLARE_OPERAND_TYPE_INFO

#define DECLARE_OPERAND_TYPE_INFO ( Name,
... )
Value:
k##Name,

Definition at line 97 of file bytecode-operands.h.

◆ INVALID_OPERAND_TYPE_LIST

#define INVALID_OPERAND_TYPE_LIST ( V)
Value:
V(None, OperandTypeInfo::kNone)
#define V(Name)

Definition at line 15 of file bytecode-operands.h.

◆ NON_REGISTER_OPERAND_TYPE_LIST

#define NON_REGISTER_OPERAND_TYPE_LIST ( V)
Value:
UNSIGNED_FIXED_SCALAR_OPERAND_TYPE_LIST(V) \
UNSIGNED_SCALABLE_SCALAR_OPERAND_TYPE_LIST(V) \
SIGNED_SCALABLE_SCALAR_OPERAND_TYPE_LIST(V)
#define INVALID_OPERAND_TYPE_LIST(V)

Definition at line 44 of file bytecode-operands.h.

◆ OPERAND_SCALE_COUNT

#define OPERAND_SCALE_COUNT ( ...)
Value:
+1

Definition at line 152 of file bytecode-operands.h.

◆ OPERAND_SCALE_LIST

#define OPERAND_SCALE_LIST ( V)
Value:
V(Single, 1) \
V(Double, 2) \
V(Quadruple, 4)

Definition at line 64 of file bytecode-operands.h.

◆ OPERAND_TYPE_INFO_LIST

#define OPERAND_TYPE_INFO_LIST ( V)
Value:
V(None, false, false, OperandSize::kNone) \
V(ScalableSignedByte, true, false, OperandSize::kByte) \
V(ScalableUnsignedByte, true, true, OperandSize::kByte) \
V(FixedUnsignedByte, false, true, OperandSize::kByte) \
V(FixedUnsignedShort, false, true, OperandSize::kShort)

Definition at line 89 of file bytecode-operands.h.

◆ OPERAND_TYPE_LIST

#define OPERAND_TYPE_LIST ( V)
Value:
REGISTER_OPERAND_TYPE_LIST(V)
#define NON_REGISTER_OPERAND_TYPE_LIST(V)

Definition at line 58 of file bytecode-operands.h.

◆ REGISTER_INPUT_OPERAND_TYPE_LIST

#define REGISTER_INPUT_OPERAND_TYPE_LIST ( V)
Value:
V(Reg, OperandTypeInfo::kScalableSignedByte) \
V(RegList, OperandTypeInfo::kScalableSignedByte) \
V(RegPair, OperandTypeInfo::kScalableSignedByte)

Definition at line 17 of file bytecode-operands.h.

◆ REGISTER_OPERAND_TYPE_LIST

#define REGISTER_OPERAND_TYPE_LIST ( V)
Value:
REGISTER_OUTPUT_OPERAND_TYPE_LIST(V) \
V(RegInOut, OperandTypeInfo::kScalableSignedByte)
#define REGISTER_INPUT_OPERAND_TYPE_LIST(V)

Definition at line 51 of file bytecode-operands.h.

◆ REGISTER_OUTPUT_OPERAND_TYPE_LIST

#define REGISTER_OUTPUT_OPERAND_TYPE_LIST ( V)
Value:
V(RegOut, OperandTypeInfo::kScalableSignedByte) \
V(RegOutList, OperandTypeInfo::kScalableSignedByte) \
V(RegOutPair, OperandTypeInfo::kScalableSignedByte) \
V(RegOutTriple, OperandTypeInfo::kScalableSignedByte)

Definition at line 22 of file bytecode-operands.h.

◆ SIGNED_SCALABLE_SCALAR_OPERAND_TYPE_LIST

#define SIGNED_SCALABLE_SCALAR_OPERAND_TYPE_LIST ( V)
Value:
V(Imm, OperandTypeInfo::kScalableSignedByte)

Definition at line 28 of file bytecode-operands.h.

◆ UNSIGNED_FIXED_SCALAR_OPERAND_TYPE_LIST

#define UNSIGNED_FIXED_SCALAR_OPERAND_TYPE_LIST ( V)
Value:
V(Flag8, OperandTypeInfo::kFixedUnsignedByte) \
V(Flag16, OperandTypeInfo::kFixedUnsignedShort) \
V(IntrinsicId, OperandTypeInfo::kFixedUnsignedByte) \
V(RuntimeId, OperandTypeInfo::kFixedUnsignedShort) \
V(NativeContextIndex, OperandTypeInfo::kFixedUnsignedByte)

Definition at line 36 of file bytecode-operands.h.

◆ UNSIGNED_SCALABLE_SCALAR_OPERAND_TYPE_LIST

#define UNSIGNED_SCALABLE_SCALAR_OPERAND_TYPE_LIST ( V)
Value:
V(Idx, OperandTypeInfo::kScalableUnsignedByte) \
V(UImm, OperandTypeInfo::kScalableUnsignedByte) \
V(RegCount, OperandTypeInfo::kScalableUnsignedByte)

Definition at line 31 of file bytecode-operands.h.