#ifndef V8_INTERPRETER_BYTECODE_OPERANDS_H_
#define V8_INTERPRETER_BYTECODE_OPERANDS_H_
#include "src/base/bounds.h"
#include "src/common/globals.h"
namespace v8 {
namespace internal {
namespace interpreter {
#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) …
enum class OperandScale : uint8_t { … };
enum class OperandSize : uint8_t { … };
#define OPERAND_TYPE_INFO_LIST(V) …
enum class OperandTypeInfo : uint8_t { … };
enum class OperandType : uint8_t { … };
enum class ImplicitRegisterUse : uint8_t { … };
constexpr inline ImplicitRegisterUse operator&(ImplicitRegisterUse lhs,
ImplicitRegisterUse rhs) { … }
constexpr inline ImplicitRegisterUse operator|(ImplicitRegisterUse lhs,
ImplicitRegisterUse rhs) { … }
V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
const ImplicitRegisterUse& use);
V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
const OperandScale& operand_scale);
V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
const OperandSize& operand_size);
V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
const OperandType& operand_type);
class BytecodeOperands : public AllStatic { … };
}
}
}
#endif