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