blob: 9212f6f48c59fcf634451c2329e083f3d6e22d46 [file] [log] [blame]
David Neto59de6102017-12-03 12:30:08 -05001{
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}