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" : 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 ] 398 } 399 ], 400 "operand_kinds" : [ 401 { 402 "category" : "BitEnum", 403 "kind" : "DebugInfoFlags", 404 "enumerants" : [ 405 { 406 "enumerant" : "FlagIsProtected", 407 "value" : "0x01" 408 }, 409 { 410 "enumerant" : "FlagIsPrivate", 411 "value" : "0x02" 412 }, 413 { 414 "enumerant" : "FlagIsPublic", 415 "value" : "0x03" 416 }, 417 { 418 "enumerant" : "FlagIsLocal", 419 "value" : "0x04" 420 }, 421 { 422 "enumerant" : "FlagIsDefinition", 423 "value" : "0x08" 424 }, 425 { 426 "enumerant" : "FlagFwdDecl", 427 "value" : "0x10" 428 }, 429 { 430 "enumerant" : "FlagArtificial", 431 "value" : "0x20" 432 }, 433 { 434 "enumerant" : "FlagExplicit", 435 "value" : "0x40" 436 }, 437 { 438 "enumerant" : "FlagPrototyped", 439 "value" : "0x80" 440 }, 441 { 442 "enumerant" : "FlagObjectPointer", 443 "value" : "0x100" 444 }, 445 { 446 "enumerant" : "FlagStaticMember", 447 "value" : "0x200" 448 }, 449 { 450 "enumerant" : "FlagIndirectVariable", 451 "value" : "0x400" 452 }, 453 { 454 "enumerant" : "FlagLValueReference", 455 "value" : "0x800" 456 }, 457 { 458 "enumerant" : "FlagRValueReference", 459 "value" : "0x1000" 460 }, 461 { 462 "enumerant" : "FlagIsOptimized", 463 "value" : "0x2000" 464 }, 465 { 466 "enumerant" : "FlagIsEnumClass", 467 "value" : "0x4000" 468 }, 469 { 470 "enumerant" : "FlagTypePassByValue", 471 "value" : "0x8000" 472 }, 473 { 474 "enumerant" : "FlagTypePassByReference", 475 "value" : "0x10000" 476 } 477 ] 478 }, 479 { 480 "category" : "ValueEnum", 481 "kind" : "DebugBaseTypeAttributeEncoding", 482 "enumerants" : [ 483 { 484 "enumerant" : "Unspecified", 485 "value" : "0" 486 }, 487 { 488 "enumerant" : "Address", 489 "value" : "1" 490 }, 491 { 492 "enumerant" : "Boolean", 493 "value" : "2" 494 }, 495 { 496 "enumerant" : "Float", 497 "value" : "3" 498 }, 499 { 500 "enumerant" : "Signed", 501 "value" : "4" 502 }, 503 { 504 "enumerant" : "SignedChar", 505 "value" : "5" 506 }, 507 { 508 "enumerant" : "Unsigned", 509 "value" : "6" 510 }, 511 { 512 "enumerant" : "UnsignedChar", 513 "value" : "7" 514 } 515 ] 516 }, 517 { 518 "category" : "ValueEnum", 519 "kind" : "DebugCompositeType", 520 "enumerants" : [ 521 { 522 "enumerant" : "Class", 523 "value" : "0" 524 }, 525 { 526 "enumerant" : "Structure", 527 "value" : "1" 528 }, 529 { 530 "enumerant" : "Union", 531 "value" : "2" 532 } 533 ] 534 }, 535 { 536 "category" : "ValueEnum", 537 "kind" : "DebugTypeQualifier", 538 "enumerants" : [ 539 { 540 "enumerant" : "ConstType", 541 "value" : "0" 542 }, 543 { 544 "enumerant" : "VolatileType", 545 "value" : "1" 546 }, 547 { 548 "enumerant" : "RestrictType", 549 "value" : "2" 550 }, 551 { 552 "enumerant" : "AtomicType", 553 "value" : "3" 554 } 555 ] 556 }, 557 { 558 "category" : "ValueEnum", 559 "kind" : "DebugOperation", 560 "enumerants" : [ 561 { 562 "enumerant" : "Deref", 563 "value" : "0" 564 }, 565 { 566 "enumerant" : "Plus", 567 "value" : "1" 568 }, 569 { 570 "enumerant" : "Minus", 571 "value" : "2" 572 }, 573 { 574 "enumerant" : "PlusUconst", 575 "value" : "3", 576 "parameters" : [ 577 { "kind" : "LiteralInteger" } 578 ] 579 }, 580 { 581 "enumerant" : "BitPiece", 582 "value" : "4", 583 "parameters" : [ 584 { "kind" : "LiteralInteger" }, 585 { "kind" : "LiteralInteger" } 586 ] 587 }, 588 { 589 "enumerant" : "Swap", 590 "value" : "5" 591 }, 592 { 593 "enumerant" : "Xderef", 594 "value" : "6" 595 }, 596 { 597 "enumerant" : "StackValue", 598 "value" : "7" 599 }, 600 { 601 "enumerant" : "Constu", 602 "value" : "8", 603 "parameters" : [ 604 { "kind" : "LiteralInteger" } 605 ] 606 }, 607 { 608 "enumerant" : "Fragment", 609 "value" : "9", 610 "parameters" : [ 611 { "kind" : "LiteralInteger" }, 612 { "kind" : "LiteralInteger" } 613 ] 614 } 615 ] 616 }, 617 { 618 "category" : "ValueEnum", 619 "kind" : "DebugImportedEntity", 620 "enumerants" : [ 621 { 622 "enumerant" : "ImportedModule", 623 "value" : "0" 624 }, 625 { 626 "enumerant" : "ImportedDeclaration", 627 "value" : "1" 628 } 629 ] 630 } 631 ] 632} 633