• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
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" : 100,
28  "revision" : 2,
29  "instructions" : [
30    {
31      "opname" : "DebugInfoNone",
32      "opcode" : 0
33    },
34    {
35      "opname" : "DebugCompilationUnit",
36      "opcode" : 1,
37      "operands" : [
38        { "kind" : "IdRef", "name" : "'Version'" },
39        { "kind" : "IdRef", "name" : "'DWARF Version'" },
40        { "kind" : "IdRef", "name" : "'Source'" },
41        { "kind" : "IdRef", "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" : "IdRef", "name" : "'Encoding'" }
51      ]
52    },
53    {
54      "opname" : "DebugTypePointer",
55      "opcode" : 3,
56      "operands" : [
57        { "kind" : "IdRef", "name" : "'Base Type'" },
58        { "kind" : "IdRef", "name" : "'Storage Class'" },
59        { "kind" : "IdRef", "name" : "'Flags'" }
60      ]
61    },
62    {
63      "opname" : "DebugTypeQualifier",
64      "opcode" : 4,
65      "operands" : [
66        { "kind" : "IdRef", "name" : "'Base Type'" },
67        { "kind" : "IdRef", "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" : "IdRef", "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" : "IdRef", "name" : "'Line'" },
94        { "kind" : "IdRef", "name" : "'Column'" },
95        { "kind" : "IdRef", "name" : "'Parent'" }
96      ]
97    },
98    {
99      "opname" : "DebugTypeFunction",
100      "opcode" : 8,
101      "operands" : [
102        { "kind" : "IdRef", "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" : "IdRef", "name" : "'Line'" },
115        { "kind" : "IdRef", "name" : "'Column'" },
116        { "kind" : "IdRef", "name" : "'Parent'" },
117        { "kind" : "IdRef", "name" : "'Size'" },
118        { "kind" : "IdRef", "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" : "IdRef", "name" : "'Tag'" },
128        { "kind" : "IdRef", "name" : "'Source'" },
129        { "kind" : "IdRef", "name" : "'Line'" },
130        { "kind" : "IdRef", "name" : "'Column'" },
131        { "kind" : "IdRef", "name" : "'Parent'" },
132        { "kind" : "IdRef", "name" : "'Linkage Name'" },
133        { "kind" : "IdRef", "name" : "'Size'" },
134        { "kind" : "IdRef", "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" : "IdRef", "name" : "'Line'" },
146        { "kind" : "IdRef", "name" : "'Column'" },
147        { "kind" : "IdRef", "name" : "'Offset'" },
148        { "kind" : "IdRef", "name" : "'Size'" },
149        { "kind" : "IdRef", "name" : "'Flags'" },
150        { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
151      ]
152    },
153    {
154      "opname" : "DebugTypeInheritance",
155      "opcode" : 12,
156      "operands" : [
157        { "kind" : "IdRef", "name" : "'Parent'" },
158        { "kind" : "IdRef", "name" : "'Offset'" },
159        { "kind" : "IdRef", "name" : "'Size'" },
160        { "kind" : "IdRef", "name" : "'Flags'" }
161      ]
162    },
163    {
164      "opname" : "DebugTypePtrToMember",
165      "opcode" : 13,
166      "operands" : [
167        { "kind" : "IdRef", "name" : "'Member Type'" },
168        { "kind" : "IdRef", "name" : "'Parent'" }
169      ]
170    },
171    {
172      "opname" : "DebugTypeTemplate",
173      "opcode" : 14,
174      "operands" : [
175        { "kind" : "IdRef", "name" : "'Target'" },
176        { "kind" : "IdRef", "name" : "'Parameters'", "quantifier" : "*" }
177      ]
178    },
179    {
180      "opname" : "DebugTypeTemplateParameter",
181      "opcode" : 15,
182      "operands" : [
183        { "kind" : "IdRef", "name" : "'Name'" },
184        { "kind" : "IdRef", "name" : "'Actual Type'" },
185        { "kind" : "IdRef", "name" : "'Value'" },
186        { "kind" : "IdRef", "name" : "'Source'" },
187        { "kind" : "IdRef", "name" : "'Line'" },
188        { "kind" : "IdRef", "name" : "'Column'" }
189      ]
190    },
191    {
192      "opname" : "DebugTypeTemplateTemplateParameter",
193      "opcode" : 16,
194      "operands" : [
195        { "kind" : "IdRef", "name" : "'Name'" },
196        { "kind" : "IdRef", "name" : "'Template Name'" },
197        { "kind" : "IdRef", "name" : "'Source'" },
198        { "kind" : "IdRef", "name" : "'Line'" },
199        { "kind" : "IdRef", "name" : "'Column'" }
200      ]
201    },
202    {
203      "opname" : "DebugTypeTemplateParameterPack",
204      "opcode" : 17,
205      "operands" : [
206        { "kind" : "IdRef", "name" : "'Name'" },
207        { "kind" : "IdRef", "name" : "'Source'" },
208        { "kind" : "IdRef", "name" : "'Line'" },
209        { "kind" : "IdRef", "name" : "'Column'" },
210        { "kind" : "IdRef", "name" : "'Template Parameters'", "quantifier" : "*" }
211      ]
212    },
213    {
214      "opname" : "DebugGlobalVariable",
215      "opcode" : 18,
216      "operands" : [
217        { "kind" : "IdRef", "name" : "'Name'" },
218        { "kind" : "IdRef", "name" : "'Type'" },
219        { "kind" : "IdRef", "name" : "'Source'" },
220        { "kind" : "IdRef", "name" : "'Line'" },
221        { "kind" : "IdRef", "name" : "'Column'" },
222        { "kind" : "IdRef", "name" : "'Parent'" },
223        { "kind" : "IdRef", "name" : "'Linkage Name'" },
224        { "kind" : "IdRef", "name" : "'Variable'" },
225        { "kind" : "IdRef", "name" : "'Flags'" },
226        { "kind" : "IdRef", "name" : "'Static Member Declaration'", "quantifier" : "?" }
227      ]
228    },
229    {
230      "opname" : "DebugFunctionDeclaration",
231      "opcode" : 19,
232      "operands" : [
233        { "kind" : "IdRef", "name" : "'Name'" },
234        { "kind" : "IdRef", "name" : "'Type'" },
235        { "kind" : "IdRef", "name" : "'Source'" },
236        { "kind" : "IdRef", "name" : "'Line'" },
237        { "kind" : "IdRef", "name" : "'Column'" },
238        { "kind" : "IdRef", "name" : "'Parent'" },
239        { "kind" : "IdRef", "name" : "'Linkage Name'" },
240        { "kind" : "IdRef", "name" : "'Flags'" }
241      ]
242    },
243    {
244      "opname" : "DebugFunction",
245      "opcode" : 20,
246      "operands" : [
247        { "kind" : "IdRef", "name" : "'Name'" },
248        { "kind" : "IdRef", "name" : "'Type'" },
249        { "kind" : "IdRef", "name" : "'Source'" },
250        { "kind" : "IdRef", "name" : "'Line'" },
251        { "kind" : "IdRef", "name" : "'Column'" },
252        { "kind" : "IdRef", "name" : "'Parent'" },
253        { "kind" : "IdRef", "name" : "'Linkage Name'" },
254        { "kind" : "IdRef", "name" : "'Flags'" },
255        { "kind" : "IdRef", "name" : "'Scope Line'" },
256        { "kind" : "IdRef", "name" : "'Declaration'", "quantifier" : "?" }
257      ]
258    },
259    {
260      "opname" : "DebugLexicalBlock",
261      "opcode" : 21,
262      "operands" : [
263        { "kind" : "IdRef", "name" : "'Source'" },
264        { "kind" : "IdRef", "name" : "'Line'" },
265        { "kind" : "IdRef", "name" : "'Column'" },
266        { "kind" : "IdRef", "name" : "'Parent'" },
267        { "kind" : "IdRef", "name" : "'Name'", "quantifier" : "?" }
268      ]
269    },
270    {
271      "opname" : "DebugLexicalBlockDiscriminator",
272      "opcode" : 22,
273      "operands" : [
274        { "kind" : "IdRef", "name" : "'Source'" },
275        { "kind" : "IdRef", "name" : "'Discriminator'" },
276        { "kind" : "IdRef", "name" : "'Parent'" }
277      ]
278    },
279    {
280      "opname" : "DebugScope",
281      "opcode" : 23,
282      "operands" : [
283        { "kind" : "IdRef", "name" : "'Scope'" },
284        { "kind" : "IdRef", "name" : "'Inlined At'", "quantifier" : "?" }
285      ]
286    },
287    {
288      "opname" : "DebugNoScope",
289      "opcode" : 24
290    },
291    {
292      "opname" : "DebugInlinedAt",
293      "opcode" : 25,
294      "operands" : [
295        { "kind" : "IdRef", "name" : "'Line'" },
296        { "kind" : "IdRef", "name" : "'Scope'" },
297        { "kind" : "IdRef", "name" : "'Inlined'", "quantifier" : "?" }
298      ]
299    },
300    {
301      "opname" : "DebugLocalVariable",
302      "opcode" : 26,
303      "operands" : [
304        { "kind" : "IdRef", "name" : "'Name'" },
305        { "kind" : "IdRef", "name" : "'Type'" },
306        { "kind" : "IdRef", "name" : "'Source'" },
307        { "kind" : "IdRef", "name" : "'Line'" },
308        { "kind" : "IdRef", "name" : "'Column'" },
309        { "kind" : "IdRef", "name" : "'Parent'" },
310        { "kind" : "IdRef", "name" : "'Flags'" },
311        { "kind" : "IdRef", "name" : "'Arg Number'", "quantifier" : "?" }
312      ]
313    },
314    {
315      "opname" : "DebugInlinedVariable",
316      "opcode" : 27,
317      "operands" : [
318        { "kind" : "IdRef", "name" : "'Variable'" },
319        { "kind" : "IdRef", "name" : "'Inlined'" }
320      ]
321    },
322    {
323      "opname" : "DebugDeclare",
324      "opcode" : 28,
325      "operands" : [
326        { "kind" : "IdRef", "name" : "'Local Variable'" },
327        { "kind" : "IdRef", "name" : "'Variable'" },
328        { "kind" : "IdRef", "name" : "'Expression'" }
329      ]
330    },
331    {
332      "opname" : "DebugValue",
333      "opcode" : 29,
334      "operands" : [
335        { "kind" : "IdRef", "name" : "'Local Variable'" },
336        { "kind" : "IdRef", "name" : "'Value'" },
337        { "kind" : "IdRef", "name" : "'Expression'" },
338        { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" }
339      ]
340    },
341    {
342      "opname" : "DebugOperation",
343      "opcode" : 30,
344      "operands" : [
345        { "kind" : "IdRef", "name" : "'OpCode'" },
346        { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" }
347      ]
348    },
349    {
350      "opname" : "DebugExpression",
351      "opcode" : 31,
352      "operands" : [
353        { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" }
354      ]
355    },
356    {
357      "opname" : "DebugMacroDef",
358      "opcode" : 32,
359      "operands" : [
360        { "kind" : "IdRef", "name" : "'Source'" },
361        { "kind" : "IdRef", "name" : "'Line'" },
362        { "kind" : "IdRef", "name" : "'Name'" },
363        { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
364      ]
365    },
366    {
367      "opname" : "DebugMacroUndef",
368      "opcode" : 33,
369      "operands" : [
370        { "kind" : "IdRef", "name" : "'Source'" },
371        { "kind" : "IdRef", "name" : "'Line'" },
372        { "kind" : "IdRef", "name" : "'Macro'" }
373      ]
374    },
375    {
376      "opname" : "DebugImportedEntity",
377      "opcode" : 34,
378      "operands" : [
379        { "kind" : "IdRef", "name" : "'Name'" },
380        { "kind" : "IdRef", "name" : "'Tag'" },
381        { "kind" : "IdRef", "name" : "'Source'" },
382        { "kind" : "IdRef", "name" : "'Entity'" },
383        { "kind" : "IdRef", "name" : "'Line'" },
384        { "kind" : "IdRef", "name" : "'Column'" },
385        { "kind" : "IdRef", "name" : "'Parent'" }
386      ]
387    },
388    {
389      "opname" : "DebugSource",
390      "opcode" : 35,
391      "operands" : [
392        { "kind" : "IdRef", "name" : "'File'" },
393        { "kind" : "IdRef", "name" : "'Text'", "quantifier" : "?" }
394      ]
395    },
396    {
397      "opname" : "DebugFunctionDefinition",
398      "opcode" : 101,
399      "operands" : [
400        { "kind" : "IdRef", "name" : "'Function'" },
401        { "kind" : "IdRef", "name" : "'Definition'" }
402      ]
403    }
404  ],
405  "operand_kinds" : [
406    {
407      "category" : "BitEnum",
408      "kind" : "DebugInfoFlags",
409      "enumerants" : [
410        {
411          "enumerant" : "FlagIsProtected",
412          "value" : "0x01"
413        },
414        {
415          "enumerant" : "FlagIsPrivate",
416          "value" : "0x02"
417        },
418        {
419          "enumerant" : "FlagIsPublic",
420          "value" : "0x03"
421        },
422        {
423          "enumerant" : "FlagIsLocal",
424          "value" : "0x04"
425        },
426        {
427          "enumerant" : "FlagIsDefinition",
428          "value" : "0x08"
429        },
430        {
431          "enumerant" : "FlagFwdDecl",
432          "value" : "0x10"
433        },
434        {
435          "enumerant" : "FlagArtificial",
436          "value" : "0x20"
437        },
438        {
439          "enumerant" : "FlagExplicit",
440          "value" : "0x40"
441        },
442        {
443          "enumerant" : "FlagPrototyped",
444          "value" : "0x80"
445        },
446        {
447          "enumerant" : "FlagObjectPointer",
448          "value" : "0x100"
449        },
450        {
451          "enumerant" : "FlagStaticMember",
452          "value" : "0x200"
453        },
454        {
455          "enumerant" : "FlagIndirectVariable",
456          "value" : "0x400"
457        },
458        {
459          "enumerant" : "FlagLValueReference",
460          "value" : "0x800"
461        },
462        {
463          "enumerant" : "FlagRValueReference",
464          "value" : "0x1000"
465        },
466        {
467          "enumerant" : "FlagIsOptimized",
468          "value" : "0x2000"
469        },
470        {
471          "enumerant" : "FlagIsEnumClass",
472          "value" : "0x4000"
473        },
474        {
475          "enumerant" : "FlagTypePassByValue",
476          "value" : "0x8000"
477        },
478        {
479          "enumerant" : "FlagTypePassByReference",
480          "value" : "0x10000"
481        }
482      ]
483    },
484    {
485      "category" : "ValueEnum",
486      "kind" : "DebugBaseTypeAttributeEncoding",
487      "enumerants" : [
488        {
489          "enumerant" : "Unspecified",
490          "value" : "0"
491        },
492        {
493          "enumerant" : "Address",
494          "value" : "1"
495        },
496        {
497          "enumerant" : "Boolean",
498          "value" : "2"
499        },
500        {
501          "enumerant" : "Float",
502          "value" : "3"
503        },
504        {
505          "enumerant" : "Signed",
506          "value" : "4"
507        },
508        {
509          "enumerant" : "SignedChar",
510          "value" : "5"
511        },
512        {
513          "enumerant" : "Unsigned",
514          "value" : "6"
515        },
516        {
517          "enumerant" : "UnsignedChar",
518          "value" : "7"
519        }
520      ]
521    },
522    {
523      "category" : "ValueEnum",
524      "kind" : "DebugCompositeType",
525      "enumerants" : [
526        {
527          "enumerant" : "Class",
528          "value" : "0"
529        },
530        {
531          "enumerant" : "Structure",
532          "value" : "1"
533        },
534        {
535          "enumerant" : "Union",
536          "value" : "2"
537        }
538      ]
539    },
540    {
541      "category" : "ValueEnum",
542      "kind" : "DebugTypeQualifier",
543      "enumerants" : [
544        {
545          "enumerant" : "ConstType",
546          "value" : "0"
547        },
548        {
549          "enumerant" : "VolatileType",
550          "value" : "1"
551        },
552        {
553          "enumerant" : "RestrictType",
554          "value" : "2"
555        },
556        {
557          "enumerant" : "AtomicType",
558          "value" : "3"
559        }
560      ]
561    },
562    {
563      "category" : "ValueEnum",
564      "kind" : "DebugOperation",
565      "enumerants" : [
566        {
567          "enumerant" : "Deref",
568          "value" : "0"
569        },
570        {
571          "enumerant" : "Plus",
572          "value" : "1"
573        },
574        {
575          "enumerant" : "Minus",
576          "value" : "2"
577        },
578        {
579          "enumerant" : "PlusUconst",
580          "value" : "3",
581          "parameters" : [
582             { "kind" : "IdRef" }
583          ]
584        },
585        {
586          "enumerant" : "BitPiece",
587          "value" : "4",
588          "parameters" : [
589             { "kind" : "IdRef" },
590             { "kind" : "IdRef" }
591          ]
592        },
593        {
594          "enumerant" : "Swap",
595          "value" : "5"
596        },
597        {
598          "enumerant" : "Xderef",
599          "value" : "6"
600        },
601        {
602          "enumerant" : "StackValue",
603          "value" : "7"
604        },
605        {
606          "enumerant" : "Constu",
607          "value" : "8",
608          "parameters" : [
609             { "kind" : "IdRef" }
610          ]
611        },
612        {
613          "enumerant" : "Fragment",
614          "value" : "9",
615          "parameters" : [
616             { "kind" : "IdRef" },
617             { "kind" : "IdRef" }
618          ]
619        }
620      ]
621    },
622    {
623      "category" : "ValueEnum",
624      "kind" : "DebugImportedEntity",
625      "enumerants" : [
626        {
627          "enumerant" : "ImportedModule",
628          "value" : "0"
629        },
630        {
631          "enumerant" : "ImportedDeclaration",
632          "value" : "1"
633	}
634      ]
635    }
636  ]
637}
638