| 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 | 
|  |