• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "copyright" : [
3    "Copyright (c) 2017 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" : 1,
29  "instructions" : [
30    {
31      "opname" : "DebugInfoNone",
32      "opcode" : 0
33    },
34    {
35      "opname" : "DebugCompilationUnit",
36      "opcode" : 1,
37      "operands" : [
38        { "kind" : "IdRef", "name" : "'Source'" },
39        { "kind" : "LiteralInteger", "name" : "'Version'" },
40        { "kind" : "LiteralInteger", "name" : "'DWARF Version'" }
41      ]
42    },
43    {
44      "opname" : "DebugTypeBasic",
45      "opcode" : 2,
46      "operands" : [
47        { "kind" : "IdRef", "name" : "'Name'" },
48        { "kind" : "IdRef", "name" : "'Size'" },
49        { "kind" : "DebugBaseTypeAttributeEncoding", "name" : "'Encoding'" }
50      ]
51    },
52    {
53      "opname" : "DebugTypePointer",
54      "opcode" : 3,
55      "operands" : [
56        { "kind" : "IdRef", "name" : "'Base Type'" },
57        { "kind" : "StorageClass", "name" : "'Storage Class'" },
58        { "kind" : "DebugInfoFlags", "name" : "'Literal Flags'" }
59      ]
60    },
61    {
62      "opname" : "DebugTypeQualifier",
63      "opcode" : 4,
64      "operands" : [
65        { "kind" : "IdRef", "name" : "'Base Type'" },
66        { "kind" : "DebugTypeQualifier", "name" : "'Type Qualifier'" }
67      ]
68    },
69    {
70      "opname" : "DebugTypeArray",
71      "opcode" : 5,
72      "operands" : [
73        { "kind" : "IdRef", "name" : "'Base Type'" },
74        { "kind" : "IdRef", "name" : "'Component Counts'", "quantifier" : "*" }
75      ]
76    },
77    {
78      "opname" : "DebugTypeVector",
79      "opcode" : 6,
80      "operands" : [
81        { "kind" : "IdRef", "name" : "'Base Type'" },
82        { "kind" : "LiteralInteger", "name" : "'Component Count'" }
83      ]
84    },
85    {
86      "opname" : "DebugTypedef",
87      "opcode" : 7,
88      "operands" : [
89        { "kind" : "IdRef", "name" : "'Name'" },
90        { "kind" : "IdRef", "name" : "'Base Type'" },
91        { "kind" : "IdRef", "name" : "'Source'" },
92        { "kind" : "LiteralInteger", "name" : "'Line'" },
93        { "kind" : "LiteralInteger", "name" : "'Column'" },
94        { "kind" : "IdRef", "name" : "'Parent'" }
95      ]
96    },
97    {
98      "opname" : "DebugTypeFunction",
99      "opcode" : 8,
100      "operands" : [
101        { "kind" : "IdRef", "name" : "'Return Type'" },
102        { "kind" : "IdRef", "name" : "'Paramter Types'", "quantifier" : "*" }
103      ]
104    },
105    {
106      "opname" : "DebugTypeEnum",
107      "opcode" : 9,
108      "operands" : [
109        { "kind" : "IdRef", "name" : "'Name'" },
110        { "kind" : "IdRef", "name" : "'Underlying Type'" },
111        { "kind" : "IdRef", "name" : "'Source'" },
112        { "kind" : "LiteralInteger", "name" : "'Line'" },
113        { "kind" : "LiteralInteger", "name" : "'Column'" },
114        { "kind" : "IdRef", "name" : "'Parent'" },
115        { "kind" : "IdRef", "name" : "'Size'" },
116        { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
117        { "kind" : "PairIdRefIdRef", "name" : "'Value, Name, Value, Name, ...'", "quantifier" : "*" }
118      ]
119    },
120    {
121      "opname" : "DebugTypeComposite",
122      "opcode" : 10,
123      "operands" : [
124        { "kind" : "IdRef", "name" : "'Name'" },
125        { "kind" : "DebugCompositeType", "name" : "'Tag'" },
126        { "kind" : "IdRef", "name" : "'Source'" },
127        { "kind" : "LiteralInteger", "name" : "'Line'" },
128        { "kind" : "LiteralInteger", "name" : "'Column'" },
129        { "kind" : "IdRef", "name" : "'Parent'" },
130        { "kind" : "IdRef", "name" : "'Size'" },
131        { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
132        { "kind" : "IdRef", "name" : "'Members'", "quantifier" : "*" }
133      ]
134    },
135    {
136      "opname" : "DebugTypeMember",
137      "opcode" : 11,
138      "operands" : [
139        { "kind" : "IdRef", "name" : "'Name'" },
140        { "kind" : "IdRef", "name" : "'Type'" },
141        { "kind" : "IdRef", "name" : "'Source'" },
142        { "kind" : "LiteralInteger", "name" : "'Line'" },
143        { "kind" : "LiteralInteger", "name" : "'Column'" },
144        { "kind" : "IdRef", "name" : "'Parent'" },
145        { "kind" : "IdRef", "name" : "'Offset'" },
146        { "kind" : "IdRef", "name" : "'Size'" },
147        { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
148        { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
149      ]
150    },
151    {
152      "opname" : "DebugTypeInheritance",
153      "opcode" : 12,
154      "operands" : [
155        { "kind" : "IdRef", "name" : "'Child'" },
156        { "kind" : "IdRef", "name" : "'Parent'" },
157        { "kind" : "IdRef", "name" : "'Offset'" },
158        { "kind" : "IdRef", "name" : "'Size'" },
159        { "kind" : "DebugInfoFlags", "name" : "'Flags'" }
160      ]
161    },
162    {
163      "opname" : "DebugTypePtrToMember",
164      "opcode" : 13,
165      "operands" : [
166        { "kind" : "IdRef", "name" : "'Member Type'" },
167        { "kind" : "IdRef", "name" : "'Parent'" }
168      ]
169    },
170    {
171      "opname" : "DebugTypeTemplate",
172      "opcode" : 14,
173      "operands" : [
174        { "kind" : "IdRef", "name" : "'Target'" },
175        { "kind" : "IdRef", "name" : "'Parameters'", "quantifier" : "*" }
176      ]
177    },
178    {
179      "opname" : "DebugTypeTemplateParameter",
180      "opcode" : 15,
181      "operands" : [
182        { "kind" : "IdRef", "name" : "'Name'" },
183        { "kind" : "IdRef", "name" : "'Actual Type'" },
184        { "kind" : "IdRef", "name" : "'Value'" },
185        { "kind" : "IdRef", "name" : "'Source'" },
186        { "kind" : "LiteralInteger", "name" : "'Line'" },
187        { "kind" : "LiteralInteger", "name" : "'Column'" }
188      ]
189    },
190    {
191      "opname" : "DebugTypeTemplateTemplateParameter",
192      "opcode" : 16,
193      "operands" : [
194        { "kind" : "IdRef", "name" : "'Name'" },
195        { "kind" : "IdRef", "name" : "'Template Name'" },
196        { "kind" : "IdRef", "name" : "'Source'" },
197        { "kind" : "LiteralInteger", "name" : "'Line'" },
198        { "kind" : "LiteralInteger", "name" : "'Column'" }
199      ]
200    },
201    {
202      "opname" : "DebugTypeTemplateParameterPack",
203      "opcode" : 17,
204      "operands" : [
205        { "kind" : "IdRef", "name" : "'Name'" },
206        { "kind" : "IdRef", "name" : "'Source'" },
207        { "kind" : "LiteralInteger", "name" : "'Line'" },
208        { "kind" : "LiteralInteger", "name" : "'Column'" },
209        { "kind" : "IdRef", "name" : "'Template Parameters'", "quantifier" : "*" }
210      ]
211    },
212    {
213      "opname" : "DebugGlobalVariable",
214      "opcode" : 18,
215      "operands" : [
216        { "kind" : "IdRef", "name" : "'Name'" },
217        { "kind" : "IdRef", "name" : "'Type'" },
218        { "kind" : "IdRef", "name" : "'Source'" },
219        { "kind" : "LiteralInteger", "name" : "'Line'" },
220        { "kind" : "LiteralInteger", "name" : "'Column'" },
221        { "kind" : "IdRef", "name" : "'Parent'" },
222        { "kind" : "IdRef", "name" : "'Linkage Name'" },
223        { "kind" : "IdRef", "name" : "'Variable'" },
224        { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
225        { "kind" : "IdRef", "name" : "'Static Member Declaration'", "quantifier" : "?" }
226      ]
227    },
228    {
229      "opname" : "DebugFunctionDeclaration",
230      "opcode" : 19,
231      "operands" : [
232        { "kind" : "IdRef", "name" : "'Name'" },
233        { "kind" : "IdRef", "name" : "'Type'" },
234        { "kind" : "IdRef", "name" : "'Source'" },
235        { "kind" : "LiteralInteger", "name" : "'Line'" },
236        { "kind" : "LiteralInteger", "name" : "'Column'" },
237        { "kind" : "IdRef", "name" : "'Parent'" },
238        { "kind" : "IdRef", "name" : "'Linkage Name'" },
239        { "kind" : "DebugInfoFlags", "name" : "'Flags'" }
240      ]
241    },
242    {
243      "opname" : "DebugFunction",
244      "opcode" : 20,
245      "operands" : [
246        { "kind" : "IdRef", "name" : "'Name'" },
247        { "kind" : "IdRef", "name" : "'Type'" },
248        { "kind" : "IdRef", "name" : "'Source'" },
249        { "kind" : "LiteralInteger", "name" : "'Line'" },
250        { "kind" : "LiteralInteger", "name" : "'Column'" },
251        { "kind" : "IdRef", "name" : "'Parent'" },
252        { "kind" : "IdRef", "name" : "'Linkage Name'" },
253        { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
254        { "kind" : "LiteralInteger", "name" : "'Scope Line'" },
255        { "kind" : "IdRef", "name" : "'Function'" },
256        { "kind" : "IdRef", "name" : "'Declaration'", "quantifier" : "?" }
257      ]
258    },
259    {
260      "opname" : "DebugLexicalBlock",
261      "opcode" : 21,
262      "operands" : [
263        { "kind" : "IdRef", "name" : "'Source'" },
264        { "kind" : "LiteralInteger", "name" : "'Line'" },
265        { "kind" : "LiteralInteger", "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" : "'Scope'" },
275        { "kind" : "LiteralInteger", "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" : "LiteralInteger", "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" : "LiteralInteger", "name" : "'Line'" },
308        { "kind" : "LiteralInteger", "name" : "'Column'" },
309        { "kind" : "IdRef", "name" : "'Parent'" },
310        { "kind" : "LiteralInteger", "name" : "'Arg Number'", "quantifier" : "?" }
311      ]
312    },
313    {
314      "opname" : "DebugInlinedVariable",
315      "opcode" : 27,
316      "operands" : [
317        { "kind" : "IdRef", "name" : "'Variable'" },
318        { "kind" : "IdRef", "name" : "'Inlined'" }
319      ]
320    },
321    {
322      "opname" : "DebugDeclare",
323      "opcode" : 28,
324      "operands" : [
325        { "kind" : "IdRef", "name" : "'Local Variable'" },
326        { "kind" : "IdRef", "name" : "'Variable'" },
327        { "kind" : "IdRef", "name" : "'Expression'" }
328      ]
329    },
330    {
331      "opname" : "DebugValue",
332      "opcode" : 29,
333      "operands" : [
334        { "kind" : "IdRef", "name" : "'Value'" },
335        { "kind" : "IdRef", "name" : "'Expression'" },
336        { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" }
337      ]
338    },
339    {
340      "opname" : "DebugOperation",
341      "opcode" : 30,
342      "operands" : [
343        { "kind" : "DebugOperation", "name" : "'OpCode'" },
344        { "kind" : "LiteralInteger", "name" : "'Operands ...'", "quantifier" : "*" }
345      ]
346    },
347    {
348      "opname" : "DebugExpression",
349      "opcode" : 31,
350      "operands" : [
351        { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" }
352      ]
353    },
354    {
355      "opname" : "DebugMacroDef",
356      "opcode" : 32,
357      "operands" : [
358        { "kind" : "IdRef", "name" : "'Source'" },
359        { "kind" : "LiteralInteger", "name" : "'Line'" },
360        { "kind" : "IdRef", "name" : "'Name'" },
361        { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
362      ]
363    },
364    {
365      "opname" : "DebugMacroUndef",
366      "opcode" : 33,
367      "operands" : [
368        { "kind" : "IdRef", "name" : "'Source'" },
369        { "kind" : "LiteralInteger", "name" : "'Line'" },
370        { "kind" : "IdRef", "name" : "'Macro'" }
371      ]
372    }
373  ],
374  "operand_kinds" : [
375    {
376      "category" : "BitEnum",
377      "kind" : "DebugInfoFlags",
378      "enumerants" : [
379        {
380          "enumerant" : "FlagIsProtected",
381          "value" : "0x01"
382        },
383        {
384          "enumerant" : "FlagIsPrivate",
385          "value" : "0x02"
386        },
387        {
388          "enumerant" : "FlagIsPublic",
389          "value" : "0x03"
390        },
391        {
392          "enumerant" : "FlagIsLocal",
393          "value" : "0x04"
394        },
395        {
396          "enumerant" : "FlagIsDefinition",
397          "value" : "0x08"
398        },
399        {
400          "enumerant" : "FlagFwdDecl",
401          "value" : "0x10"
402        },
403        {
404          "enumerant" : "FlagArtificial",
405          "value" : "0x20"
406        },
407        {
408          "enumerant" : "FlagExplicit",
409          "value" : "0x40"
410        },
411        {
412          "enumerant" : "FlagPrototyped",
413          "value" : "0x80"
414        },
415        {
416          "enumerant" : "FlagObjectPointer",
417          "value" : "0x100"
418        },
419        {
420          "enumerant" : "FlagStaticMember",
421          "value" : "0x200"
422        },
423        {
424          "enumerant" : "FlagIndirectVariable",
425          "value" : "0x400"
426        },
427        {
428          "enumerant" : "FlagLValueReference",
429          "value" : "0x800"
430        },
431        {
432          "enumerant" : "FlagRValueReference",
433          "value" : "0x1000"
434        },
435        {
436          "enumerant" : "FlagIsOptimized",
437          "value" : "0x2000"
438        }
439      ]
440    },
441    {
442      "category" : "ValueEnum",
443      "kind" : "DebugBaseTypeAttributeEncoding",
444      "enumerants" : [
445        {
446          "enumerant" : "Unspecified",
447          "value" : "0"
448        },
449        {
450          "enumerant" : "Address",
451          "value" : "1"
452        },
453        {
454          "enumerant" : "Boolean",
455          "value" : "2"
456        },
457        {
458          "enumerant" : "Float",
459          "value" : "4"
460        },
461        {
462          "enumerant" : "Signed",
463          "value" : "5"
464        },
465        {
466          "enumerant" : "SignedChar",
467          "value" : "6"
468        },
469        {
470          "enumerant" : "Unsigned",
471          "value" : "7"
472        },
473        {
474          "enumerant" : "UnsignedChar",
475          "value" : "8"
476        }
477      ]
478    },
479    {
480      "category" : "ValueEnum",
481      "kind" : "DebugCompositeType",
482      "enumerants" : [
483        {
484          "enumerant" : "Class",
485          "value" : "0"
486        },
487        {
488          "enumerant" : "Structure",
489          "value" : "1"
490        },
491        {
492          "enumerant" : "Union",
493          "value" : "2"
494        }
495      ]
496    },
497    {
498      "category" : "ValueEnum",
499      "kind" : "DebugTypeQualifier",
500      "enumerants" : [
501        {
502          "enumerant" : "ConstType",
503          "value" : "0"
504        },
505        {
506          "enumerant" : "VolatileType",
507          "value" : "1"
508        },
509        {
510          "enumerant" : "RestrictType",
511          "value" : "2"
512        }
513      ]
514    },
515    {
516      "category" : "ValueEnum",
517      "kind" : "DebugOperation",
518      "enumerants" : [
519        {
520          "enumerant" : "Deref",
521          "value" : "0"
522        },
523        {
524          "enumerant" : "Plus",
525          "value" : "1"
526        },
527        {
528          "enumerant" : "Minus",
529          "value" : "2"
530        },
531        {
532          "enumerant" : "PlusUconst",
533          "value" : "3",
534          "parameters" : [
535             { "kind" : "LiteralInteger" }
536          ]
537        },
538        {
539          "enumerant" : "BitPiece",
540          "value" : "4",
541          "parameters" : [
542             { "kind" : "LiteralInteger" },
543             { "kind" : "LiteralInteger" }
544          ]
545        },
546        {
547          "enumerant" : "Swap",
548          "value" : "5"
549        },
550        {
551          "enumerant" : "Xderef",
552          "value" : "6"
553        },
554        {
555          "enumerant" : "StackValue",
556          "value" : "7"
557        },
558        {
559          "enumerant" : "Constu",
560          "value" : "8",
561          "parameters" : [
562             { "kind" : "LiteralInteger" }
563          ]
564        }
565      ]
566    }
567  ]
568}
569