LCOV - code coverage report
Current view: top level - src - machine-type.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 26 37 70.3 %
Date: 2017-04-26 Functions: 4 4 100.0 %

          Line data    Source code
       1             : // Copyright 2014 the V8 project authors. All rights reserved.
       2             : // Use of this source code is governed by a BSD-style license that can be
       3             : // found in the LICENSE file.
       4             : 
       5             : #include "src/machine-type.h"
       6             : #include "src/ostreams.h"
       7             : 
       8             : namespace v8 {
       9             : namespace internal {
      10             : 
      11      799953 : std::ostream& operator<<(std::ostream& os, MachineRepresentation rep) {
      12     1263685 :   return os << MachineReprToString(rep);
      13             : }
      14             : 
      15     1263685 : const char* MachineReprToString(MachineRepresentation rep) {
      16     1263685 :   switch (rep) {
      17             :     case MachineRepresentation::kNone:
      18             :       return "kMachNone";
      19             :     case MachineRepresentation::kBit:
      20          67 :       return "kRepBit";
      21             :     case MachineRepresentation::kWord8:
      22      138415 :       return "kRepWord8";
      23             :     case MachineRepresentation::kWord16:
      24      138415 :       return "kRepWord16";
      25             :     case MachineRepresentation::kWord32:
      26      392080 :       return "kRepWord32";
      27             :     case MachineRepresentation::kWord64:
      28      363883 :       return "kRepWord64";
      29             :     case MachineRepresentation::kFloat32:
      30       82051 :       return "kRepFloat32";
      31             :     case MachineRepresentation::kFloat64:
      32       76927 :       return "kRepFloat64";
      33             :     case MachineRepresentation::kSimd128:
      34           0 :       return "kRepSimd128";
      35             :     case MachineRepresentation::kSimd1x4:
      36           0 :       return "kRepSimd1x4";
      37             :     case MachineRepresentation::kSimd1x8:
      38           0 :       return "kRepSimd1x8";
      39             :     case MachineRepresentation::kSimd1x16:
      40           0 :       return "kRepSimd1x16";
      41             :     case MachineRepresentation::kTaggedSigned:
      42           0 :       return "kRepTaggedSigned";
      43             :     case MachineRepresentation::kTaggedPointer:
      44           0 :       return "kRepTaggedPointer";
      45             :     case MachineRepresentation::kTagged:
      46       71847 :       return "kRepTagged";
      47             :   }
      48           0 :   UNREACHABLE();
      49             :   return nullptr;
      50             : }
      51             : 
      52      438112 : std::ostream& operator<<(std::ostream& os, MachineSemantic type) {
      53      438112 :   switch (type) {
      54             :     case MachineSemantic::kNone:
      55           0 :       return os << "kMachNone";
      56             :     case MachineSemantic::kBool:
      57           0 :       return os << "kTypeBool";
      58             :     case MachineSemantic::kInt32:
      59      146042 :       return os << "kTypeInt32";
      60             :     case MachineSemantic::kUint32:
      61      143472 :       return os << "kTypeUint32";
      62             :     case MachineSemantic::kInt64:
      63       30744 :       return os << "kTypeInt64";
      64             :     case MachineSemantic::kUint64:
      65       30744 :       return os << "kTypeUint64";
      66             :     case MachineSemantic::kNumber:
      67       56364 :       return os << "kTypeNumber";
      68             :     case MachineSemantic::kAny:
      69       30746 :       return os << "kTypeAny";
      70             :   }
      71           0 :   UNREACHABLE();
      72             :   return os;
      73             : }
      74             : 
      75             : 
      76      463732 : std::ostream& operator<<(std::ostream& os, MachineType type) {
      77      463732 :   if (type == MachineType::None()) {
      78             :     return os;
      79      463732 :   } else if (type.representation() == MachineRepresentation::kNone) {
      80           0 :     return os << type.semantic();
      81      463732 :   } else if (type.semantic() == MachineSemantic::kNone) {
      82       25620 :     return os << type.representation();
      83             :   } else {
      84      438112 :     return os << type.representation() << "|" << type.semantic();
      85             :   }
      86             :   return os;
      87             : }
      88             : 
      89             : }  // namespace internal
      90             : }  // namespace v8

Generated by: LCOV version 1.10