1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* MC Register Information *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9namespace llvm {
10
11extern const int16_t NVPTXRegDiffLists[] = {
12 /* 0 */ 0,
13};
14
15extern const LaneBitmask NVPTXLaneMaskLists[] = {
16 /* 0 */ LaneBitmask(0xFFFFFFFFFFFFFFFF),
17};
18
19extern const uint16_t NVPTXSubRegIdxLists[] = {
20 /* 0 */
21 /* dummy */ 0
22};
23
24
25#ifdef __GNUC__
26#pragma GCC diagnostic push
27#pragma GCC diagnostic ignored "-Woverlength-strings"
28#endif
29extern const char NVPTXRegStrings[] = {
30 /* 0 */ "ENVREG10\000"
31 /* 9 */ "ENVREG20\000"
32 /* 18 */ "ENVREG30\000"
33 /* 27 */ "ENVREG0\000"
34 /* 35 */ "RL0\000"
35 /* 39 */ "P0\000"
36 /* 42 */ "RQ0\000"
37 /* 46 */ "R0\000"
38 /* 49 */ "RS0\000"
39 /* 53 */ "ENVREG11\000"
40 /* 62 */ "ENVREG21\000"
41 /* 71 */ "ENVREG31\000"
42 /* 80 */ "ENVREG1\000"
43 /* 88 */ "RL1\000"
44 /* 92 */ "P1\000"
45 /* 95 */ "RQ1\000"
46 /* 99 */ "R1\000"
47 /* 102 */ "RS1\000"
48 /* 106 */ "ENVREG12\000"
49 /* 115 */ "ENVREG22\000"
50 /* 124 */ "VRFrame32\000"
51 /* 134 */ "VRFrameLocal32\000"
52 /* 149 */ "ENVREG2\000"
53 /* 157 */ "RL2\000"
54 /* 161 */ "P2\000"
55 /* 164 */ "RQ2\000"
56 /* 168 */ "R2\000"
57 /* 171 */ "RS2\000"
58 /* 175 */ "ENVREG13\000"
59 /* 184 */ "ENVREG23\000"
60 /* 193 */ "ENVREG3\000"
61 /* 201 */ "RL3\000"
62 /* 205 */ "P3\000"
63 /* 208 */ "RQ3\000"
64 /* 212 */ "R3\000"
65 /* 215 */ "RS3\000"
66 /* 219 */ "ENVREG14\000"
67 /* 228 */ "ENVREG24\000"
68 /* 237 */ "VRFrame64\000"
69 /* 247 */ "VRFrameLocal64\000"
70 /* 262 */ "ENVREG4\000"
71 /* 270 */ "RL4\000"
72 /* 274 */ "P4\000"
73 /* 277 */ "RQ4\000"
74 /* 281 */ "R4\000"
75 /* 284 */ "RS4\000"
76 /* 288 */ "ENVREG15\000"
77 /* 297 */ "ENVREG25\000"
78 /* 306 */ "ENVREG5\000"
79 /* 314 */ "ENVREG16\000"
80 /* 323 */ "ENVREG26\000"
81 /* 332 */ "ENVREG6\000"
82 /* 340 */ "ENVREG17\000"
83 /* 349 */ "ENVREG27\000"
84 /* 358 */ "ENVREG7\000"
85 /* 366 */ "ENVREG18\000"
86 /* 375 */ "ENVREG28\000"
87 /* 384 */ "ENVREG8\000"
88 /* 392 */ "ENVREG19\000"
89 /* 401 */ "ENVREG29\000"
90 /* 410 */ "ENVREG9\000"
91 /* 418 */ "VRDepot\000"
92};
93#ifdef __GNUC__
94#pragma GCC diagnostic pop
95#endif
96
97extern const MCRegisterDesc NVPTXRegDesc[] = { // Descriptors
98 { .Name: 8, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 0, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
99 { .Name: 418, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 0, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
100 { .Name: 27, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 1, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
101 { .Name: 80, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 2, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
102 { .Name: 149, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 3, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
103 { .Name: 193, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 4, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
104 { .Name: 262, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 5, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
105 { .Name: 306, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 6, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
106 { .Name: 332, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 7, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
107 { .Name: 358, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 8, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
108 { .Name: 384, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 9, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
109 { .Name: 410, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 10, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
110 { .Name: 0, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 11, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
111 { .Name: 53, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 12, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
112 { .Name: 106, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 13, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
113 { .Name: 175, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 14, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
114 { .Name: 219, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 15, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
115 { .Name: 288, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 16, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
116 { .Name: 314, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 17, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
117 { .Name: 340, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 18, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
118 { .Name: 366, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 19, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
119 { .Name: 392, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 20, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
120 { .Name: 9, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 21, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
121 { .Name: 62, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 22, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
122 { .Name: 115, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 23, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
123 { .Name: 184, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 24, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
124 { .Name: 228, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 25, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
125 { .Name: 297, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 26, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
126 { .Name: 323, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 27, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
127 { .Name: 349, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 28, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
128 { .Name: 375, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 29, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
129 { .Name: 401, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 30, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
130 { .Name: 18, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 31, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
131 { .Name: 71, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 32, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
132 { .Name: 39, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 33, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
133 { .Name: 92, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 34, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
134 { .Name: 161, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 35, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
135 { .Name: 205, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 36, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
136 { .Name: 274, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 37, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
137 { .Name: 46, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 38, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
138 { .Name: 99, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 39, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
139 { .Name: 168, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 40, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
140 { .Name: 212, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 41, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
141 { .Name: 281, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 42, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
142 { .Name: 35, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 43, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
143 { .Name: 88, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 44, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
144 { .Name: 157, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 45, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
145 { .Name: 201, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 46, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
146 { .Name: 270, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 47, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
147 { .Name: 42, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 48, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
148 { .Name: 95, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 49, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
149 { .Name: 164, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 50, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
150 { .Name: 208, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 51, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
151 { .Name: 277, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 52, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
152 { .Name: 49, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 53, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
153 { .Name: 102, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 54, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
154 { .Name: 171, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 55, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
155 { .Name: 215, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 56, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
156 { .Name: 284, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 57, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
157 { .Name: 124, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 58, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
158 { .Name: 237, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 59, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
159 { .Name: 134, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 60, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
160 { .Name: 247, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 61, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
161};
162
163extern const MCPhysReg NVPTXRegUnitRoots[][2] = {
164 { NVPTX::VRDepot },
165 { NVPTX::ENVREG0 },
166 { NVPTX::ENVREG1 },
167 { NVPTX::ENVREG2 },
168 { NVPTX::ENVREG3 },
169 { NVPTX::ENVREG4 },
170 { NVPTX::ENVREG5 },
171 { NVPTX::ENVREG6 },
172 { NVPTX::ENVREG7 },
173 { NVPTX::ENVREG8 },
174 { NVPTX::ENVREG9 },
175 { NVPTX::ENVREG10 },
176 { NVPTX::ENVREG11 },
177 { NVPTX::ENVREG12 },
178 { NVPTX::ENVREG13 },
179 { NVPTX::ENVREG14 },
180 { NVPTX::ENVREG15 },
181 { NVPTX::ENVREG16 },
182 { NVPTX::ENVREG17 },
183 { NVPTX::ENVREG18 },
184 { NVPTX::ENVREG19 },
185 { NVPTX::ENVREG20 },
186 { NVPTX::ENVREG21 },
187 { NVPTX::ENVREG22 },
188 { NVPTX::ENVREG23 },
189 { NVPTX::ENVREG24 },
190 { NVPTX::ENVREG25 },
191 { NVPTX::ENVREG26 },
192 { NVPTX::ENVREG27 },
193 { NVPTX::ENVREG28 },
194 { NVPTX::ENVREG29 },
195 { NVPTX::ENVREG30 },
196 { NVPTX::ENVREG31 },
197 { NVPTX::P0 },
198 { NVPTX::P1 },
199 { NVPTX::P2 },
200 { NVPTX::P3 },
201 { NVPTX::P4 },
202 { NVPTX::R0 },
203 { NVPTX::R1 },
204 { NVPTX::R2 },
205 { NVPTX::R3 },
206 { NVPTX::R4 },
207 { NVPTX::RL0 },
208 { NVPTX::RL1 },
209 { NVPTX::RL2 },
210 { NVPTX::RL3 },
211 { NVPTX::RL4 },
212 { NVPTX::RQ0 },
213 { NVPTX::RQ1 },
214 { NVPTX::RQ2 },
215 { NVPTX::RQ3 },
216 { NVPTX::RQ4 },
217 { NVPTX::RS0 },
218 { NVPTX::RS1 },
219 { NVPTX::RS2 },
220 { NVPTX::RS3 },
221 { NVPTX::RS4 },
222 { NVPTX::VRFrame32 },
223 { NVPTX::VRFrame64 },
224 { NVPTX::VRFrameLocal32 },
225 { NVPTX::VRFrameLocal64 },
226};
227
228// Register classes...
229
230#ifdef __GNUC__
231#pragma GCC diagnostic push
232#pragma GCC diagnostic ignored "-Woverlength-strings"
233#endif
234extern const char NVPTXRegClassStrings[] = {
235 /* 0 */ "B1\000"
236 /* 3 */ "B32\000"
237 /* 7 */ "B64\000"
238 /* 11 */ "B16\000"
239 /* 15 */ "B128\000"
240 /* 20 */ "B32_and_SpecialRegs\000"
241};
242#ifdef __GNUC__
243#pragma GCC diagnostic pop
244#endif
245
246using NVPTXRegisterClassStorage = MCRegisterClassStorage<7, 66, 52, 7, 1, 2>;
247extern const MCRegisterClassStorage<7, 66, 52, 7, 1, 2> NVPTXMCRegisterClassStorage = {
248 .Classes: {
249 {
250 offsetof(NVPTXRegisterClassStorage, Regs[0]) - 0 * sizeof(MCRegisterClass),
251 offsetof(NVPTXRegisterClassStorage, BitSets[0]) - 0 * sizeof(MCRegisterClass),
252 .NameIdx: 0,
253 .RegSizeInBits: 1,
254 .RegsSize: 5,
255 .RegSetSize: 5,
256 .ID: NVPTX::B1RegClassID,
257 .CopyCost: 1, /* CopyCost */
258 .Allocatable: true, /* Allocatable */
259 .BaseClass: false,
260 offsetof(NVPTXRegisterClassStorage, SubClassMasks[0]) - 0 * sizeof(MCRegisterClass),
261 offsetof(NVPTXRegisterClassStorage, SuperRegIdxSeqs[0]) - 0 * sizeof(MCRegisterClass),
262 .LaneMask: LaneBitmask(0x0000000000000001),
263 .AllocationPriority: 0,
264 .GlobalPriority: false,
265 .TSFlags: 0x00, /* TSFlags */
266 .SpillStackID: 0, /* SpillStackID */
267 .HasDisjunctSubRegs: false, /* HasDisjunctSubRegs */
268 .CoveredBySubRegs: false, /* CoveredBySubRegs */
269 offsetof(NVPTXRegisterClassStorage, SuperClasses[0]) - 0 * sizeof(MCRegisterClass),
270 .SuperClassesSize: 0
271 },
272 {
273 offsetof(NVPTXRegisterClassStorage, Regs[5]) - 1 * sizeof(MCRegisterClass),
274 offsetof(NVPTXRegisterClassStorage, BitSets[5]) - 1 * sizeof(MCRegisterClass),
275 .NameIdx: 11,
276 .RegSizeInBits: 16,
277 .RegsSize: 5,
278 .RegSetSize: 8,
279 .ID: NVPTX::B16RegClassID,
280 .CopyCost: 1, /* CopyCost */
281 .Allocatable: true, /* Allocatable */
282 .BaseClass: false,
283 offsetof(NVPTXRegisterClassStorage, SubClassMasks[1]) - 1 * sizeof(MCRegisterClass),
284 offsetof(NVPTXRegisterClassStorage, SuperRegIdxSeqs[0]) - 1 * sizeof(MCRegisterClass),
285 .LaneMask: LaneBitmask(0x0000000000000001),
286 .AllocationPriority: 0,
287 .GlobalPriority: false,
288 .TSFlags: 0x00, /* TSFlags */
289 .SpillStackID: 0, /* SpillStackID */
290 .HasDisjunctSubRegs: false, /* HasDisjunctSubRegs */
291 .CoveredBySubRegs: false, /* CoveredBySubRegs */
292 offsetof(NVPTXRegisterClassStorage, SuperClasses[0]) - 1 * sizeof(MCRegisterClass),
293 .SuperClassesSize: 0
294 },
295 {
296 offsetof(NVPTXRegisterClassStorage, Regs[10]) - 2 * sizeof(MCRegisterClass),
297 offsetof(NVPTXRegisterClassStorage, BitSets[13]) - 2 * sizeof(MCRegisterClass),
298 .NameIdx: 28,
299 .RegSizeInBits: 32,
300 .RegsSize: 35,
301 .RegSetSize: 8,
302 .ID: NVPTX::SpecialRegsRegClassID,
303 .CopyCost: 1, /* CopyCost */
304 .Allocatable: true, /* Allocatable */
305 .BaseClass: false,
306 offsetof(NVPTXRegisterClassStorage, SubClassMasks[2]) - 2 * sizeof(MCRegisterClass),
307 offsetof(NVPTXRegisterClassStorage, SuperRegIdxSeqs[0]) - 2 * sizeof(MCRegisterClass),
308 .LaneMask: LaneBitmask(0x0000000000000001),
309 .AllocationPriority: 0,
310 .GlobalPriority: false,
311 .TSFlags: 0x00, /* TSFlags */
312 .SpillStackID: 0, /* SpillStackID */
313 .HasDisjunctSubRegs: false, /* HasDisjunctSubRegs */
314 .CoveredBySubRegs: false, /* CoveredBySubRegs */
315 offsetof(NVPTXRegisterClassStorage, SuperClasses[0]) - 2 * sizeof(MCRegisterClass),
316 .SuperClassesSize: 0
317 },
318 {
319 offsetof(NVPTXRegisterClassStorage, Regs[45]) - 3 * sizeof(MCRegisterClass),
320 offsetof(NVPTXRegisterClassStorage, BitSets[21]) - 3 * sizeof(MCRegisterClass),
321 .NameIdx: 3,
322 .RegSizeInBits: 32,
323 .RegsSize: 7,
324 .RegSetSize: 8,
325 .ID: NVPTX::B32RegClassID,
326 .CopyCost: 1, /* CopyCost */
327 .Allocatable: true, /* Allocatable */
328 .BaseClass: false,
329 offsetof(NVPTXRegisterClassStorage, SubClassMasks[3]) - 3 * sizeof(MCRegisterClass),
330 offsetof(NVPTXRegisterClassStorage, SuperRegIdxSeqs[0]) - 3 * sizeof(MCRegisterClass),
331 .LaneMask: LaneBitmask(0x0000000000000001),
332 .AllocationPriority: 0,
333 .GlobalPriority: false,
334 .TSFlags: 0x00, /* TSFlags */
335 .SpillStackID: 0, /* SpillStackID */
336 .HasDisjunctSubRegs: false, /* HasDisjunctSubRegs */
337 .CoveredBySubRegs: false, /* CoveredBySubRegs */
338 offsetof(NVPTXRegisterClassStorage, SuperClasses[0]) - 3 * sizeof(MCRegisterClass),
339 .SuperClassesSize: 0
340 },
341 {
342 offsetof(NVPTXRegisterClassStorage, Regs[52]) - 4 * sizeof(MCRegisterClass),
343 offsetof(NVPTXRegisterClassStorage, BitSets[29]) - 4 * sizeof(MCRegisterClass),
344 .NameIdx: 20,
345 .RegSizeInBits: 32,
346 .RegsSize: 2,
347 .RegSetSize: 8,
348 .ID: NVPTX::B32_and_SpecialRegsRegClassID,
349 .CopyCost: 1, /* CopyCost */
350 .Allocatable: true, /* Allocatable */
351 .BaseClass: false,
352 offsetof(NVPTXRegisterClassStorage, SubClassMasks[4]) - 4 * sizeof(MCRegisterClass),
353 offsetof(NVPTXRegisterClassStorage, SuperRegIdxSeqs[0]) - 4 * sizeof(MCRegisterClass),
354 .LaneMask: LaneBitmask(0x0000000000000001),
355 .AllocationPriority: 0,
356 .GlobalPriority: false,
357 .TSFlags: 0x00, /* TSFlags */
358 .SpillStackID: 0, /* SpillStackID */
359 .HasDisjunctSubRegs: false, /* HasDisjunctSubRegs */
360 .CoveredBySubRegs: false, /* CoveredBySubRegs */
361 offsetof(NVPTXRegisterClassStorage, SuperClasses[0]) - 4 * sizeof(MCRegisterClass),
362 .SuperClassesSize: 2
363 },
364 {
365 offsetof(NVPTXRegisterClassStorage, Regs[54]) - 5 * sizeof(MCRegisterClass),
366 offsetof(NVPTXRegisterClassStorage, BitSets[37]) - 5 * sizeof(MCRegisterClass),
367 .NameIdx: 7,
368 .RegSizeInBits: 64,
369 .RegsSize: 7,
370 .RegSetSize: 8,
371 .ID: NVPTX::B64RegClassID,
372 .CopyCost: 1, /* CopyCost */
373 .Allocatable: true, /* Allocatable */
374 .BaseClass: false,
375 offsetof(NVPTXRegisterClassStorage, SubClassMasks[5]) - 5 * sizeof(MCRegisterClass),
376 offsetof(NVPTXRegisterClassStorage, SuperRegIdxSeqs[0]) - 5 * sizeof(MCRegisterClass),
377 .LaneMask: LaneBitmask(0x0000000000000001),
378 .AllocationPriority: 0,
379 .GlobalPriority: false,
380 .TSFlags: 0x00, /* TSFlags */
381 .SpillStackID: 0, /* SpillStackID */
382 .HasDisjunctSubRegs: false, /* HasDisjunctSubRegs */
383 .CoveredBySubRegs: false, /* CoveredBySubRegs */
384 offsetof(NVPTXRegisterClassStorage, SuperClasses[2]) - 5 * sizeof(MCRegisterClass),
385 .SuperClassesSize: 0
386 },
387 {
388 offsetof(NVPTXRegisterClassStorage, Regs[61]) - 6 * sizeof(MCRegisterClass),
389 offsetof(NVPTXRegisterClassStorage, BitSets[45]) - 6 * sizeof(MCRegisterClass),
390 .NameIdx: 15,
391 .RegSizeInBits: 128,
392 .RegsSize: 5,
393 .RegSetSize: 7,
394 .ID: NVPTX::B128RegClassID,
395 .CopyCost: 1, /* CopyCost */
396 .Allocatable: true, /* Allocatable */
397 .BaseClass: false,
398 offsetof(NVPTXRegisterClassStorage, SubClassMasks[6]) - 6 * sizeof(MCRegisterClass),
399 offsetof(NVPTXRegisterClassStorage, SuperRegIdxSeqs[0]) - 6 * sizeof(MCRegisterClass),
400 .LaneMask: LaneBitmask(0x0000000000000001),
401 .AllocationPriority: 0,
402 .GlobalPriority: false,
403 .TSFlags: 0x00, /* TSFlags */
404 .SpillStackID: 0, /* SpillStackID */
405 .HasDisjunctSubRegs: false, /* HasDisjunctSubRegs */
406 .CoveredBySubRegs: false, /* CoveredBySubRegs */
407 offsetof(NVPTXRegisterClassStorage, SuperClasses[2]) - 6 * sizeof(MCRegisterClass),
408 .SuperClassesSize: 0
409 },
410 },
411 .Regs: {
412 /* 0 */ NVPTX::P0, NVPTX::P1, NVPTX::P2, NVPTX::P3, NVPTX::P4,
413 /* 5 */ NVPTX::RS0, NVPTX::RS1, NVPTX::RS2, NVPTX::RS3, NVPTX::RS4,
414 /* 10 */ NVPTX::VRFrame32, NVPTX::VRFrameLocal32, NVPTX::VRDepot, NVPTX::ENVREG0, NVPTX::ENVREG1, NVPTX::ENVREG2, NVPTX::ENVREG3, NVPTX::ENVREG4, NVPTX::ENVREG5, NVPTX::ENVREG6, NVPTX::ENVREG7, NVPTX::ENVREG8, NVPTX::ENVREG9, NVPTX::ENVREG10, NVPTX::ENVREG11, NVPTX::ENVREG12, NVPTX::ENVREG13, NVPTX::ENVREG14, NVPTX::ENVREG15, NVPTX::ENVREG16, NVPTX::ENVREG17, NVPTX::ENVREG18, NVPTX::ENVREG19, NVPTX::ENVREG20, NVPTX::ENVREG21, NVPTX::ENVREG22, NVPTX::ENVREG23, NVPTX::ENVREG24, NVPTX::ENVREG25, NVPTX::ENVREG26, NVPTX::ENVREG27, NVPTX::ENVREG28, NVPTX::ENVREG29, NVPTX::ENVREG30, NVPTX::ENVREG31,
415 /* 45 */ NVPTX::R0, NVPTX::R1, NVPTX::R2, NVPTX::R3, NVPTX::R4, NVPTX::VRFrame32, NVPTX::VRFrameLocal32,
416 /* 52 */ NVPTX::VRFrame32, NVPTX::VRFrameLocal32,
417 /* 54 */ NVPTX::RL0, NVPTX::RL1, NVPTX::RL2, NVPTX::RL3, NVPTX::RL4, NVPTX::VRFrame64, NVPTX::VRFrameLocal64,
418 /* 61 */ NVPTX::RQ0, NVPTX::RQ1, NVPTX::RQ2, NVPTX::RQ3, NVPTX::RQ4,
419 },
420 .BitSets: {
421 /* 0 */ 0x00, 0x00, 0x00, 0x00, 0x7c,
422 /* 5 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07,
423 /* 13 */ 0xfe, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x28,
424 /* 21 */ 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x28,
425 /* 29 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28,
426 /* 37 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x50,
427 /* 45 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e,
428 },
429 .SubClassMasks: {
430 // 0 B1
431 0x00000001,
432 // 1 B16
433 0x00000002,
434 // 2 SpecialRegs
435 0x00000014,
436 // 3 B32
437 0x00000018,
438 // 4 B32_and_SpecialRegs
439 0x00000010,
440 // 5 B64
441 0x00000020,
442 // 6 B128
443 0x00000040,
444 },
445 .SuperRegIdxSeqs: {
446 /* 0 */ 0,
447 },
448 .SuperClasses: {
449 /* 0 B1 */
450 /* 0 B16 */
451 /* 0 SpecialRegs */
452 /* 0 B32 */
453 /* 0 B32_and_SpecialRegs */ NVPTX::SpecialRegsRegClassID, NVPTX::B32RegClassID,
454 /* 2 B64 */
455 /* 2 B128 */
456 }
457};
458
459const MCRegisterClass &getNVPTXMCRegisterClass(unsigned RC) {
460 return NVPTXMCRegisterClassStorage.Classes[RC];
461}
462
463extern const uint16_t NVPTXRegEncodingTable[] = {
464 0,
465 0,
466 0,
467 0,
468 0,
469 0,
470 0,
471 0,
472 0,
473 0,
474 0,
475 0,
476 0,
477 0,
478 0,
479 0,
480 0,
481 0,
482 0,
483 0,
484 0,
485 0,
486 0,
487 0,
488 0,
489 0,
490 0,
491 0,
492 0,
493 0,
494 0,
495 0,
496 0,
497 0,
498 0,
499 0,
500 0,
501 0,
502 0,
503 0,
504 0,
505 0,
506 0,
507 0,
508 0,
509 0,
510 0,
511 0,
512 0,
513 0,
514 0,
515 0,
516 0,
517 0,
518 0,
519 0,
520 0,
521 0,
522 0,
523 0,
524 0,
525 0,
526 0,
527};
528static inline void InitNVPTXMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
529 RI->InitMCRegisterInfo(D: NVPTXRegDesc, NR: 63, RA, PC, C: NVPTXMCRegisterClassStorage.Classes, NC: 7, RURoots: NVPTXRegUnitRoots, NRU: 62, DL: NVPTXRegDiffLists, RUMS: NVPTXLaneMaskLists, Strings: NVPTXRegStrings, ClassStrings: NVPTXRegClassStrings, SubIndices: NVPTXSubRegIdxLists, NumIndices: 1,
530RET: NVPTXRegEncodingTable, RUI: nullptr);
531
532}
533
534
535} // namespace llvm
536