• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
11namespace llvm {
12namespace RISCV {
13enum {
14  GPRRegBankID,
15  NumRegisterBanks,
16};
17} // end namespace RISCV
18} // end namespace llvm
19#endif // GET_REGBANK_DECLARATIONS
20
21#ifdef GET_TARGET_REGBANK_CLASS
22#undef GET_TARGET_REGBANK_CLASS
23private:
24  static RegisterBank *RegBanks[];
25
26protected:
27  RISCVGenRegisterBankInfo();
28
29#endif // GET_TARGET_REGBANK_CLASS
30
31#ifdef GET_TARGET_REGBANK_IMPL
32#undef GET_TARGET_REGBANK_IMPL
33namespace llvm {
34namespace RISCV {
35const uint32_t GPRRegBankCoverageData[] = {
36    // 0-31
37    (1u << (RISCV::GPRRegClassID - 0)) |
38    (1u << (RISCV::GPRNoX0RegClassID - 0)) |
39    (1u << (RISCV::GPRNoX0X2RegClassID - 0)) |
40    (1u << (RISCV::GPRTCRegClassID - 0)) |
41    (1u << (RISCV::GPRC_and_GPRTCRegClassID - 0)) |
42    (1u << (RISCV::GPRCRegClassID - 0)) |
43    (1u << (RISCV::SPRegClassID - 0)) |
44    (1u << (RISCV::GPRX0RegClassID - 0)) |
45    0,
46};
47
48RegisterBank GPRRegBank(/* ID */ RISCV::GPRRegBankID, /* Name */ "GPRB", /* Size */ 32, /* CoveredRegClasses */ GPRRegBankCoverageData, /* NumRegClasses */ 12);
49} // end namespace RISCV
50
51RegisterBank *RISCVGenRegisterBankInfo::RegBanks[] = {
52    &RISCV::GPRRegBank,
53};
54
55RISCVGenRegisterBankInfo::RISCVGenRegisterBankInfo()
56    : RegisterBankInfo(RegBanks, RISCV::NumRegisterBanks) {
57  // Assert that RegBank indices match their ID's
58#ifndef NDEBUG
59  unsigned Index = 0;
60  for (const auto &RB : RegBanks)
61    assert(Index++ == RB->getID() && "Index != ID");
62#endif // NDEBUG
63}
64} // end namespace llvm
65#endif // GET_TARGET_REGBANK_IMPL
66