1# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14definitions: 15 - name: PandaAssembly 16 template: | 17 .language PandaAssembly 18 .record R {} 19 .record I <panda.interface> {} 20 .record Q <panda.implements=I> {} 21 .record E <panda.extends=Q> {} 22 .record A <panda.annotation, panda.annotation.type=runtime> {} 23 .record panda.String <external> 24 .record panda.Class <external> 25 .record panda.Object <external> 26 - name: pandasm 27 template: | 28 .record R {} 29 .record panda.String <external> 30 .record panda.Class <external> 31 .record panda.Object <external> 32 33tests: 34 - file-name: "lda.type" 35 isa: 36 title: Load accumulator from type constant pool 37 description: Load type specified by id into accumulator. 38 verification: 39 - type_id_any_object 40 instructions: 41 - sig: lda.type type_id 42 acc: out:ref 43 format: [op_id_16] 44 commands: 45 46 47 - file-name: "invalid_type" 48 isa: 49 description: Load type specified by id into accumulator. 50 runner-options: [compile-failure] 51 description: Check 'lda.type' instruction with invalid type id. 52 header-template: [] 53 code-template: | 54 .record A { 55 i32 f32 56 A fA 57 i32[] f32Array 58 A[] fAArray 59 } 60 .function void aFunc(A a0) { 61 return.void 62 } 63 .function void bFunc() <static> { 64 return.void 65 } 66 .function i32 main() { 67 begin: 68 lda.type %s 69 end: 70 check-type: exit-positive 71 cases: 72 - values: 73 - "" 74 - values: 75 - "label:" 76 - values: 77 - "begin" 78 - values: 79 - "{}" 80 - values: 81 - "}" 82 - values: 83 - "# comment" 84 - values: 85 - "null" 86 - values: 87 - "0" 88 - values: 89 - "v0" 90 - values: 91 - "i32" 92 - values: 93 - "\"A\"" 94 - values: 95 - "A.f32" 96 - values: 97 - "A.fA" 98 - values: 99 - "A.f32Array" 100 - values: 101 - "A.fAArray" 102 - values: 103 - "aFunc" 104 - values: 105 - "A.aFunc" 106 - values: 107 - "bFunc" 108 - values: 109 - "main" 110 - values: 111 - "panda" 112 - values: 113 - "Object" 114 - values: 115 - "Object[]" 116 bugid: ['3532'] 117 - values: 118 - "XYZ[][]" 119 bugid: ['3532'] 120 121 122 - file-name: "valid_type_p" 123 isa: 124 description: Load type specified by id into accumulator. 125 runner-options: ['verifier-only', 'verifier-config'] 126 tags: [verifier] 127 description: Check 'lda.type' instruction with valid type id in PandaAssembly context. 128 header-template: [pandasm, main] 129 code-template: | 130 # 131 lda.type %s 132 check-type: exit-positive 133 cases: 134 - values: 135 - R 136 - values: 137 - panda.Class 138 - values: 139 - panda.Object 140 - values: 141 - panda.String 142 tags: ['tsan'] 143 - values: 144 - R[] 145 - values: 146 - panda.Class[] 147 - values: 148 - panda.Object[] 149 - values: 150 - panda.String[] 151 - values: 152 - i32[] 153 - values: 154 - u32[][] 155 - values: 156 - i64[][][] 157 - values: 158 - u64[][][][] 159 160 161 - file-name: "valid_type_j" 162 isa: 163 description: Load type specified by id into accumulator. 164 runner-options: [verifier-only, use-pa, verifier-config] 165 tags: [verifier, pa-verifier] 166 bugid: ['3293'] 167 description: Check 'lda.type' instruction with valid type id in PandaAssembly context. 168 header-template: [PandaAssembly, main] 169 code-template: | 170 # 171 lda.type %s 172 check-type: exit-positive 173 cases: 174 - values: 175 - R 176 - values: 177 - I 178 - values: 179 - Q 180 - values: 181 - E 182 - values: 183 - A 184 - values: 185 - panda.Class 186 - values: 187 - panda.Object 188 - values: 189 - panda.String 190 - values: 191 - R[] 192 - values: 193 - I[] 194 - values: 195 - Q[] 196 - values: 197 - E[] 198 - values: 199 - A[] 200 - values: 201 - panda.Class[] 202 - values: 203 - panda.Object[] 204 - values: 205 - panda.String[] 206 tags: ['tsan'] 207 - values: 208 - u16[][][] 209 - values: 210 - i64[][] 211 - values: 212 - f32[] 213 - values: 214 - f64[] 215 216 217 - file-name: "valid_instance_p" 218 isa: 219 description: Load type specified by id into accumulator. 220 description: Check type of object created by 'lda.type' instruction with valid type in PandaAssembly context. 221 header-template: [pandasm, main] 222 tags: ['irtoc_ignore'] 223 code-template: | 224 # 225 lda.type %s 226 sta.obj v1 227 isinstance panda.Class 228 jeqz set_failure 229 lda.obj v1 230 isinstance panda.Object 231 jeqz set_failure 232 ldai 0 233 return 234 set_failure: 235 ldai 1 236 return 237 check-type: none 238 cases: 239 - values: 240 - R 241 - values: 242 - panda.String 243 - values: 244 - panda.Class 245 - values: 246 - panda.Object 247 tags: ['tsan'] 248 - values: 249 - R[] 250 - values: 251 - panda.String[] 252 - values: 253 - panda.Class[][] 254 - values: 255 - panda.Object[][][] 256 - values: 257 - u1[] 258 - values: 259 - u8[] 260 - values: 261 - u16[][] 262 - values: 263 - u32[][][] 264 - values: 265 - u64[] 266 267 268 - file-name: "valid_instance_j" 269 isa: 270 description: Load type specified by id into accumulator. 271 description: Check type of object created by 'lda.type' instruction with valid type in PandaAssembly context. 272 runner-options: [use-pa] 273 tags: ['irtoc_ignore'] 274 header-template: [PandaAssembly, main] 275 code-template: | 276 # 277 lda.type %s 278 sta.obj v1 279 isinstance panda.Class 280 jeqz set_failure 281 lda.obj v1 282 isinstance panda.Object 283 jeqz set_failure 284 ldai 0 285 return 286 set_failure: 287 ldai 1 288 return 289 check-type: none 290 cases: 291 - values: 292 - R 293 - values: 294 - I 295 - values: 296 - E 297 - values: 298 - Q 299 - values: 300 - E 301 - values: 302 - A 303 - values: 304 - panda.String 305 - values: 306 - panda.Class 307 tags: ['tsan'] 308 - values: 309 - panda.Object 310 - values: 311 - R[] 312 - values: 313 - I[] 314 - values: 315 - E[] 316 - values: 317 - Q[] 318 - values: 319 - E[] 320 - values: 321 - A[] 322 - values: 323 - panda.String[] 324 - values: 325 - panda.Class[][] 326 - values: 327 - panda.Object[][][] 328 - values: 329 - i8[] 330 - values: 331 - u16[] 332 - values: 333 - i32[][] 334 - values: 335 - i64[][][] 336 - values: 337 - f32[] 338 339 340 - file-name: "types_eq_p" 341 isa: 342 description: Load type specified by id into accumulator. 343 description: Check that two types created by 'lda.type' instructions are the same in the type constant pool in PandaAssembly context. 344 header-template: [pandasm, main] 345 code-template: | 346 # 347 lda.null 348 lda.type %s 349 sta.obj v1 350 lda.null 351 lda.type %s 352 jeq.obj v1, ok 353 ldai 1 354 return 355 ok: 356 check-type: exit-positive 357 cases: 358 - values: 359 - R 360 - R 361 - values: 362 - panda.String 363 - panda.String 364 - values: 365 - panda.Class 366 - panda.Class 367 tags: ['tsan'] 368 - values: 369 - panda.Object 370 - panda.Object 371 - values: 372 - R[] 373 - R[] 374 - values: 375 - panda.String[] 376 - panda.String[] 377 - values: 378 - panda.Class[] 379 - panda.Class[] 380 - values: 381 - panda.Object[][] 382 - panda.Object[][] 383 - values: 384 - i32[] 385 - i32[] 386 - values: 387 - u32[][] 388 - u32[][] 389 - values: 390 - u64[][][] 391 - u64[][][] 392 - values: 393 - f64[] 394 - f64[] 395 396 397 - file-name: "types_eq_j" 398 isa: 399 description: Load type specified by id into accumulator. 400 description: Check that two types created by 'lda.type' instructions are the same in the type constant pool in PandaAssembly context. 401 header-template: [PandaAssembly, main] 402 runner-options: [use-pa] 403 tags: ['irtoc_ignore'] 404 code-template: | 405 # 406 lda.null 407 lda.type %s 408 sta.obj v1 409 lda.null 410 lda.type %s 411 jeq.obj v1, ok 412 ldai 1 413 return 414 ok: 415 check-type: exit-positive 416 cases: 417 - values: 418 - R 419 - R 420 - values: 421 - I 422 - I 423 - values: 424 - E 425 - E 426 - values: 427 - Q 428 - Q 429 - values: 430 - E 431 - E 432 - values: 433 - A 434 - A 435 - values: 436 - panda.String 437 - panda.String 438 tags: ['tsan'] 439 - values: 440 - panda.Class 441 - panda.Class 442 - values: 443 - panda.Object 444 - panda.Object 445 - values: 446 - R[] 447 - R[] 448 - values: 449 - I[][] 450 - I[][] 451 - values: 452 - E[] 453 - E[] 454 - values: 455 - Q[][][] 456 - Q[][][] 457 - values: 458 - E[] 459 - E[] 460 - values: 461 - A[][] 462 - A[][] 463 - values: 464 - panda.String[][][] 465 - panda.String[][][] 466 - values: 467 - panda.Class[][] 468 - panda.Class[][] 469 - values: 470 - panda.Object[] 471 - panda.Object[] 472 473 474 - file-name: "types_ne_p" 475 isa: 476 description: Load type specified by id into accumulator. 477 description: Check that two types created by 'lda.type' instructions are different in the type constant pool in PandaAssembly context. 478 header-template: [pandasm, main] 479 code-template: | 480 # 481 lda.null 482 lda.type %s 483 sta.obj v1 484 lda.null 485 lda.type *s 486 jne.obj v1, ok 487 ldai 1 488 return 489 ok: 490 check-type: exit-positive 491 template-cases: 492 - values: 493 - R 494 exclude: [r] 495 - values: 496 - panda.String 497 exclude: [r, panda_string] 498 - values: 499 - panda.Class 500 exclude: [r, panda_string, panda_class] 501 - values: 502 - panda.Object 503 exclude: [r, panda_string, panda_class, panda_object] 504 - values: 505 - R[] 506 exclude: [r, panda_string, panda_class, panda_object, r_a] 507 - values: 508 - panda.String[] 509 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a] 510 - values: 511 - panda.Class[] 512 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a] 513 - values: 514 - panda.Object[] 515 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a] 516 - values: 517 - R[][] 518 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa] 519 - values: 520 - panda.String[][] 521 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa] 522 - values: 523 - panda.Class[][] 524 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa] 525 - values: 526 - panda.Object[][] 527 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa] 528 - values: 529 - u1[] 530 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a] 531 - values: 532 - u8[] 533 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a] 534 - values: 535 - i8[] 536 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a] 537 - values: 538 - u16[] 539 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a] 540 - values: 541 - i16[] 542 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a] 543 - values: 544 - u32[] 545 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a] 546 - values: 547 - i32[] 548 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a] 549 - values: 550 - u64[] 551 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a] 552 - values: 553 - i64[] 554 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a] 555 - values: 556 - f32[] 557 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a] 558 - values: 559 - f64[] 560 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a, f64_a] 561 - values: 562 - u1[][] 563 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a, f64_a, u1_aa] 564 - values: 565 - u8[][] 566 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a, f64_a, u1_aa, u8_aa] 567 - values: 568 - i8[][] 569 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a, f64_a, u1_aa, u8_aa, i8_aa] 570 - values: 571 - u16[][] 572 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a, f64_a, u1_aa, u8_aa, i8_aa, u16_aa] 573 - values: 574 - i16[][] 575 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a, f64_a, u1_aa, u8_aa, i8_aa, u16_aa, i16_aa] 576 - values: 577 - u32[][] 578 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a, f64_a, u1_aa, u8_aa, i8_aa, u16_aa, i16_aa, u32_aa] 579 - values: 580 - i32[][] 581 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a, f64_a, u1_aa, u8_aa, i8_aa, u16_aa, i16_aa, u32_aa, i32_aa] 582 - values: 583 - u64[][] 584 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a, f64_a, u1_aa, u8_aa, i8_aa, u16_aa, i16_aa, u32_aa, i32_aa, u64_aa] 585 - values: 586 - i64[][] 587 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a, f64_a, u1_aa, u8_aa, i8_aa, u16_aa, i16_aa, u32_aa, i32_aa, u64_aa, i64_aa] 588 - values: 589 - f32[][] 590 exclude: [r, panda_string, panda_class, panda_object, r_a, panda_string_a, panda_class_a, panda_object_a, r_aa, panda_string_aa, panda_class_aa, panda_object_aa, u1_a, u8_a, i8_a, u16_a, i16_a, u32_a, i32_a, u64_a, i64_a, f32_a, f64_a, u1_aa, u8_aa, i8_aa, u16_aa, i16_aa, u32_aa, i32_aa, u64_aa, i64_aa, f32_aa] 591 cases: 592 - values: 593 - R 594 id: r 595 - values: 596 - panda.String 597 id: panda_string 598 tags: ['tsan'] 599 - values: 600 - panda.Class 601 id: panda_class 602 - values: 603 - panda.Object 604 id: panda_object 605 - values: 606 - R[] 607 id: r_a 608 - values: 609 - panda.String[] 610 id: panda_string_a 611 - values: 612 - panda.Class[] 613 id: panda_class_a 614 - values: 615 - panda.Object[] 616 id: panda_object_a 617 - values: 618 - panda.String[][] 619 id: panda_string_aa 620 - values: 621 - panda.Class[][] 622 id: panda_class_aa 623 - values: 624 - panda.Object[][] 625 id: panda_object_aa 626 - values: 627 - u1[] 628 id: u1_a 629 - values: 630 - u8[] 631 id: u8_a 632 - values: 633 - i8[] 634 id: i8_a 635 - values: 636 - u16[] 637 id: u16_a 638 - values: 639 - i16[] 640 id: i16_a 641 - values: 642 - u32[] 643 id: u32_a 644 - values: 645 - i32[] 646 id: i32_a 647 - values: 648 - u64[] 649 id: u64_a 650 - values: 651 - i64[] 652 id: i64_a 653 - values: 654 - f32[] 655 id: f32_a 656 - values: 657 - f64[] 658 id: f64_a 659 - values: 660 - u1[][] 661 id: u1_aa 662 - values: 663 - u8[][] 664 id: u8_aa 665 - values: 666 - i8[][] 667 id: i8_aa 668 - values: 669 - u16[][] 670 id: u16_aa 671 - values: 672 - i16[][] 673 id: i16_aa 674 - values: 675 - u32[][] 676 id: u32_aa 677 - values: 678 - i32[][] 679 id: i32_aa 680 - values: 681 - u64[][] 682 id: u64_aa 683 - values: 684 - i64[][] 685 id: i64_aa 686 - values: 687 - f32[][] 688 id: f32_aa 689 - values: 690 - f64[][] 691 id: f64_aa 692 693 694 - file-name: "types_ne_j" 695 isa: 696 description: Load type specified by id into accumulator. 697 description: Check that two types created by 'lda.type' instructions are different in the type constant pool in PandaAssembly context. 698 header-template: [PandaAssembly, main] 699 runner-options: [use-pa] 700 tags: ['irtoc_ignore'] 701 code-template: | 702 # 703 lda.null 704 lda.type %s 705 sta.obj v1 706 lda.null 707 lda.type *s 708 jne.obj v1, ok 709 ldai 1 710 return 711 ok: 712 check-type: exit-positive 713 template-cases: 714 - values: 715 - R 716 exclude: [r] 717 - values: 718 - I 719 exclude: [r, i] 720 - values: 721 - Q 722 exclude: [r, i, q] 723 - values: 724 - E 725 exclude: [r, i, q, e] 726 - values: 727 - A 728 exclude: [r, i, q, e, a] 729 - values: 730 - panda.String 731 exclude: [r, i, q, e, a, PandaAssembly_lang_string] 732 - values: 733 - panda.Class 734 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class] 735 - values: 736 - panda.Object 737 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object] 738 - values: 739 - R[] 740 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a] 741 - values: 742 - I[] 743 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a] 744 - values: 745 - Q[] 746 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a] 747 - values: 748 - E[] 749 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a] 750 - values: 751 - A[] 752 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a] 753 - values: 754 - panda.String[] 755 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a] 756 - values: 757 - panda.Class[] 758 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a] 759 - values: 760 - panda.Object[] 761 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a] 762 - values: 763 - R[][] 764 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa] 765 - values: 766 - I[][] 767 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa] 768 - values: 769 - Q[][] 770 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa] 771 - values: 772 - E[][] 773 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa] 774 - values: 775 - A[][] 776 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa] 777 - values: 778 - panda.String[][] 779 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa] 780 - values: 781 - panda.Class[][] 782 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa] 783 - values: 784 - panda.Object[][] 785 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa] 786 - values: 787 - u1[] 788 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a] 789 - values: 790 - i8[] 791 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a] 792 - values: 793 - u16[] 794 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a] 795 - values: 796 - i16[] 797 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a] 798 - values: 799 - i32[] 800 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a, i32_a] 801 - values: 802 - i64[] 803 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a, i32_a, i64_a] 804 - values: 805 - f32[] 806 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a, i32_a, i64_a, f32_a] 807 - values: 808 - f64[] 809 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a, i32_a, i64_a, f32_a, f64_a] 810 - values: 811 - u1[][] 812 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a, i32_a, i64_a, f32_a, f64_a, u1_aa] 813 - values: 814 - i8[][] 815 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a, i32_a, i64_a, f32_a, f64_a, u1_aa, i8_aa] 816 - values: 817 - u16[][] 818 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a, i32_a, i64_a, f32_a, f64_a, u1_aa, i8_aa, u16_aa] 819 - values: 820 - i16[][] 821 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a, i32_a, i64_a, f32_a, f64_a, u1_aa, i8_aa, u16_aa, i16_aa] 822 - values: 823 - i32[][] 824 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a, i32_a, i64_a, f32_a, f64_a, u1_aa, i8_aa, u16_aa, i16_aa, i32_aa] 825 - values: 826 - i64[][] 827 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a, i32_a, i64_a, f32_a, f64_a, u1_aa, i8_aa, u16_aa, i16_aa, i32_aa, i64_aa] 828 - values: 829 - f32[][] 830 exclude: [r, i, q, e, a, PandaAssembly_lang_string, PandaAssembly_lang_class, PandaAssembly_lang_object, r_a, i_a, q_a, e_a, a_a, PandaAssembly_lang_string_a, PandaAssembly_lang_class_a, PandaAssembly_lang_object_a, r_aa, i_aa, q_aa, e_aa, a_aa, PandaAssembly_lang_string_aa, PandaAssembly_lang_class_aa, PandaAssembly_lang_object_aa, u1_a, i8_a, u16_a, i16_a, i32_a, i64_a, f32_a, f64_a, u1_aa, i8_aa, u16_aa, i16_aa, i32_aa, i64_aa, f32_aa] 831 cases: 832 - values: 833 - R 834 id: r 835 - values: 836 - I 837 id: i 838 - values: 839 - E 840 id: e 841 - values: 842 - Q 843 id: q 844 - values: 845 - E 846 id: e 847 - values: 848 - A 849 id: a 850 - values: 851 - panda.String 852 id: PandaAssembly_lang_string 853 - values: 854 - panda.Class 855 id: PandaAssembly_lang_class 856 - values: 857 - panda.Object 858 id: PandaAssembly_lang_object 859 - values: 860 - R[] 861 id: r_a 862 - values: 863 - I[] 864 id: i_a 865 - values: 866 - E[] 867 id: e_a 868 - values: 869 - Q[] 870 id: q_a 871 - values: 872 - E[] 873 id: e_a 874 - values: 875 - A[] 876 id: a_a 877 - values: 878 - panda.String[] 879 id: PandaAssembly_lang_string_a 880 - values: 881 - panda.Class[] 882 id: PandaAssembly_lang_class_a 883 - values: 884 - panda.Object[] 885 id: PandaAssembly_lang_object_a 886 - values: 887 - R[][] 888 id: r_aa 889 - values: 890 - I[][] 891 id: i_aa 892 - values: 893 - E[][] 894 id: e_aa 895 - values: 896 - Q[][] 897 id: q_aa 898 - values: 899 - E[][] 900 id: e_aa 901 - values: 902 - A[][] 903 id: a_aa 904 - values: 905 - panda.String[][] 906 id: PandaAssembly_lang_string_aa 907 - values: 908 - panda.Class[][] 909 id: PandaAssembly_lang_class_aa 910 - values: 911 - panda.Object[][] 912 id: PandaAssembly_lang_object_aa 913 - values: 914 - u1[] 915 id: u1_a 916 - values: 917 - i8[] 918 id: i8_a 919 - values: 920 - u16[] 921 id: u16_a 922 - values: 923 - i16[] 924 id: i16_a 925 - values: 926 - i32[] 927 id: i32_a 928 - values: 929 - i64[] 930 id: i64_a 931 - values: 932 - f32[] 933 id: f32_a 934 - values: 935 - f64[] 936 id: f64_a 937 - values: 938 - u1[][] 939 id: u1_aa 940 - values: 941 - i8[][] 942 id: i8_aa 943 - values: 944 - u16[][] 945 id: u16_aa 946 - values: 947 - i16[][] 948 id: i16_aa 949 - values: 950 - i32[][] 951 id: i32_aa 952 - values: 953 - i64[][] 954 id: i64_aa 955 - values: 956 - f32[][] 957 id: f32_aa 958 - values: 959 - f64[][] 960 id: f64_aa 961