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 SPIRVRegDiffLists[] = {
12 /* 0 */ 0,
13};
14
15extern const LaneBitmask SPIRVLaneMaskLists[] = {
16 /* 0 */ LaneBitmask(0xFFFFFFFFFFFFFFFF),
17};
18
19extern const uint16_t SPIRVSubRegIdxLists[] = {
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 SPIRVRegStrings[] = {
30 /* 0 */ "vfID0\000"
31 /* 6 */ "vpID0\000"
32 /* 12 */ "vID0\000"
33 /* 17 */ "TYPE0\000"
34};
35#ifdef __GNUC__
36#pragma GCC diagnostic pop
37#endif
38
39extern const MCRegisterDesc SPIRVRegDesc[] = { // Descriptors
40 { .Name: 5, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 0, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
41 { .Name: 2, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 0, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
42 { .Name: 17, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 1, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
43 { .Name: 1, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 2, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
44 { .Name: 7, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 3, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
45 { .Name: 12, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 4, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
46 { .Name: 0, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 5, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
47 { .Name: 6, .SubRegs: 0, .SuperRegs: 0, .SubRegIndices: 0, .RegUnits: 6, .RegUnitLaneMasks: 0, .IsConstant: 0, .IsArtificial: 0 },
48};
49
50extern const MCPhysReg SPIRVRegUnitRoots[][2] = {
51 { SPIRV::ID0 },
52 { SPIRV::TYPE0 },
53 { SPIRV::fID0 },
54 { SPIRV::pID0 },
55 { SPIRV::vID0 },
56 { SPIRV::vfID0 },
57 { SPIRV::vpID0 },
58};
59
60namespace { // Register classes...
61 // ANY Register Class...
62 const MCPhysReg ANY[] = {
63 SPIRV::TYPE0, SPIRV::ID0, SPIRV::fID0, SPIRV::pID0, SPIRV::vID0, SPIRV::vfID0, SPIRV::vpID0,
64 };
65
66 // ANY Bit set.
67 const uint8_t ANYBits[] = {
68 0xfe,
69 };
70
71 // ID Register Class...
72 const MCPhysReg ID[] = {
73 SPIRV::ID0, SPIRV::fID0, SPIRV::pID0, SPIRV::vID0, SPIRV::vfID0, SPIRV::vpID0,
74 };
75
76 // ID Bit set.
77 const uint8_t IDBits[] = {
78 0xfa,
79 };
80
81 // TYPE Register Class...
82 const MCPhysReg TYPE[] = {
83 SPIRV::TYPE0,
84 };
85
86 // TYPE Bit set.
87 const uint8_t TYPEBits[] = {
88 0x04,
89 };
90
91 // fID Register Class...
92 const MCPhysReg fID[] = {
93 SPIRV::fID0,
94 };
95
96 // fID Bit set.
97 const uint8_t fIDBits[] = {
98 0x08,
99 };
100
101 // iID Register Class...
102 const MCPhysReg iID[] = {
103 SPIRV::ID0,
104 };
105
106 // iID Bit set.
107 const uint8_t iIDBits[] = {
108 0x02,
109 };
110
111 // pID Register Class...
112 const MCPhysReg pID[] = {
113 SPIRV::pID0,
114 };
115
116 // pID Bit set.
117 const uint8_t pIDBits[] = {
118 0x10,
119 };
120
121 // vpID Register Class...
122 const MCPhysReg vpID[] = {
123 SPIRV::vpID0,
124 };
125
126 // vpID Bit set.
127 const uint8_t vpIDBits[] = {
128 0x80,
129 };
130
131 // vID Register Class...
132 const MCPhysReg vID[] = {
133 SPIRV::vID0,
134 };
135
136 // vID Bit set.
137 const uint8_t vIDBits[] = {
138 0x20,
139 };
140
141 // vfID Register Class...
142 const MCPhysReg vfID[] = {
143 SPIRV::vfID0,
144 };
145
146 // vfID Bit set.
147 const uint8_t vfIDBits[] = {
148 0x40,
149 };
150
151} // end anonymous namespace
152
153
154#ifdef __GNUC__
155#pragma GCC diagnostic push
156#pragma GCC diagnostic ignored "-Woverlength-strings"
157#endif
158extern const char SPIRVRegClassStrings[] = {
159 /* 0 */ "vfID\000"
160 /* 5 */ "iID\000"
161 /* 9 */ "vpID\000"
162 /* 14 */ "vID\000"
163 /* 18 */ "TYPE\000"
164 /* 23 */ "ANY\000"
165};
166#ifdef __GNUC__
167#pragma GCC diagnostic pop
168#endif
169
170extern const MCRegisterClass SPIRVMCRegisterClasses[] = {
171 { .RegsBegin: ANY, .RegSet: ANYBits, .NameIdx: 23, .RegsSize: 7, .RegSetSize: sizeof(ANYBits), .ID: SPIRV::ANYRegClassID, .RegSizeInBits: 64, .CopyCost: 1, .Allocatable: true, .BaseClass: false },
172 { .RegsBegin: ID, .RegSet: IDBits, .NameIdx: 2, .RegsSize: 6, .RegSetSize: sizeof(IDBits), .ID: SPIRV::IDRegClassID, .RegSizeInBits: 64, .CopyCost: 1, .Allocatable: true, .BaseClass: false },
173 { .RegsBegin: TYPE, .RegSet: TYPEBits, .NameIdx: 18, .RegsSize: 1, .RegSetSize: sizeof(TYPEBits), .ID: SPIRV::TYPERegClassID, .RegSizeInBits: 64, .CopyCost: 1, .Allocatable: true, .BaseClass: false },
174 { .RegsBegin: fID, .RegSet: fIDBits, .NameIdx: 1, .RegsSize: 1, .RegSetSize: sizeof(fIDBits), .ID: SPIRV::fIDRegClassID, .RegSizeInBits: 64, .CopyCost: 1, .Allocatable: true, .BaseClass: false },
175 { .RegsBegin: iID, .RegSet: iIDBits, .NameIdx: 5, .RegsSize: 1, .RegSetSize: sizeof(iIDBits), .ID: SPIRV::iIDRegClassID, .RegSizeInBits: 64, .CopyCost: 1, .Allocatable: true, .BaseClass: false },
176 { .RegsBegin: pID, .RegSet: pIDBits, .NameIdx: 10, .RegsSize: 1, .RegSetSize: sizeof(pIDBits), .ID: SPIRV::pIDRegClassID, .RegSizeInBits: 64, .CopyCost: 1, .Allocatable: true, .BaseClass: false },
177 { .RegsBegin: vpID, .RegSet: vpIDBits, .NameIdx: 9, .RegsSize: 1, .RegSetSize: sizeof(vpIDBits), .ID: SPIRV::vpIDRegClassID, .RegSizeInBits: 64, .CopyCost: 1, .Allocatable: true, .BaseClass: false },
178 { .RegsBegin: vID, .RegSet: vIDBits, .NameIdx: 14, .RegsSize: 1, .RegSetSize: sizeof(vIDBits), .ID: SPIRV::vIDRegClassID, .RegSizeInBits: 128, .CopyCost: 1, .Allocatable: true, .BaseClass: false },
179 { .RegsBegin: vfID, .RegSet: vfIDBits, .NameIdx: 0, .RegsSize: 1, .RegSetSize: sizeof(vfIDBits), .ID: SPIRV::vfIDRegClassID, .RegSizeInBits: 128, .CopyCost: 1, .Allocatable: true, .BaseClass: false },
180};
181
182extern const uint16_t SPIRVRegEncodingTable[] = {
183 0,
184 0,
185 0,
186 0,
187 0,
188 0,
189 0,
190 0,
191};
192static inline void InitSPIRVMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
193 RI->InitMCRegisterInfo(D: SPIRVRegDesc, NR: 8, RA, PC, C: SPIRVMCRegisterClasses, NC: 9, RURoots: SPIRVRegUnitRoots, NRU: 7, DL: SPIRVRegDiffLists, RUMS: SPIRVLaneMaskLists, Strings: SPIRVRegStrings, ClassStrings: SPIRVRegClassStrings, SubIndices: SPIRVSubRegIdxLists, NumIndices: 1,
194RET: SPIRVRegEncodingTable);
195
196}
197
198} // end namespace llvm
199
200