LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/ARM - ARMGenRegisterBank.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 3 3 100.0 %
Date: 2018-10-20 13:21:21 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* Register Bank Source Fragments                                             *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : #ifdef GET_REGBANK_DECLARATIONS
      10             : #undef GET_REGBANK_DECLARATIONS
      11             : namespace llvm {
      12             : namespace ARM {
      13             : enum {
      14             :   FPRRegBankID,
      15             :   GPRRegBankID,
      16             :   NumRegisterBanks,
      17             : };
      18             : } // end namespace ARM
      19             : } // end namespace llvm
      20             : #endif // GET_REGBANK_DECLARATIONS
      21             : 
      22             : #ifdef GET_TARGET_REGBANK_CLASS
      23             : #undef GET_TARGET_REGBANK_CLASS
      24             : private:
      25             :   static RegisterBank *RegBanks[];
      26             : 
      27             : protected:
      28             :   ARMGenRegisterBankInfo();
      29             : 
      30             : #endif // GET_TARGET_REGBANK_CLASS
      31             : 
      32             : #ifdef GET_TARGET_REGBANK_IMPL
      33             : #undef GET_TARGET_REGBANK_IMPL
      34             : namespace llvm {
      35             : namespace ARM {
      36             : const uint32_t FPRRegBankCoverageData[] = {
      37             :     // 0-31
      38             :     (1u << (ARM::HPRRegClassID - 0)) |
      39             :     (1u << (ARM::SPRRegClassID - 0)) |
      40             :     (1u << (ARM::SPR_8RegClassID - 0)) |
      41             :     (1u << (ARM::DPRRegClassID - 0)) |
      42             :     (1u << (ARM::DPR_VFP2RegClassID - 0)) |
      43             :     (1u << (ARM::DPR_8RegClassID - 0)) |
      44             :     0,
      45             :     // 32-63
      46             :     (1u << (ARM::QPRRegClassID - 32)) |
      47             :     (1u << (ARM::QPR_VFP2RegClassID - 32)) |
      48             :     (1u << (ARM::QPR_8RegClassID - 32)) |
      49             :     0,
      50             :     // 64-95
      51             :     0,
      52             :     // 96-127
      53             :     0,
      54             : };
      55             : const uint32_t GPRRegBankCoverageData[] = {
      56             :     // 0-31
      57             :     (1u << (ARM::GPRRegClassID - 0)) |
      58             :     (1u << (ARM::GPRnopcRegClassID - 0)) |
      59             :     (1u << (ARM::rGPRRegClassID - 0)) |
      60             :     (1u << (ARM::tGPRRegClassID - 0)) |
      61             :     (1u << (ARM::tGPR_and_tcGPRRegClassID - 0)) |
      62             :     (1u << (ARM::hGPR_and_rGPRRegClassID - 0)) |
      63             :     (1u << (ARM::hGPR_and_tcGPRRegClassID - 0)) |
      64             :     (1u << (ARM::tcGPRRegClassID - 0)) |
      65             :     (1u << (ARM::GPRnopc_and_hGPRRegClassID - 0)) |
      66             :     (1u << (ARM::GPRspRegClassID - 0)) |
      67             :     (1u << (ARM::tGPRwithpcRegClassID - 0)) |
      68             :     (1u << (ARM::hGPR_and_tGPRwithpcRegClassID - 0)) |
      69             :     (1u << (ARM::hGPRRegClassID - 0)) |
      70             :     (1u << (ARM::GPRwithAPSRRegClassID - 0)) |
      71             :     0,
      72             :     // 32-63
      73             :     0,
      74             :     // 64-95
      75             :     0,
      76             :     // 96-127
      77             :     0,
      78             : };
      79             : 
      80             : RegisterBank FPRRegBank(/* ID */ ARM::FPRRegBankID, /* Name */ "FPRB", /* Size */ 128, /* CoveredRegClasses */ FPRRegBankCoverageData, /* NumRegClasses */ 103);
      81             : RegisterBank GPRRegBank(/* ID */ ARM::GPRRegBankID, /* Name */ "GPRB", /* Size */ 32, /* CoveredRegClasses */ GPRRegBankCoverageData, /* NumRegClasses */ 103);
      82             : } // end namespace ARM
      83             : 
      84             : RegisterBank *ARMGenRegisterBankInfo::RegBanks[] = {
      85             :     &ARM::FPRRegBank,
      86             :     &ARM::GPRRegBank,
      87             : };
      88             : 
      89        5050 : ARMGenRegisterBankInfo::ARMGenRegisterBankInfo()
      90        5050 :     : RegisterBankInfo(RegBanks, ARM::NumRegisterBanks) {
      91             :   // Assert that RegBank indices match their ID's
      92             : #ifndef NDEBUG
      93             :   unsigned Index = 0;
      94             :   for (const auto &RB : RegBanks)
      95             :     assert(Index++ == RB->getID() && "Index != ID");
      96             : #endif // NDEBUG
      97        5050 : }
      98             : } // end namespace llvm
      99             : #endif // GET_TARGET_REGBANK_IMPL

Generated by: LCOV version 1.13