1#[doc = "Extended instruction operand kinds."]
6#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
7#[allow(clippy::upper_case_acronyms)]
8pub enum ExtOperandKind {
9 DebugInfoFlags,
10 DebugBaseTypeAttributeEncoding,
11 DebugCompositeType,
12 DebugTypeQualifier,
13 DebugOperation,
14}
15static DEBUGINFO_INSTRUCTIONS: &[ExtendedInstruction<'static>] = &[
16 ext_inst!(Debuginfo, DebuginfoOp, DebugInfoNone, [], [], [],),
17 ext_inst!(
18 Debuginfo,
19 DebuginfoOp,
20 DebugCompilationUnit,
21 [],
22 [],
23 [
24 (OperandKind::IdRef, One),
25 (OperandKind::LiteralInteger, One),
26 (OperandKind::LiteralInteger, One)
27 ],
28 ),
29 ext_inst!(
30 Debuginfo,
31 DebuginfoOp,
32 DebugTypeBasic,
33 [],
34 [],
35 [
36 (OperandKind::IdRef, One),
37 (OperandKind::IdRef, One),
38 (
39 OperandKind::Debuginfo(ExtOperandKind::DebugBaseTypeAttributeEncoding),
40 One
41 )
42 ],
43 ),
44 ext_inst!(
45 Debuginfo,
46 DebuginfoOp,
47 DebugTypePointer,
48 [],
49 [],
50 [
51 (OperandKind::IdRef, One),
52 (OperandKind::StorageClass, One),
53 (OperandKind::Debuginfo(ExtOperandKind::DebugInfoFlags), One)
54 ],
55 ),
56 ext_inst!(
57 Debuginfo,
58 DebuginfoOp,
59 DebugTypeQualifier,
60 [],
61 [],
62 [
63 (OperandKind::IdRef, One),
64 (
65 OperandKind::Debuginfo(ExtOperandKind::DebugTypeQualifier),
66 One
67 )
68 ],
69 ),
70 ext_inst!(
71 Debuginfo,
72 DebuginfoOp,
73 DebugTypeArray,
74 [],
75 [],
76 [(OperandKind::IdRef, One), (OperandKind::IdRef, ZeroOrMore)],
77 ),
78 ext_inst!(
79 Debuginfo,
80 DebuginfoOp,
81 DebugTypeVector,
82 [],
83 [],
84 [
85 (OperandKind::IdRef, One),
86 (OperandKind::LiteralInteger, One)
87 ],
88 ),
89 ext_inst!(
90 Debuginfo,
91 DebuginfoOp,
92 DebugTypedef,
93 [],
94 [],
95 [
96 (OperandKind::IdRef, One),
97 (OperandKind::IdRef, One),
98 (OperandKind::IdRef, One),
99 (OperandKind::LiteralInteger, One),
100 (OperandKind::LiteralInteger, One),
101 (OperandKind::IdRef, One)
102 ],
103 ),
104 ext_inst!(
105 Debuginfo,
106 DebuginfoOp,
107 DebugTypeFunction,
108 [],
109 [],
110 [(OperandKind::IdRef, One), (OperandKind::IdRef, ZeroOrMore)],
111 ),
112 ext_inst!(
113 Debuginfo,
114 DebuginfoOp,
115 DebugTypeEnum,
116 [],
117 [],
118 [
119 (OperandKind::IdRef, One),
120 (OperandKind::IdRef, One),
121 (OperandKind::IdRef, One),
122 (OperandKind::LiteralInteger, One),
123 (OperandKind::LiteralInteger, One),
124 (OperandKind::IdRef, One),
125 (OperandKind::IdRef, One),
126 (OperandKind::Debuginfo(ExtOperandKind::DebugInfoFlags), One),
127 (OperandKind::PairIdRefIdRef, ZeroOrMore)
128 ],
129 ),
130 ext_inst!(
131 Debuginfo,
132 DebuginfoOp,
133 DebugTypeComposite,
134 [],
135 [],
136 [
137 (OperandKind::IdRef, One),
138 (
139 OperandKind::Debuginfo(ExtOperandKind::DebugCompositeType),
140 One
141 ),
142 (OperandKind::IdRef, One),
143 (OperandKind::LiteralInteger, One),
144 (OperandKind::LiteralInteger, One),
145 (OperandKind::IdRef, One),
146 (OperandKind::IdRef, One),
147 (OperandKind::Debuginfo(ExtOperandKind::DebugInfoFlags), One),
148 (OperandKind::IdRef, ZeroOrMore)
149 ],
150 ),
151 ext_inst!(
152 Debuginfo,
153 DebuginfoOp,
154 DebugTypeMember,
155 [],
156 [],
157 [
158 (OperandKind::IdRef, One),
159 (OperandKind::IdRef, One),
160 (OperandKind::IdRef, One),
161 (OperandKind::LiteralInteger, One),
162 (OperandKind::LiteralInteger, One),
163 (OperandKind::IdRef, One),
164 (OperandKind::IdRef, One),
165 (OperandKind::IdRef, One),
166 (OperandKind::Debuginfo(ExtOperandKind::DebugInfoFlags), One),
167 (OperandKind::IdRef, ZeroOrOne)
168 ],
169 ),
170 ext_inst!(
171 Debuginfo,
172 DebuginfoOp,
173 DebugTypeInheritance,
174 [],
175 [],
176 [
177 (OperandKind::IdRef, One),
178 (OperandKind::IdRef, One),
179 (OperandKind::IdRef, One),
180 (OperandKind::IdRef, One),
181 (OperandKind::Debuginfo(ExtOperandKind::DebugInfoFlags), One)
182 ],
183 ),
184 ext_inst!(
185 Debuginfo,
186 DebuginfoOp,
187 DebugTypePtrToMember,
188 [],
189 [],
190 [(OperandKind::IdRef, One), (OperandKind::IdRef, One)],
191 ),
192 ext_inst!(
193 Debuginfo,
194 DebuginfoOp,
195 DebugTypeTemplate,
196 [],
197 [],
198 [(OperandKind::IdRef, One), (OperandKind::IdRef, ZeroOrMore)],
199 ),
200 ext_inst!(
201 Debuginfo,
202 DebuginfoOp,
203 DebugTypeTemplateParameter,
204 [],
205 [],
206 [
207 (OperandKind::IdRef, One),
208 (OperandKind::IdRef, One),
209 (OperandKind::IdRef, One),
210 (OperandKind::IdRef, One),
211 (OperandKind::LiteralInteger, One),
212 (OperandKind::LiteralInteger, One)
213 ],
214 ),
215 ext_inst!(
216 Debuginfo,
217 DebuginfoOp,
218 DebugTypeTemplateTemplateParameter,
219 [],
220 [],
221 [
222 (OperandKind::IdRef, One),
223 (OperandKind::IdRef, One),
224 (OperandKind::IdRef, One),
225 (OperandKind::LiteralInteger, One),
226 (OperandKind::LiteralInteger, One)
227 ],
228 ),
229 ext_inst!(
230 Debuginfo,
231 DebuginfoOp,
232 DebugTypeTemplateParameterPack,
233 [],
234 [],
235 [
236 (OperandKind::IdRef, One),
237 (OperandKind::IdRef, One),
238 (OperandKind::LiteralInteger, One),
239 (OperandKind::LiteralInteger, One),
240 (OperandKind::IdRef, ZeroOrMore)
241 ],
242 ),
243 ext_inst!(
244 Debuginfo,
245 DebuginfoOp,
246 DebugGlobalVariable,
247 [],
248 [],
249 [
250 (OperandKind::IdRef, One),
251 (OperandKind::IdRef, One),
252 (OperandKind::IdRef, One),
253 (OperandKind::LiteralInteger, One),
254 (OperandKind::LiteralInteger, One),
255 (OperandKind::IdRef, One),
256 (OperandKind::IdRef, One),
257 (OperandKind::IdRef, One),
258 (OperandKind::Debuginfo(ExtOperandKind::DebugInfoFlags), One),
259 (OperandKind::IdRef, ZeroOrOne)
260 ],
261 ),
262 ext_inst!(
263 Debuginfo,
264 DebuginfoOp,
265 DebugFunctionDeclaration,
266 [],
267 [],
268 [
269 (OperandKind::IdRef, One),
270 (OperandKind::IdRef, One),
271 (OperandKind::IdRef, One),
272 (OperandKind::LiteralInteger, One),
273 (OperandKind::LiteralInteger, One),
274 (OperandKind::IdRef, One),
275 (OperandKind::IdRef, One),
276 (OperandKind::Debuginfo(ExtOperandKind::DebugInfoFlags), One)
277 ],
278 ),
279 ext_inst!(
280 Debuginfo,
281 DebuginfoOp,
282 DebugFunction,
283 [],
284 [],
285 [
286 (OperandKind::IdRef, One),
287 (OperandKind::IdRef, One),
288 (OperandKind::IdRef, One),
289 (OperandKind::LiteralInteger, One),
290 (OperandKind::LiteralInteger, One),
291 (OperandKind::IdRef, One),
292 (OperandKind::IdRef, One),
293 (OperandKind::Debuginfo(ExtOperandKind::DebugInfoFlags), One),
294 (OperandKind::LiteralInteger, One),
295 (OperandKind::IdRef, One),
296 (OperandKind::IdRef, ZeroOrOne)
297 ],
298 ),
299 ext_inst!(
300 Debuginfo,
301 DebuginfoOp,
302 DebugLexicalBlock,
303 [],
304 [],
305 [
306 (OperandKind::IdRef, One),
307 (OperandKind::LiteralInteger, One),
308 (OperandKind::LiteralInteger, One),
309 (OperandKind::IdRef, One),
310 (OperandKind::IdRef, ZeroOrOne)
311 ],
312 ),
313 ext_inst!(
314 Debuginfo,
315 DebuginfoOp,
316 DebugLexicalBlockDiscriminator,
317 [],
318 [],
319 [
320 (OperandKind::IdRef, One),
321 (OperandKind::LiteralInteger, One),
322 (OperandKind::IdRef, One)
323 ],
324 ),
325 ext_inst!(
326 Debuginfo,
327 DebuginfoOp,
328 DebugScope,
329 [],
330 [],
331 [(OperandKind::IdRef, One), (OperandKind::IdRef, ZeroOrOne)],
332 ),
333 ext_inst!(Debuginfo, DebuginfoOp, DebugNoScope, [], [], [],),
334 ext_inst!(
335 Debuginfo,
336 DebuginfoOp,
337 DebugInlinedAt,
338 [],
339 [],
340 [
341 (OperandKind::LiteralInteger, One),
342 (OperandKind::IdRef, One),
343 (OperandKind::IdRef, ZeroOrOne)
344 ],
345 ),
346 ext_inst!(
347 Debuginfo,
348 DebuginfoOp,
349 DebugLocalVariable,
350 [],
351 [],
352 [
353 (OperandKind::IdRef, One),
354 (OperandKind::IdRef, One),
355 (OperandKind::IdRef, One),
356 (OperandKind::LiteralInteger, One),
357 (OperandKind::LiteralInteger, One),
358 (OperandKind::IdRef, One),
359 (OperandKind::LiteralInteger, ZeroOrOne)
360 ],
361 ),
362 ext_inst!(
363 Debuginfo,
364 DebuginfoOp,
365 DebugInlinedVariable,
366 [],
367 [],
368 [(OperandKind::IdRef, One), (OperandKind::IdRef, One)],
369 ),
370 ext_inst!(
371 Debuginfo,
372 DebuginfoOp,
373 DebugDeclare,
374 [],
375 [],
376 [
377 (OperandKind::IdRef, One),
378 (OperandKind::IdRef, One),
379 (OperandKind::IdRef, One)
380 ],
381 ),
382 ext_inst!(
383 Debuginfo,
384 DebuginfoOp,
385 DebugValue,
386 [],
387 [],
388 [
389 (OperandKind::IdRef, One),
390 (OperandKind::IdRef, One),
391 (OperandKind::IdRef, ZeroOrMore)
392 ],
393 ),
394 ext_inst!(
395 Debuginfo,
396 DebuginfoOp,
397 DebugOperation,
398 [],
399 [],
400 [
401 (OperandKind::Debuginfo(ExtOperandKind::DebugOperation), One),
402 (OperandKind::LiteralInteger, ZeroOrMore)
403 ],
404 ),
405 ext_inst!(
406 Debuginfo,
407 DebuginfoOp,
408 DebugExpression,
409 [],
410 [],
411 [(OperandKind::IdRef, ZeroOrMore)],
412 ),
413 ext_inst!(
414 Debuginfo,
415 DebuginfoOp,
416 DebugMacroDef,
417 [],
418 [],
419 [
420 (OperandKind::IdRef, One),
421 (OperandKind::LiteralInteger, One),
422 (OperandKind::IdRef, One),
423 (OperandKind::IdRef, ZeroOrOne)
424 ],
425 ),
426 ext_inst!(
427 Debuginfo,
428 DebuginfoOp,
429 DebugMacroUndef,
430 [],
431 [],
432 [
433 (OperandKind::IdRef, One),
434 (OperandKind::LiteralInteger, One),
435 (OperandKind::IdRef, One)
436 ],
437 ),
438];
439pub static DEBUGINFO_INSTRUCTION_TABLE: InstructionTable<ExtInstOp> =
440 InstructionTable(DEBUGINFO_INSTRUCTIONS, std::marker::PhantomData);