blob: 699fe40369819dba9a856c26e9e435f03504ebf7 [file] [log] [blame]
David Neto0a7fc452020-02-26 13:58:17 -05001{
2 "copyright" : [
3 "Copyright (c) 2018 The Khronos Group Inc.",
4 "",
5 "Permission is hereby granted, free of charge, to any person obtaining a copy",
6 "of this software and/or associated documentation files (the \"Materials\"),",
7 "to deal in the Materials without restriction, including without limitation",
8 "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
9 "and/or sell copies of the Materials, and to permit persons to whom the",
10 "Materials are furnished to do so, subject to the following conditions:",
11 "",
12 "The above copyright notice and this permission notice shall be included in",
13 "all copies or substantial portions of the Materials.",
14 "",
15 "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
16 "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
17 "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
18 "",
19 "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
20 "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
21 "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
22 "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
23 "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
24 "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
25 "IN THE MATERIALS."
26 ],
27 "version" : 200,
28 "revision" : 2,
29 "instructions" : [
30 {
31 "opname" : "DebugInfoNone",
32 "opcode" : 0
33 },
34 {
35 "opname" : "DebugCompilationUnit",
36 "opcode" : 1,
37 "operands" : [
38 { "kind" : "LiteralInteger", "name" : "'Version'" },
39 { "kind" : "LiteralInteger", "name" : "'DWARF Version'" },
40 { "kind" : "IdRef", "name" : "'Source'" },
41 { "kind" : "SourceLanguage", "name" : "'Language'" }
42 ]
43 },
44 {
45 "opname" : "DebugTypeBasic",
46 "opcode" : 2,
47 "operands" : [
48 { "kind" : "IdRef", "name" : "'Name'" },
49 { "kind" : "IdRef", "name" : "'Size'" },
50 { "kind" : "DebugBaseTypeAttributeEncoding", "name" : "'Encoding'" }
51 ]
52 },
53 {
54 "opname" : "DebugTypePointer",
55 "opcode" : 3,
56 "operands" : [
57 { "kind" : "IdRef", "name" : "'Base Type'" },
58 { "kind" : "StorageClass", "name" : "'Storage Class'" },
59 { "kind" : "DebugInfoFlags", "name" : "'Flags'" }
60 ]
61 },
62 {
63 "opname" : "DebugTypeQualifier",
64 "opcode" : 4,
65 "operands" : [
66 { "kind" : "IdRef", "name" : "'Base Type'" },
67 { "kind" : "DebugTypeQualifier", "name" : "'Type Qualifier'" }
68 ]
69 },
70 {
71 "opname" : "DebugTypeArray",
72 "opcode" : 5,
73 "operands" : [
74 { "kind" : "IdRef", "name" : "'Base Type'" },
75 { "kind" : "IdRef", "name" : "'Component Counts'", "quantifier" : "*" }
76 ]
77 },
78 {
79 "opname" : "DebugTypeVector",
80 "opcode" : 6,
81 "operands" : [
82 { "kind" : "IdRef", "name" : "'Base Type'" },
83 { "kind" : "LiteralInteger", "name" : "'Component Count'" }
84 ]
85 },
86 {
87 "opname" : "DebugTypedef",
88 "opcode" : 7,
89 "operands" : [
90 { "kind" : "IdRef", "name" : "'Name'" },
91 { "kind" : "IdRef", "name" : "'Base Type'" },
92 { "kind" : "IdRef", "name" : "'Source'" },
93 { "kind" : "LiteralInteger", "name" : "'Line'" },
94 { "kind" : "LiteralInteger", "name" : "'Column'" },
95 { "kind" : "IdRef", "name" : "'Parent'" }
96 ]
97 },
98 {
99 "opname" : "DebugTypeFunction",
100 "opcode" : 8,
101 "operands" : [
102 { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
103 { "kind" : "IdRef", "name" : "'Return Type'" },
104 { "kind" : "IdRef", "name" : "'Parameter Types'", "quantifier" : "*" }
105 ]
106 },
107 {
108 "opname" : "DebugTypeEnum",
109 "opcode" : 9,
110 "operands" : [
111 { "kind" : "IdRef", "name" : "'Name'" },
112 { "kind" : "IdRef", "name" : "'Underlying Type'" },
113 { "kind" : "IdRef", "name" : "'Source'" },
114 { "kind" : "LiteralInteger", "name" : "'Line'" },
115 { "kind" : "LiteralInteger", "name" : "'Column'" },
116 { "kind" : "IdRef", "name" : "'Parent'" },
117 { "kind" : "IdRef", "name" : "'Size'" },
118 { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
119 { "kind" : "PairIdRefIdRef", "name" : "'Value, Name, Value, Name, ...'", "quantifier" : "*" }
120 ]
121 },
122 {
123 "opname" : "DebugTypeComposite",
124 "opcode" : 10,
125 "operands" : [
126 { "kind" : "IdRef", "name" : "'Name'" },
127 { "kind" : "DebugCompositeType", "name" : "'Tag'" },
128 { "kind" : "IdRef", "name" : "'Source'" },
129 { "kind" : "LiteralInteger", "name" : "'Line'" },
130 { "kind" : "LiteralInteger", "name" : "'Column'" },
131 { "kind" : "IdRef", "name" : "'Parent'" },
132 { "kind" : "IdRef", "name" : "'Linkage Name'" },
133 { "kind" : "IdRef", "name" : "'Size'" },
134 { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
135 { "kind" : "IdRef", "name" : "'Members'", "quantifier" : "*" }
136 ]
137 },
138 {
139 "opname" : "DebugTypeMember",
140 "opcode" : 11,
141 "operands" : [
142 { "kind" : "IdRef", "name" : "'Name'" },
143 { "kind" : "IdRef", "name" : "'Type'" },
144 { "kind" : "IdRef", "name" : "'Source'" },
145 { "kind" : "LiteralInteger", "name" : "'Line'" },
146 { "kind" : "LiteralInteger", "name" : "'Column'" },
147 { "kind" : "IdRef", "name" : "'Parent'" },
148 { "kind" : "IdRef", "name" : "'Offset'" },
149 { "kind" : "IdRef", "name" : "'Size'" },
150 { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
151 { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
152 ]
153 },
154 {
155 "opname" : "DebugTypeInheritance",
156 "opcode" : 12,
157 "operands" : [
158 { "kind" : "IdRef", "name" : "'Child'" },
159 { "kind" : "IdRef", "name" : "'Parent'" },
160 { "kind" : "IdRef", "name" : "'Offset'" },
161 { "kind" : "IdRef", "name" : "'Size'" },
162 { "kind" : "DebugInfoFlags", "name" : "'Flags'" }
163 ]
164 },
165 {
166 "opname" : "DebugTypePtrToMember",
167 "opcode" : 13,
168 "operands" : [
169 { "kind" : "IdRef", "name" : "'Member Type'" },
170 { "kind" : "IdRef", "name" : "'Parent'" }
171 ]
172 },
173 {
174 "opname" : "DebugTypeTemplate",
175 "opcode" : 14,
176 "operands" : [
177 { "kind" : "IdRef", "name" : "'Target'" },
178 { "kind" : "IdRef", "name" : "'Parameters'", "quantifier" : "*" }
179 ]
180 },
181 {
182 "opname" : "DebugTypeTemplateParameter",
183 "opcode" : 15,
184 "operands" : [
185 { "kind" : "IdRef", "name" : "'Name'" },
186 { "kind" : "IdRef", "name" : "'Actual Type'" },
187 { "kind" : "IdRef", "name" : "'Value'" },
188 { "kind" : "IdRef", "name" : "'Source'" },
189 { "kind" : "LiteralInteger", "name" : "'Line'" },
190 { "kind" : "LiteralInteger", "name" : "'Column'" }
191 ]
192 },
193 {
194 "opname" : "DebugTypeTemplateTemplateParameter",
195 "opcode" : 16,
196 "operands" : [
197 { "kind" : "IdRef", "name" : "'Name'" },
198 { "kind" : "IdRef", "name" : "'Template Name'" },
199 { "kind" : "IdRef", "name" : "'Source'" },
200 { "kind" : "LiteralInteger", "name" : "'Line'" },
201 { "kind" : "LiteralInteger", "name" : "'Column'" }
202 ]
203 },
204 {
205 "opname" : "DebugTypeTemplateParameterPack",
206 "opcode" : 17,
207 "operands" : [
208 { "kind" : "IdRef", "name" : "'Name'" },
209 { "kind" : "IdRef", "name" : "'Source'" },
210 { "kind" : "LiteralInteger", "name" : "'Line'" },
211 { "kind" : "LiteralInteger", "name" : "'Column'" },
212 { "kind" : "IdRef", "name" : "'Template Parameters'", "quantifier" : "*" }
213 ]
214 },
215 {
216 "opname" : "DebugGlobalVariable",
217 "opcode" : 18,
218 "operands" : [
219 { "kind" : "IdRef", "name" : "'Name'" },
220 { "kind" : "IdRef", "name" : "'Type'" },
221 { "kind" : "IdRef", "name" : "'Source'" },
222 { "kind" : "LiteralInteger", "name" : "'Line'" },
223 { "kind" : "LiteralInteger", "name" : "'Column'" },
224 { "kind" : "IdRef", "name" : "'Parent'" },
225 { "kind" : "IdRef", "name" : "'Linkage Name'" },
226 { "kind" : "IdRef", "name" : "'Variable'" },
227 { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
228 { "kind" : "IdRef", "name" : "'Static Member Declaration'", "quantifier" : "?" }
229 ]
230 },
231 {
232 "opname" : "DebugFunctionDeclaration",
233 "opcode" : 19,
234 "operands" : [
235 { "kind" : "IdRef", "name" : "'Name'" },
236 { "kind" : "IdRef", "name" : "'Type'" },
237 { "kind" : "IdRef", "name" : "'Source'" },
238 { "kind" : "LiteralInteger", "name" : "'Line'" },
239 { "kind" : "LiteralInteger", "name" : "'Column'" },
240 { "kind" : "IdRef", "name" : "'Parent'" },
241 { "kind" : "IdRef", "name" : "'Linkage Name'" },
242 { "kind" : "DebugInfoFlags", "name" : "'Flags'" }
243 ]
244 },
245 {
246 "opname" : "DebugFunction",
247 "opcode" : 20,
248 "operands" : [
249 { "kind" : "IdRef", "name" : "'Name'" },
250 { "kind" : "IdRef", "name" : "'Type'" },
251 { "kind" : "IdRef", "name" : "'Source'" },
252 { "kind" : "LiteralInteger", "name" : "'Line'" },
253 { "kind" : "LiteralInteger", "name" : "'Column'" },
254 { "kind" : "IdRef", "name" : "'Parent'" },
255 { "kind" : "IdRef", "name" : "'Linkage Name'" },
256 { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
257 { "kind" : "LiteralInteger", "name" : "'Scope Line'" },
258 { "kind" : "IdRef", "name" : "'Function'" },
259 { "kind" : "IdRef", "name" : "'Declaration'", "quantifier" : "?" }
260 ]
261 },
262 {
263 "opname" : "DebugLexicalBlock",
264 "opcode" : 21,
265 "operands" : [
266 { "kind" : "IdRef", "name" : "'Source'" },
267 { "kind" : "LiteralInteger", "name" : "'Line'" },
268 { "kind" : "LiteralInteger", "name" : "'Column'" },
269 { "kind" : "IdRef", "name" : "'Parent'" },
270 { "kind" : "IdRef", "name" : "'Name'", "quantifier" : "?" }
271 ]
272 },
273 {
274 "opname" : "DebugLexicalBlockDiscriminator",
275 "opcode" : 22,
276 "operands" : [
277 { "kind" : "IdRef", "name" : "'Source'" },
278 { "kind" : "LiteralInteger", "name" : "'Discriminator'" },
279 { "kind" : "IdRef", "name" : "'Parent'" }
280 ]
281 },
282 {
283 "opname" : "DebugScope",
284 "opcode" : 23,
285 "operands" : [
286 { "kind" : "IdRef", "name" : "'Scope'" },
287 { "kind" : "IdRef", "name" : "'Inlined At'", "quantifier" : "?" }
288 ]
289 },
290 {
291 "opname" : "DebugNoScope",
292 "opcode" : 24
293 },
294 {
295 "opname" : "DebugInlinedAt",
296 "opcode" : 25,
297 "operands" : [
298 { "kind" : "LiteralInteger", "name" : "'Line'" },
299 { "kind" : "IdRef", "name" : "'Scope'" },
300 { "kind" : "IdRef", "name" : "'Inlined'", "quantifier" : "?" }
301 ]
302 },
303 {
304 "opname" : "DebugLocalVariable",
305 "opcode" : 26,
306 "operands" : [
307 { "kind" : "IdRef", "name" : "'Name'" },
308 { "kind" : "IdRef", "name" : "'Type'" },
309 { "kind" : "IdRef", "name" : "'Source'" },
310 { "kind" : "LiteralInteger", "name" : "'Line'" },
311 { "kind" : "LiteralInteger", "name" : "'Column'" },
312 { "kind" : "IdRef", "name" : "'Parent'" },
313 { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
314 { "kind" : "LiteralInteger", "name" : "'Arg Number'", "quantifier" : "?" }
315 ]
316 },
317 {
318 "opname" : "DebugInlinedVariable",
319 "opcode" : 27,
320 "operands" : [
321 { "kind" : "IdRef", "name" : "'Variable'" },
322 { "kind" : "IdRef", "name" : "'Inlined'" }
323 ]
324 },
325 {
326 "opname" : "DebugDeclare",
327 "opcode" : 28,
328 "operands" : [
329 { "kind" : "IdRef", "name" : "'Local Variable'" },
330 { "kind" : "IdRef", "name" : "'Variable'" },
331 { "kind" : "IdRef", "name" : "'Expression'" }
332 ]
333 },
334 {
335 "opname" : "DebugValue",
336 "opcode" : 29,
337 "operands" : [
338 { "kind" : "IdRef", "name" : "'Local Variable'" },
339 { "kind" : "IdRef", "name" : "'Value'" },
340 { "kind" : "IdRef", "name" : "'Expression'" },
341 { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" }
342 ]
343 },
344 {
345 "opname" : "DebugOperation",
346 "opcode" : 30,
347 "operands" : [
348 { "kind" : "DebugOperation", "name" : "'OpCode'" },
349 { "kind" : "LiteralInteger", "name" : "'Operands ...'", "quantifier" : "*" }
350 ]
351 },
352 {
353 "opname" : "DebugExpression",
354 "opcode" : 31,
355 "operands" : [
356 { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" }
357 ]
358 },
359 {
360 "opname" : "DebugMacroDef",
361 "opcode" : 32,
362 "operands" : [
363 { "kind" : "IdRef", "name" : "'Source'" },
364 { "kind" : "LiteralInteger", "name" : "'Line'" },
365 { "kind" : "IdRef", "name" : "'Name'" },
366 { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
367 ]
368 },
369 {
370 "opname" : "DebugMacroUndef",
371 "opcode" : 33,
372 "operands" : [
373 { "kind" : "IdRef", "name" : "'Source'" },
374 { "kind" : "LiteralInteger", "name" : "'Line'" },
375 { "kind" : "IdRef", "name" : "'Macro'" }
376 ]
377 },
378 {
379 "opname" : "DebugImportedEntity",
380 "opcode" : 34,
381 "operands" : [
382 { "kind" : "IdRef", "name" : "'Name'" },
383 { "kind" : "DebugImportedEntity", "name" : "'Tag'" },
384 { "kind" : "IdRef", "name" : "'Source'" },
385 { "kind" : "IdRef", "name" : "'Entity'" },
386 { "kind" : "LiteralInteger", "name" : "'Line'" },
387 { "kind" : "LiteralInteger", "name" : "'Column'" },
388 { "kind" : "IdRef", "name" : "'Parent'" }
389 ]
390 },
391 {
392 "opname" : "DebugSource",
393 "opcode" : 35,
394 "operands" : [
395 { "kind" : "IdRef", "name" : "'File'" },
396 { "kind" : "IdRef", "name" : "'Text'", "quantifier" : "?" }
397 ]
Mariya Podchishchaeva0320c5d2021-06-25 13:44:25 +0300398 },
399 {
400 "opname" : "DebugModuleINTEL",
401 "opcode" : 36,
402 "operands" : [
403 { "kind" : "IdRef", "name" : "'Name'" },
404 { "kind" : "IdRef", "name" : "'Source'" },
405 { "kind" : "IdRef", "name" : "'Parent'" },
406 { "kind" : "LiteralInteger", "name" : "'Line'" },
407 { "kind" : "IdRef", "name" : "'ConfigurationMacros'" },
408 { "kind" : "IdRef", "name" : "'IncludePath'" },
409 { "kind" : "IdRef", "name" : "'APINotesFile'" },
410 { "kind" : "LiteralInteger", "name" : "'IsDeclaration'" }
411 ],
412 "capability" : "DebugInfoModuleINTEL"
David Neto0a7fc452020-02-26 13:58:17 -0500413 }
414 ],
415 "operand_kinds" : [
416 {
417 "category" : "BitEnum",
418 "kind" : "DebugInfoFlags",
419 "enumerants" : [
420 {
Ben Ashbaugh25ac9d52021-01-27 08:03:49 -0800421 "enumerant" : "None",
422 "value" : "0x0000"
423 },
424 {
David Neto0a7fc452020-02-26 13:58:17 -0500425 "enumerant" : "FlagIsProtected",
426 "value" : "0x01"
427 },
428 {
429 "enumerant" : "FlagIsPrivate",
430 "value" : "0x02"
431 },
432 {
433 "enumerant" : "FlagIsPublic",
434 "value" : "0x03"
435 },
436 {
437 "enumerant" : "FlagIsLocal",
438 "value" : "0x04"
439 },
440 {
441 "enumerant" : "FlagIsDefinition",
442 "value" : "0x08"
443 },
444 {
445 "enumerant" : "FlagFwdDecl",
446 "value" : "0x10"
447 },
448 {
449 "enumerant" : "FlagArtificial",
450 "value" : "0x20"
451 },
452 {
453 "enumerant" : "FlagExplicit",
454 "value" : "0x40"
455 },
456 {
457 "enumerant" : "FlagPrototyped",
458 "value" : "0x80"
459 },
460 {
461 "enumerant" : "FlagObjectPointer",
462 "value" : "0x100"
463 },
464 {
465 "enumerant" : "FlagStaticMember",
466 "value" : "0x200"
467 },
468 {
469 "enumerant" : "FlagIndirectVariable",
470 "value" : "0x400"
471 },
472 {
473 "enumerant" : "FlagLValueReference",
474 "value" : "0x800"
475 },
476 {
477 "enumerant" : "FlagRValueReference",
478 "value" : "0x1000"
479 },
480 {
481 "enumerant" : "FlagIsOptimized",
482 "value" : "0x2000"
483 },
484 {
485 "enumerant" : "FlagIsEnumClass",
486 "value" : "0x4000"
487 },
488 {
489 "enumerant" : "FlagTypePassByValue",
490 "value" : "0x8000"
491 },
492 {
493 "enumerant" : "FlagTypePassByReference",
494 "value" : "0x10000"
495 }
496 ]
497 },
498 {
499 "category" : "ValueEnum",
500 "kind" : "DebugBaseTypeAttributeEncoding",
501 "enumerants" : [
502 {
503 "enumerant" : "Unspecified",
504 "value" : "0"
505 },
506 {
507 "enumerant" : "Address",
508 "value" : "1"
509 },
510 {
511 "enumerant" : "Boolean",
512 "value" : "2"
513 },
514 {
515 "enumerant" : "Float",
516 "value" : "3"
517 },
518 {
519 "enumerant" : "Signed",
520 "value" : "4"
521 },
522 {
523 "enumerant" : "SignedChar",
524 "value" : "5"
525 },
526 {
527 "enumerant" : "Unsigned",
528 "value" : "6"
529 },
530 {
531 "enumerant" : "UnsignedChar",
532 "value" : "7"
533 }
534 ]
535 },
536 {
537 "category" : "ValueEnum",
538 "kind" : "DebugCompositeType",
539 "enumerants" : [
540 {
541 "enumerant" : "Class",
542 "value" : "0"
543 },
544 {
545 "enumerant" : "Structure",
546 "value" : "1"
547 },
548 {
549 "enumerant" : "Union",
550 "value" : "2"
551 }
552 ]
553 },
554 {
555 "category" : "ValueEnum",
556 "kind" : "DebugTypeQualifier",
557 "enumerants" : [
558 {
559 "enumerant" : "ConstType",
560 "value" : "0"
561 },
562 {
563 "enumerant" : "VolatileType",
564 "value" : "1"
565 },
566 {
567 "enumerant" : "RestrictType",
568 "value" : "2"
569 },
570 {
571 "enumerant" : "AtomicType",
572 "value" : "3"
573 }
574 ]
575 },
576 {
577 "category" : "ValueEnum",
578 "kind" : "DebugOperation",
579 "enumerants" : [
580 {
581 "enumerant" : "Deref",
582 "value" : "0"
583 },
584 {
585 "enumerant" : "Plus",
586 "value" : "1"
587 },
588 {
589 "enumerant" : "Minus",
590 "value" : "2"
591 },
592 {
593 "enumerant" : "PlusUconst",
594 "value" : "3",
595 "parameters" : [
596 { "kind" : "LiteralInteger" }
597 ]
598 },
599 {
600 "enumerant" : "BitPiece",
601 "value" : "4",
602 "parameters" : [
603 { "kind" : "LiteralInteger" },
604 { "kind" : "LiteralInteger" }
605 ]
606 },
607 {
608 "enumerant" : "Swap",
609 "value" : "5"
610 },
611 {
612 "enumerant" : "Xderef",
613 "value" : "6"
614 },
615 {
616 "enumerant" : "StackValue",
617 "value" : "7"
618 },
619 {
620 "enumerant" : "Constu",
621 "value" : "8",
622 "parameters" : [
623 { "kind" : "LiteralInteger" }
624 ]
625 },
626 {
627 "enumerant" : "Fragment",
628 "value" : "9",
629 "parameters" : [
630 { "kind" : "LiteralInteger" },
631 { "kind" : "LiteralInteger" }
632 ]
633 }
634 ]
635 },
636 {
637 "category" : "ValueEnum",
638 "kind" : "DebugImportedEntity",
639 "enumerants" : [
640 {
641 "enumerant" : "ImportedModule",
642 "value" : "0"
643 },
644 {
645 "enumerant" : "ImportedDeclaration",
646 "value" : "1"
647 }
648 ]
649 }
650 ]
651}