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
|