|  | // Copyright 2014 the V8 project authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "src/compiler/machine-type.h" | 
|  | #include "src/ostreams.h" | 
|  |  | 
|  | namespace v8 { | 
|  | namespace internal { | 
|  | namespace compiler { | 
|  |  | 
|  | #define PRINT(bit)         \ | 
|  | if (type & bit) {        \ | 
|  | if (before) os << "|"; \ | 
|  | os << #bit;            \ | 
|  | before = true;         \ | 
|  | } | 
|  |  | 
|  |  | 
|  | 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); | 
|  | return os; | 
|  | } | 
|  |  | 
|  |  | 
|  | #undef PRINT | 
|  |  | 
|  | }  // namespace compiler | 
|  | }  // namespace internal | 
|  | }  // namespace v8 |