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