5 #include "src/interpreter/bytecode-operands.h" 11 namespace interpreter {
15 const char* AccumulatorUseToString(AccumulatorUse accumulator_use) {
16 switch (accumulator_use) {
17 case AccumulatorUse::kNone:
19 case AccumulatorUse::kRead:
21 case AccumulatorUse::kWrite:
23 case AccumulatorUse::kReadWrite:
29 const char* OperandTypeToString(OperandType operand_type) {
30 switch (operand_type) {
31 #define CASE(Name, _) \ 32 case OperandType::k##Name: \ 34 OPERAND_TYPE_LIST(CASE)
40 const char* OperandScaleToString(OperandScale operand_scale) {
41 switch (operand_scale) {
42 #define CASE(Name, _) \ 43 case OperandScale::k##Name: \ 45 OPERAND_SCALE_LIST(CASE)
51 const char* OperandSizeToString(OperandSize operand_size) {
52 switch (operand_size) {
53 case OperandSize::kNone:
55 case OperandSize::kByte:
57 case OperandSize::kShort:
59 case OperandSize::kQuad:
67 std::ostream& operator<<(std::ostream& os,
const AccumulatorUse& use) {
68 return os << AccumulatorUseToString(use);
71 std::ostream& operator<<(std::ostream& os,
const OperandSize& operand_size) {
72 return os << OperandSizeToString(operand_size);
75 std::ostream& operator<<(std::ostream& os,
const OperandScale& operand_scale) {
76 return os << OperandScaleToString(operand_scale);
79 std::ostream& operator<<(std::ostream& os,
const OperandType& operand_type) {
80 return os << OperandTypeToString(operand_type);