| Index: src/machine-type.cc
|
| diff --git a/src/machine-type.cc b/src/machine-type.cc
|
| index c7dc0b47c8926b03bdd4a14051cdea5323f8326e..1fb886ca5254897f908c85e490318b62dc3e5705 100644
|
| --- a/src/machine-type.cc
|
| +++ b/src/machine-type.cc
|
| @@ -8,37 +8,68 @@
|
| namespace v8 {
|
| namespace internal {
|
|
|
| -#define PRINT(bit) \
|
| - if (type & bit) { \
|
| - if (before) os << "|"; \
|
| - os << #bit; \
|
| - before = true; \
|
| +std::ostream& operator<<(std::ostream& os, MachineRepresentation rep) {
|
| + switch (rep) {
|
| + case MachineRepresentation::kNone:
|
| + return os << "kMachNone";
|
| + case MachineRepresentation::kBit:
|
| + return os << "kRepBit";
|
| + case MachineRepresentation::kWord8:
|
| + return os << "kRepWord8";
|
| + case MachineRepresentation::kWord16:
|
| + return os << "kRepWord16";
|
| + case MachineRepresentation::kWord32:
|
| + return os << "kRepWord32";
|
| + case MachineRepresentation::kWord64:
|
| + return os << "kRepWord64";
|
| + case MachineRepresentation::kFloat32:
|
| + return os << "kRepFloat32";
|
| + case MachineRepresentation::kFloat64:
|
| + return os << "kRepFloat64";
|
| + case MachineRepresentation::kTagged:
|
| + return os << "kRepTagged";
|
| }
|
| + UNREACHABLE();
|
| + return os;
|
| +}
|
|
|
|
|
| -std::ostream& operator<<(std::ostream& os, const MachineType& type) {
|
| - bool before = false;
|
| - PRINT(kRepBit);
|
| - PRINT(kRepWord8);
|
| - PRINT(kRepWord16);
|
| - PRINT(kRepWord32);
|
| - PRINT(kRepWord64);
|
| - PRINT(kRepFloat32);
|
| - PRINT(kRepFloat64);
|
| - PRINT(kRepTagged);
|
| -
|
| - PRINT(kTypeBool);
|
| - PRINT(kTypeInt32);
|
| - PRINT(kTypeUint32);
|
| - PRINT(kTypeInt64);
|
| - PRINT(kTypeUint64);
|
| - PRINT(kTypeNumber);
|
| - PRINT(kTypeAny);
|
| +std::ostream& operator<<(std::ostream& os, MachineSemantic type) {
|
| + switch (type) {
|
| + case MachineSemantic::kNone:
|
| + return os << "kMachNone";
|
| + case MachineSemantic::kBool:
|
| + return os << "kTypeBool";
|
| + case MachineSemantic::kInt32:
|
| + return os << "kTypeInt32";
|
| + case MachineSemantic::kUint32:
|
| + return os << "kTypeUint32";
|
| + case MachineSemantic::kInt64:
|
| + return os << "kTypeInt64";
|
| + case MachineSemantic::kUint64:
|
| + return os << "kTypeUint64";
|
| + case MachineSemantic::kNumber:
|
| + return os << "kTypeNumber";
|
| + case MachineSemantic::kAny:
|
| + return os << "kTypeAny";
|
| + }
|
| + UNREACHABLE();
|
| return os;
|
| }
|
|
|
|
|
| -#undef PRINT
|
| +std::ostream& operator<<(std::ostream& os, MachineType type) {
|
| + if (type == MachineType::None()) {
|
| + return os;
|
| + } else if (type.representation() == MachineRepresentation::kNone) {
|
| + return os << type.semantic();
|
| + } else if (type.semantic() == MachineSemantic::kNone) {
|
| + return os << type.representation();
|
| + } else {
|
| + return os << type.representation() << "|" << type.semantic();
|
| + }
|
| + return os;
|
| +}
|
|
|
| } // namespace internal
|
| } // namespace v8
|
|
|