1/* 2 * Some or all of this work - Copyright (c) 2006 - 2021, Intel Corp. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without modification, 6 * are permitted provided that the following conditions are met: 7 * 8 * Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * Neither the name of Intel Corporation nor the names of its contributors 14 * may be used to endorse or promote products derived from this software 15 * without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29/* 30 * Test of Impllicit Return 31 * 32 * The last operation of Methods is Store. 33 */ 34 35Name(z138, 138) 36 37Method(mf6c,, Serialized) 38{ 39 Name(fl00, 0) 40 Name(i000, 0xabcd0000) 41 Name(i001, 0xabcd0001) 42 43 Method(m000) 44 { 45 Store(0xabcd0002, i001) 46 if (fl00) { 47 Store(0xdddd0000, i001) 48 Return (0) 49 } 50 } 51 52 Method(m001) 53 { 54 if (fl00) { 55 Store(0xdddd0001, i001) 56 Return (0) 57 } 58 Store(0xabcd0003, i001) 59 } 60 61 Method(m002, 1) 62 { 63 if (fl00) { 64 Store(0xdddd0002, i001) 65 Return (0) 66 } 67 if (fl00) { 68 Return (0) 69 } 70 if (arg0) { 71 Store(0xabcd0004, i001) 72 } 73 } 74 75 Method(m003, 1) 76 { 77 if (fl00) { 78 Store(0xdddd0003, i001) 79 Return (0) 80 } 81 if (fl00) { 82 Return (0) 83 } 84 if (arg0) { 85 Store(0xabcd0005, i001) 86 } else { 87 Store(0xabcd0006, i001) 88 } 89 } 90 91 Method(m004, 1) 92 { 93 if (fl00) { 94 Return (0) 95 } 96 97 switch (arg0) { 98 case (0) { 99 Store(0xabcd0007, i001) 100 } 101 case (0x12345678) { 102 Store(0xabcd0008, i001) 103 } 104 default { 105 Store(0xabcd0009, i001) 106 } 107 } 108 } 109 110 Method(m005) 111 { 112 if (fl00) { 113 Return (0) 114 } 115 116 While (1) { 117 Store(0xabcd000a, i001) 118 Break 119 } 120 } 121 122 Method(m006) 123 { 124 if (fl00) { 125 Return (0) 126 } 127 128 Store(0xabcd000b, i001) 129 While (1) { 130 Break 131 } 132 } 133 134 Method(m007,, Serialized) 135 { 136 Name(i000, 0) 137 Name(num, 0) 138 Name(lpN0, 0) 139 Name(lpC0, 0) 140 141 Store(10, num) 142 143 Store(num, lpN0) 144 Store(0, lpC0) 145 146 if (fl00) { 147 Return (0) 148 } 149 150 While (lpN0) { 151 if (i000) { 152 Break 153 } 154 Decrement(lpN0) 155 Increment(lpC0) 156 Store(1, i000) 157 Store(0xabcd000c, i001) 158 Continue 159 } 160 } 161 162 Method(m008) 163 { 164 Method(m000) 165 { 166 Store(0xabcd000d, i001) 167 } 168 169 if (fl00) { 170 Return (0) 171 } 172 173 m000() 174 } 175 176 177 // m000 178 179 Store(0xabcd9000, i000) 180 181 CH03("", z138, 0x000, __LINE__, 0) 182 183 Store(m000(), i000) 184 185 if (SLCK) { 186 CH03("", z138, 0x001, __LINE__, 0) 187 if (y901) { 188 Store(0, Local0) 189 } else { 190 Store(0xabcd0002, Local0) 191 } 192 if (LNotEqual(i000, Local0)) { 193 err("", z138, __LINE__, 0, 0, i000, Local0) 194 } 195 } else { 196 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 197 } 198 199 // m001 200 201 Store(0xabcd9001, i000) 202 203 CH03("", z138, 0x004, __LINE__, 0) 204 205 Store(m001(), i000) 206 207 if (SLCK) { 208 CH03("", z138, 0x005, __LINE__, 0) 209 if (LNotEqual(i000, 0xabcd0003)) { 210 err("", z138, __LINE__, 0, 0, i000, 0xabcd0003) 211 } 212 } else { 213 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 214 } 215 216 // m002 217 218 Store(0xabcd9002, i000) 219 220 CH03("", z138, 0x008, __LINE__, 0) 221 222 Store(m002(1), i000) 223 224 if (SLCK) { 225 CH03("", z138, 0x009, __LINE__, 0) 226 if (LNotEqual(i000, 0xabcd0004)) { 227 err("", z138, __LINE__, 0, 0, i000, 0xabcd0004) 228 } 229 } else { 230 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 231 } 232 233 // m003 234 235 Store(0xabcd9003, i000) 236 237 CH03("", z138, 0x00c, __LINE__, 0) 238 239 Store(m003(0), i000) 240 241 if (SLCK) { 242 CH03("", z138, 0x00d, __LINE__, 0) 243 if (LNotEqual(i000, 0xabcd0006)) { 244 err("", z138, __LINE__, 0, 0, i000, 0xabcd0006) 245 } 246 } else { 247 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 248 } 249 250 // m004(0) 251 252 Store(0xabcd9004, i000) 253 254 CH03("", z138, 0x010, __LINE__, 0) 255 256 Store(m004(0), i000) 257 258 if (SLCK) { 259 CH03("", z138, 0x011, __LINE__, 0) 260 if (LNotEqual(i000, 0xabcd0007)) { 261 err("", z138, __LINE__, 0, 0, i000, 0xabcd0007) 262 } 263 } else { 264 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 265 } 266 267 // m004(0x12345678) 268 269 Store(0xabcd9005, i000) 270 271 CH03("", z138, 0x014, __LINE__, 0) 272 273 Store(m004(0x12345678), i000) 274 275 if (SLCK) { 276 CH03("", z138, 0x015, __LINE__, 0) 277 if (LNotEqual(i000, 0xabcd0008)) { 278 err("", z138, __LINE__, 0, 0, i000, 0xabcd0008) 279 } 280 } else { 281 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 282 } 283 284 // m004(Default) 285 286 Store(0xabcd9006, i000) 287 288 CH03("", z138, 0x018, __LINE__, 0) 289 290 Store(m004(1111), i000) 291 292 if (SLCK) { 293 CH03("", z138, 0x019, __LINE__, 0) 294 if (LNotEqual(i000, 0xabcd0009)) { 295 err("", z138, __LINE__, 0, 0, i000, 0xabcd0009) 296 } 297 } else { 298 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 299 } 300 301 // m005 302 303 Store(0xabcd9007, i000) 304 305 CH03("", z138, 0x01c, __LINE__, 0) 306 307 Store(m005(), i000) 308 309 if (SLCK) { 310 CH03("", z138, 0x01d, __LINE__, 0) 311 if (LNotEqual(i000, 0xabcd000a)) { 312 err("", z138, __LINE__, 0, 0, i000, 0xabcd000a) 313 } 314 } else { 315 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 316 } 317 318 // m006 319 320 Store(0xabcd9008, i000) 321 322 CH03("", z138, 0x020, __LINE__, 0) 323 324 Store(m006(), i000) 325 326 if (SLCK) { 327 CH03("", z138, 0x021, __LINE__, 0) 328 if (y901) { 329 Store(1, Local0) 330 } else { 331 Store(0xabcd000b, Local0) 332 } 333 if (LNotEqual(i000, Local0)) { 334 err("", z138, __LINE__, 0, 0, i000, Local0) 335 } 336 } else { 337 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 338 } 339 340 // m007 341 342 Store(0xabcd9009, i000) 343 344 CH03("", z138, 0x024, __LINE__, 0) 345 346 Store(m007(), i000) 347 348 if (SLCK) { 349 CH03("", z138, 0x025, __LINE__, 0) 350 if (y901) { 351 Store(1, Local0) 352 } else { 353 Store(0xabcd000c, Local0) 354 } 355 if (LNotEqual(i000, Local0)) { 356 err("", z138, __LINE__, 0, 0, i000, Local0) 357 } 358 } else { 359 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 360 } 361 362 // m008 363 364 Store(0xabcd900a, i000) 365 366 CH03("", z138, 0x028, __LINE__, 0) 367 368 Store(m008(), i000) 369 370 if (SLCK) { 371 CH03("", z138, 0x029, __LINE__, 0) 372 if (LNotEqual(i000, 0xabcd000d)) { 373 err("", z138, __LINE__, 0, 0, i000, 0xabcd000d) 374 } 375 } else { 376 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 377 } 378} 379 380Method(mf6e,, Serialized) 381{ 382 Name(fl00, 0) 383 Name(i000, 0xaaaa0000) 384 Name(i001, 0xaaaa0001) 385 Name(i002, 0xaaaa0002) 386 Name(i003, 0xaaaa0003) 387 388 Method(m000) 389 { 390 if (fl00) { 391 Return (0) 392 } 393 Increment(i002) 394 Store(Add(0xaaaa0003, 0), Local1) 395 Store(Subtract(0xaaaa0004, 0), Local1) 396 Store(Multiply(0xaaaa0005, 1), Local1) 397 Store(0xaaaa0006, i001) 398 } 399 400 Method(m001) 401 { 402 if (fl00) { 403 Return (0) 404 } 405 if (Store(0xaaaa0007, i001)) { 406 Increment(i002) 407 Store(Add(0xaaaa0008, 0), Local1) 408 Store(Subtract(0xaaaa0009, 0), Local1) 409 Store(Multiply(0xaaaa000a, 1), Local1) 410 Store(0xaaaa000d, i001) 411 Decrement(i001) 412 } 413 } 414 415 Method(m002) 416 { 417 if (fl00) { 418 Return (0) 419 } 420 if (Add(0xaaaa000d, 0)) { 421 if (0xaaaa000e) { 422 Increment(i002) 423 Store(Add(0xaaaa000f, 0), Local1) 424 Store(Subtract(0xaaaa0010, 0), Local1) 425 Store(Multiply(0xaaaa0011, 1), Local1) 426 Store(0xaaaa0012, i001) 427 Increment(i001) 428 }} 429 } 430 431 Method(m003) 432 { 433 if (fl00) { 434 Return (0) 435 } 436 while (Subtract(0xaaaa0014, 0)) { 437 Increment(i002) 438 Store(Add(0xaaaa0015, 0), Local1) 439 Store(Subtract(0xaaaa0016, 0), Local1) 440 Store(Multiply(0xaaaa0017, 1), Local1) 441 Store(0xaaaa0018, i001) 442 Store(Multiply(0xaaaa0019, 1), Local1) 443 Break 444 } 445 } 446 447 Method(m004) 448 { 449 if (fl00) { 450 Return (0) 451 } 452 switch (Multiply(0xaaaa001a, 1)) { 453 case (0) { 454 Store(0xaaaa001b, i001) 455 } 456 case (0xaaaa001a) { 457 Store(0xaaaa001c, i001) 458 } 459 default { 460 Store(0xaaaa001d, i001) 461 } 462 } 463 } 464 465 // Predicates of If 466 467 468 Method(m006) 469 { 470 if (fl00) { 471 return (0xabcd0000) 472 } 473 } 474 475 Method(m007) 476 { 477 if (0) { 478 return (0xabcd0000) 479 } 480 } 481 482 Method(m008) 483 { 484 if (0) { 485 return (0xabcd0001) 486 } 487 if (0xabcd0000) { 488 } 489 } 490 491 Method(m009,, Serialized) 492 { 493 Name(i000, 0xabcd0000) 494 495 if (0) { 496 return (0xabcd0001) 497 } 498 if (i000) { 499 } 500 } 501 502 Name(i004, 0xabcd0008) 503 504 Method(m00a) 505 { 506 if (0) { 507 return (0xabcd0001) 508 } 509 if (i004) { 510 } 511 } 512 513 Method(m00b) 514 { 515 if (0) { 516 return (0xabcd0005) 517 } 518 if (LEqual(0xabcd0008, i004)) { 519 } 520 } 521 522 Method(m00c) 523 { 524 if (0) { 525 return (0xabcd0005) 526 } 527 if (LEqual(0xabcd0009, i004)) { 528 } 529 } 530 531 // Predicates of While 532 533 Method(m00d) 534 { 535 if (0) { 536 return (0xabcd0005) 537 } 538 While (0xabcd0009) { 539 Break 540 } 541 } 542 543 Method(m00e) 544 { 545 if (0) { 546 return (0xabcd0005) 547 } 548 While (LEqual(0xabcd0008, i004)) { 549 Break 550 } 551 } 552 553 Method(m00f) 554 { 555 if (0) { 556 return (0xabcd0005) 557 } 558 While (LEqual(0xabcd0009, i004)) { 559 Break 560 } 561 } 562 563 Method(m010) 564 { 565 if (0) { 566 return (0xabcd0005) 567 } 568 While (i004) { 569 Break 570 } 571 } 572 573 // Predicates of Switch 574 575 Method(m011) 576 { 577 if (0) { 578 return (0xabcd0005) 579 } 580 Switch (0xabcd0009) { 581 Case (0xabcd0007) { 582 } 583 Case (0xabcd0008) { 584 } 585 } 586 } 587 588 Method(m012) 589 { 590 if (0) { 591 return (0xabcd0005) 592 } 593 Switch (0xabcd0009) { 594 Case (0xabcd0007) { 595 } 596 Case (0xabcd0009) { 597 } 598 Case (0xabcd0008) { 599 } 600 } 601 } 602 603 Name(i006, 0x11220000) 604 Name(i007, 0x33440000) 605 606 Method(m005, 1, Serialized) 607 { 608 Name(r001, 1) 609 Name(r002, 1) 610 Name(r003, 1) 611 Name(brk0, 0) 612 Name(tmp0, 0) 613 614 if (LEqual(arg0, 1)) { 615 Store(0, r001) 616 } 617 if (LEqual(arg0, 2)) { 618 Store(0, r002) 619 Store(i006, brk0) 620 } 621 if (LEqual(arg0, 3)) { 622 Store(0, r003) 623 Store(i007, brk0) 624 } 625 626 Store(0xdddd0000, i000) 627 CH03("", z138, 0x02c, __LINE__, 0) 628 Store(m000(), i000) 629 if (SLCK) { 630 CH03("", z138, 0x02d, __LINE__, 0) 631 Store(0xaaaa0006, Local0) 632 if (LNotEqual(i000, Local0)) { 633 err("", z138, __LINE__, 0, 0, i000, Local0) 634 } 635 } else { 636 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 637 } 638 639 Store(0xdddd0000, i000) 640 CH03("", z138, 0x030, __LINE__, 0) 641 Store(m001(), i000) 642 if (SLCK) { 643 CH03("", z138, 0x031, __LINE__, 0) 644 Store(0xaaaa000c, Local0) 645 if (LNotEqual(i000, Local0)) { 646 err("", z138, __LINE__, 0, 0, i000, Local0) 647 } 648 } else { 649 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 650 } 651 652 Store(0xdddd0000, i000) 653 CH03("", z138, 0x034, __LINE__, 0) 654 Store(m002(), i000) 655 if (SLCK) { 656 CH03("", z138, 0x035, __LINE__, 0) 657 Store(0xaaaa0013, Local0) 658 if (LNotEqual(i000, Local0)) { 659 err("", z138, __LINE__, 0, 0, i000, Local0) 660 } 661 } else { 662 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 663 } 664 665 Store(0xdddd0000, i000) 666 CH03("", z138, 0x038, __LINE__, 0) 667 Store(m003(), i000) 668 if (SLCK) { 669 CH03("", z138, 0x039, __LINE__, 0) 670 Store(0xaaaa0019, Local0) 671 if (LNotEqual(i000, Local0)) { 672 err("", z138, __LINE__, 0, 0, i000, Local0) 673 } 674 } else { 675 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 676 } 677 678 679 // Predicates 680 681 682 Store(0xdddd0000, i000) 683 CH03("", z138, 0x03c, __LINE__, 0) 684 Store(m006(), i000) 685 if (LAnd(SLCK, y901)) { 686 CH03("", z138, 0x03d, __LINE__, 0) 687 Store(0, Local0) 688 if (LNotEqual(i000, Local0)) { 689 err("", z138, __LINE__, 0, 0, i000, Local0) 690 } 691 } else { 692 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 693 } 694 695 Store(0xdddd0000, i000) 696 CH03("", z138, 0x040, __LINE__, 0) 697 Store(m007(), i000) 698 if (LAnd(SLCK, y901)) { 699 CH03("", z138, 0x041, __LINE__, 0) 700 Store(0, Local0) 701 if (LNotEqual(i000, Local0)) { 702 err("", z138, __LINE__, 0, 0, i000, Local0) 703 } 704 } else { 705 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 706 } 707 708 Store(0xdddd0000, i000) 709 CH03("", z138, 0x044, __LINE__, 0) 710 Store(m008(), i000) 711 if (LAnd(SLCK, y901)) { 712 CH03("", z138, 0x045, __LINE__, 0) 713 Store(0xabcd0000, Local0) 714 if (LNotEqual(i000, Local0)) { 715 err("", z138, __LINE__, 0, 0, i000, Local0) 716 } 717 } else { 718 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 719 } 720 721 Store(0xdddd0000, i000) 722 CH03("", z138, 0x048, __LINE__, 0) 723 Store(m009(), i000) 724 if (LAnd(SLCK, y901)) { 725 CH03("", z138, 0x049, __LINE__, 0) 726 Store(0xabcd0000, Local0) 727 if (LNotEqual(i000, Local0)) { 728 err("", z138, __LINE__, 0, 0, i000, Local0) 729 } 730 } else { 731 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 732 } 733 734 Store(0xdddd0000, i000) 735 CH03("", z138, 0x04c, __LINE__, 0) 736 Store(m00a(), i000) 737 if (LAnd(SLCK, y901)) { 738 CH03("", z138, 0x04d, __LINE__, 0) 739 Store(0xabcd0008, Local0) 740 if (LNotEqual(i000, Local0)) { 741 err("", z138, __LINE__, 0, 0, i000, Local0) 742 } 743 } else { 744 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 745 } 746 747 Store(0, tmp0) 748 if (LAnd(SLCK, LOr(y901, y263))) { 749 Store(1, tmp0) 750 } 751 Store(0xdddd0000, i000) 752 CH03("", z138, 0x050, __LINE__, 0) 753 Store(m00b(), i000) 754 if (tmp0) { 755 CH03("", z138, 0x051, __LINE__, 0) 756 // Oct 2013, David Box 757 // Implicit return for logical operations (LNot, LEqual, ...) 758 // returns logical value of the operation 759 Store(Ones, Local0) 760 if (LNotEqual(i000, Local0)) { 761 err("", z138, __LINE__, 0, 0, i000, Local0) 762 } 763 } else { 764 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 765 } 766 767 Store(0, tmp0) 768 if (LAnd(SLCK, LOr(y901, y263))) { 769 Store(1, tmp0) 770 } 771 Store(0xdddd0000, i000) 772 CH03("", z138, 0x054, __LINE__, 0) 773 Store(m00c(), i000) 774 if (tmp0) { 775 CH03("", z138, 0x055, __LINE__, 0) 776 // Oct 2013, David Box 777 // Implicit return for logical operations (LNot, LEqual, ...) 778 // returns logical value of the operation 779 Store(Zero, Local0) 780 if (LNotEqual(i000, Local0)) { 781 err("", z138, __LINE__, 0, 0, i000, Local0) 782 } 783 } else { 784 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 785 } 786 787 Store(0xdddd0000, i000) 788 CH03("", z138, 0x058, __LINE__, 0) 789 Store(m00d(), i000) 790 if (LAnd(SLCK, y901)) { 791 CH03("", z138, 0x059, __LINE__, 0) 792 Store(0xabcd0009, Local0) 793 if (LNotEqual(i000, Local0)) { 794 err("", z138, __LINE__, 0, 0, i000, Local0) 795 } 796 } else { 797 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 798 } 799 800 Store(0, tmp0) 801 if (LAnd(SLCK, LOr(y901, y263))) { 802 Store(1, tmp0) 803 } 804 Store(0xdddd0000, i000) 805 CH03("", z138, 0x05c, __LINE__, 0) 806 Store(m00e(), i000) 807 if (tmp0) { 808 CH03("", z138, 0x05d, __LINE__, 0) 809 // Oct 2013, David Box 810 // Implicit return for logical operations (LNot, LEqual, ...) 811 // returns logical value of the operation 812 Store(Ones, Local0) 813 if (LNotEqual(i000, Local0)) { 814 err("", z138, __LINE__, 0, 0, i000, Local0) 815 } 816 } else { 817 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 818 } 819 820 Store(0, tmp0) 821 if (LAnd(SLCK, LOr(y901, y263))) { 822 Store(1, tmp0) 823 } 824 Store(0xdddd0000, i000) 825 CH03("", z138, 0x060, __LINE__, 0) 826 Store(m00f(), i000) 827 if (tmp0) { 828 CH03("", z138, 0x061, __LINE__, 0) 829 // Oct 2013, David Box 830 // Implicit return for logical operations (LNot, LEqual, ...) 831 // returns logical value of the operation 832 Store(Zero, Local0) 833 if (LNotEqual(i000, Local0)) { 834 err("", z138, __LINE__, 0, 0, i000, Local0) 835 } 836 } else { 837 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 838 } 839 840 Store(0xdddd0000, i000) 841 CH03("", z138, 0x064, __LINE__, 0) 842 Store(m010(), i000) 843 if (LAnd(SLCK, y901)) { 844 CH03("", z138, 0x065, __LINE__, 0) 845 Store(0xabcd0008, Local0) 846 if (LNotEqual(i000, Local0)) { 847 err("", z138, __LINE__, 0, 0, i000, Local0) 848 } 849 } else { 850 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 851 } 852 853 if (y901) { 854 855 Store(0xdddd0000, i000) 856 CH03("", z138, 0x068, __LINE__, 0) 857 Store(m011(), i000) 858 if (LAnd(SLCK, y901)) { 859 CH03("", z138, 0x069, __LINE__, 0) 860 Store(Zero, Local0) 861 if (LNotEqual(i000, Local0)) { 862 err("", z138, __LINE__, 0, 0, i000, Local0) 863 } 864 } else { 865 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 866 } 867 868 Store(0xdddd0000, i000) 869 CH03("", z138, 0x06c, __LINE__, 0) 870 Store(m012(), i000) 871 if (LAnd(SLCK, y901)) { 872 CH03("", z138, 0x06d, __LINE__, 0) 873 Store(Ones, Local0) 874 if (LNotEqual(i000, Local0)) { 875 err("", z138, __LINE__, 0, 0, i000, Local0) 876 } 877 } else { 878 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 879 } 880 } /* if (y901) */ 881 882 // Should be the last 883 884 Store(0xdddd0000, i000) 885 CH03("", z138, 0x070, __LINE__, 0) 886 Store(m004(), i000) 887 if (SLCK) { 888 CH03("", z138, 0x071, __LINE__, 0) 889 Store(0xaaaa001c, Local0) 890 if (LNotEqual(i000, Local0)) { 891 err("", z138, __LINE__, 0, 0, i000, Local0) 892 } 893 } else { 894 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 895 } 896 897 898 if (r001) { 899 900 while (0xabcd0000) { 901 m000() 902 m001() 903 m002() 904 m003() 905 m004() 906 if (0xabcd0001) { 907 while (0xabcd0002) { 908 if (0xabcd0003) { 909 while (0xabcd0004) { 910 if (0xabcd0005) { 911 while (0xabcd0006) { 912 if (0xabcd0007) { 913 914 Store(0xdddd0000, i000) 915 CH03("", z138, 0x040, __LINE__, 0) 916 Store(m000(), i000) 917 918 if (r002) { 919 920 if (SLCK) { 921 CH03("", z138, 0x041, __LINE__, 0) 922 if (LNotEqual(i000, 0xaaaa0006)) { 923 err("", z138, __LINE__, 0, 0, i000, 0xaaaa0006) 924 } 925 } else { 926 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 927 } 928 929 Store(0xdddd0000, i000) 930 CH03("", z138, 0x044, __LINE__, 0) 931 Store(m001(), i000) 932 if (SLCK) { 933 CH03("", z138, 0x045, __LINE__, 0) 934 if (LNotEqual(i000, 0xaaaa000c)) { 935 err("", z138, __LINE__, 0, 0, i000, 0xaaaa000c) 936 } 937 } else { 938 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 939 } 940 941 Store(0xdddd0123, i000) 942 943 if (r003) { 944 945 CH03("", z138, 0x048, __LINE__, 0) 946 Store(m002(), i000) 947 if (SLCK) { 948 CH03("", z138, 0x049, __LINE__, 0) 949 if (LNotEqual(i000, 0xaaaa0013)) { 950 err("", z138, __LINE__, 0, 0, i000, 0xaaaa0013) 951 } 952 } else { 953 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 954 } 955 956 Store(0xdddd0000, i000) 957 CH03("", z138, 0x04c, __LINE__, 0) 958 Store(m003(), i000) 959 if (SLCK) { 960 CH03("", z138, 0x04d, __LINE__, 0) 961 if (LNotEqual(i000, 0xaaaa0019)) { 962 err("", z138, __LINE__, 0, 0, i000, 0xaaaa0019) 963 } 964 } else { 965 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 966 } 967 968 Store(0xdddd0000, i000) 969 CH03("", z138, 0x050, __LINE__, 0) 970 Store(m004(), i000) 971 if (SLCK) { 972 CH03("", z138, 0x051, __LINE__, 0) 973 if (LNotEqual(i000, 0xaaaa001c)) { 974 err("", z138, __LINE__, 0, 0, i000, 0xaaaa001c) 975 } 976 } else { 977 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 978 } 979 980 while (0xabcd0008) { 981 if (0xabcd0009) { 982 while (0xabcd000a) { 983 if (0xabcd000b) { 984 while (0xabcd000c) { 985 if (0xabcd000d) { 986 while (0xabcd000e) { 987 if (0xabcd000f) { 988 989 if (0) { 990 Store("Impossible 0", Debug) 991 } else { 992 if (0xabcd0010) { 993 return (0xabcd0030) 994 } 995 } 996 }}}} 997 m000() 998 m001() 999 m002() 1000 m003() 1001 m004() 1002 }}}} 1003 m000() 1004 m001() 1005 m002() 1006 m003() 1007 m004() 1008 } else { 1009 Break 1010 } /* r003 */ 1011 } else { 1012 Break 1013 } /* r002 */ 1014 } 1015 if (brk0) { 1016 Break 1017 } 1018 }} 1019 if (brk0) { 1020 Break 1021 } 1022 }} 1023 if (brk0) { 1024 Break 1025 } 1026 }} 1027 if (brk0) { 1028 Break 1029 } 1030 } 1031 } /* if (r001) */ 1032 } 1033 1034 // 0000 1035 1036 Store(0xdddd0000, i003) 1037 CH03("", z138, 0x054, __LINE__, 0) 1038 Store(m005(0), i003) 1039 if (SLCK) { 1040 CH03("", z138, 0x055, __LINE__, 0) 1041 if (LNotEqual(i003, 0xabcd0030)) { 1042 err("", z138, __LINE__, 0, 0, i003, 0xabcd0030) 1043 } 1044 } else { 1045 CH03("", z138, 0x057, __LINE__, 0) 1046 } 1047 1048 // r001 1049 1050 Store(0xdddd0000, i003) 1051 CH03("", z138, 0x058, __LINE__, 0) 1052 Store(m005(1), i003) 1053 if (SLCK) { 1054 CH03("", z138, 0x059, __LINE__, 0) 1055 if (y901) { 1056 Store(0, Local0) 1057 } else { 1058 Store(Ones, Local0) 1059 } 1060 if (LNotEqual(i003, Local0)) { 1061 err("", z138, __LINE__, 0, 0, i003, Local0) 1062 } 1063 } else { 1064 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 1065 } 1066 1067 // r002 1068 1069 Store(0xdddd0000, i003) 1070 CH03("", z138, 0x05c, __LINE__, 0) 1071 Store(m005(2), i003) 1072 if (SLCK) { 1073 CH03("", z138, 0x05d, __LINE__, 0) 1074 if (y901) { 1075 Store(i006, Local0) 1076 } else { 1077 Store(0xaaaa0006, Local0) 1078 } 1079 if (LNotEqual(i003, Local0)) { 1080 err("", z138, __LINE__, 0, 0, i003, Local0) 1081 } 1082 } else { 1083 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 1084 } 1085 1086 // r003 1087 1088 Store(0xdddd0000, i003) 1089 CH03("", z138, 0x060, __LINE__, 0) 1090 Store(m005(3), i003) 1091 if (SLCK) { 1092 CH03("", z138, 0x061, __LINE__, 0) 1093 if (y901) { 1094 Store(i007, Local0) 1095 } else { 1096 Store(0xdddd0123, Local0) 1097 } 1098 if (LNotEqual(i003, Local0)) { 1099 err("", z138, __LINE__, 0, 0, i003, Local0) 1100 } 1101 } else { 1102 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 1103 } 1104} 1105 1106// Reproduces specific implicit return conditions 1107Method(mff1,, Serialized) 1108{ 1109 Name(fl00, 0) 1110 Name(i000, 0) 1111 Name(i001, 0) 1112 Name(i002, 0) 1113 Name(i003, 0) 1114 Name(i004, 0) 1115 Name(i005, 0) 1116 Name(i006, 0) 1117 Name(i007, 0) 1118 Name(i008, 0) 1119 1120 Method (m000, 1) 1121 { 1122 if (fl00) { 1123 Return ("m000") 1124 } 1125 Store (Arg0, i000) 1126 m001 (Arg0) 1127 } 1128 1129 Method (m001, 1) 1130 { 1131 Store (Arg0, i001) 1132 } 1133 1134 Method(m002) 1135 { 1136 if (fl00) { 1137 Return ("m002") 1138 } 1139 Or (0xf2, 0x01, Local0) 1140 m000 (Local0) 1141 } 1142 1143 // Case to call AcpiDsDoImplicitReturn with AddReference == 1 and 1144 // WalkState->ImplicitReturnObj == NULL 1145 1146 Method (m003) 1147 { 1148 Store(0xfabec, Local0) 1149 } 1150 1151 Method(m004) 1152 { 1153 if (fl00) { 1154 Return ("m004") 1155 } 1156 m003() 1157 } 1158 1159 // Case to call AcpiDsDoImplicitReturn with AddReference == 1 and 1160 // WalkState->ImplicitReturnObj == NULL, then check which a case of 1161 // AcpiDsClearImplicitReturn will be called when a new result appears. 1162 1163 Method (m005) 1164 { 1165 Store(0xfabec, Local0) 1166 } 1167 1168 Method(m006) 1169 { 1170 if (fl00) { 1171 Return ("m006") 1172 } 1173 1174 m005() 1175 1176 Store(0xcedab, Local0) 1177 } 1178 1179 // Case to call AcpiDsDoImplicitReturn with AddReference == 1 and 1180 // ReturnDesc != NULL && (WalkState->ImplicitReturnObj == ReturnDesc) 1181 // Case when Result is used 1182 1183 Method (m007) 1184 { 1185 Store(Store(Store(0xabcd, i002), i003), i004) 1186 } 1187 1188 1189 Method(m008) 1190 { 1191 if (fl00) { 1192 Return ("m008") 1193 } 1194 m007() 1195 } 1196 1197 // Case to call AcpiDsDoImplicitReturn with AddReference == 1 and 1198 // ReturnDesc != NULL && (WalkState->ImplicitReturnObj == ReturnDesc) 1199 // Case when Result is not used 1200 1201 Method (m009, 1) 1202 { 1203 if (arg0) { 1204 Store(Store(0x1234, i005), i006) 1205 } else { 1206 Store(Store(0x5678, i007), i008) 1207 } 1208 } 1209 1210 Method(m00a) 1211 { 1212 if (fl00) { 1213 Return ("m00a") 1214 } 1215 m009(0) 1216 m009(1) 1217 } 1218 1219 Method(m00b) 1220 { 1221 if (fl00) { 1222 Return ("m00b") 1223 } 1224 m009(1) 1225 m009(0) 1226 } 1227 1228 // m002 1229 1230 Store(0, Local0) 1231 CH03("", z138, 0x064, __LINE__, 0) 1232 Store(m002(), Local0) 1233 if (SLCK) { 1234 CH03("", z138, 0x065, __LINE__, 0) 1235 if (LNotEqual(Local0, 0xf3)) { 1236 err("", z138, __LINE__, 0, 0, Local0, 0xf3) 1237 } 1238 } else { 1239 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 1240 } 1241 1242 // m004 1243 1244 Store(0, Local0) 1245 CH03("", z138, 0x068, __LINE__, 0) 1246 Store(m004(), Local0) 1247 if (SLCK) { 1248 CH03("", z138, 0x069, __LINE__, 0) 1249 if (LNotEqual(Local0, 0xfabec)) { 1250 err("", z138, __LINE__, 0, 0, Local0, 0xfabec) 1251 } 1252 } else { 1253 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 1254 } 1255 1256 // m006 1257 1258 Store(0, Local0) 1259 CH03("", z138, 0x06e, __LINE__, 0) 1260 Store(m006(), Local0) 1261 if (SLCK) { 1262 CH03("", z138, 0x06f, __LINE__, 0) 1263 if (LNotEqual(Local0, 0xcedab)) { 1264 err("", z138, __LINE__, 0, 0, Local0, 0xcedab) 1265 } 1266 } else { 1267 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 1268 } 1269 1270 // m008 1271 1272 Store(0, Local0) 1273 CH03("", z138, 0x072, __LINE__, 0) 1274 Store(m008(), Local0) 1275 if (SLCK) { 1276 CH03("", z138, 0x073, __LINE__, 0) 1277 if (LNotEqual(Local0, 0xabcd)) { 1278 err("", z138, __LINE__, 0, 0, Local0, 0xabcd) 1279 } 1280 } else { 1281 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 1282 } 1283 1284 // m00a 1285 1286 Store(0, Local0) 1287 CH03("", z138, 0x076, __LINE__, 0) 1288 Store(m00a(), Local0) 1289 if (SLCK) { 1290 CH03("", z138, 0x077, __LINE__, 0) 1291 if (LNotEqual(Local0, 0x1234)) { 1292 err("", z138, __LINE__, 0, 0, Local0, 0x1234) 1293 } 1294 } else { 1295 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 1296 } 1297 1298 // m00b 1299 1300 Store(0, Local0) 1301 CH03("", z138, 0x080, __LINE__, 0) 1302 Store(m00b(), Local0) 1303 if (SLCK) { 1304 CH03("", z138, 0x081, __LINE__, 0) 1305 if (LNotEqual(Local0, 0x5678)) { 1306 err("", z138, __LINE__, 0, 0, Local0, 0x5678) 1307 } 1308 } else { 1309 CH04("", 0, 0xff, z138, __LINE__, 0, 0) 1310 } 1311 1312 if (LNotEqual(i000, 0xf3)) { 1313 err("", z138, __LINE__, 0, 0, i000, 0xf3) 1314 } 1315 if (LNotEqual(i001, 0xf3)) { 1316 err("", z138, __LINE__, 0, 0, i001, 0xf3) 1317 } 1318 if (LNotEqual(i002, 0xabcd)) { 1319 err("", z138, __LINE__, 0, 0, i002, 0xabcd) 1320 } 1321 if (LNotEqual(i003, 0xabcd)) { 1322 err("", z138, __LINE__, 0, 0, i003, 0xabcd) 1323 } 1324 if (LNotEqual(i004, 0xabcd)) { 1325 err("", z138, __LINE__, 0, 0, i004, 0xabcd) 1326 } 1327 if (LNotEqual(i005, 0x1234)) { 1328 err("", z138, __LINE__, 0, 0, i005, 0x1234) 1329 } 1330 if (LNotEqual(i006, 0x1234)) { 1331 err("", z138, __LINE__, 0, 0, i006, 0x1234) 1332 } 1333 if (LNotEqual(i007, 0x5678)) { 1334 err("", z138, __LINE__, 0, 0, i007, 0x5678) 1335 } 1336 if (LNotEqual(i008, 0x5678)) { 1337 err("", z138, __LINE__, 0, 0, i008, 0x5678) 1338 } 1339} 1340