1/* 2 * Some or all of this work - Copyright (c) 2006 - 2016, 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 * Method 31 * 32 * (verify exceptions caused by the imprope use of Method type objects) 33 */ 34 35Name(z100, 100) 36 37Method(m4f0) {Return ("m4f0")} 38 39// Expected exceptions: 40// 41// 47 - AE_AML_OPERAND_TYPE 42// 43Method(m4b8,, Serialized) 44{ 45 Name(ts, "m4b8") 46 47 Method(m4f1) {Return ("m4f1")} 48 49 Event(e000) 50 51 Name(i000, 0) 52 53 // Local Named Object 54 Method(m000, 1) 55 { 56 Method(m4f2) {Return ("m4f2")} 57 58 if (y083) { 59 Store (DerefOf(m4f2), Local1) 60 CH06(arg0, 0, 47) 61 } 62 } 63 64 // Global Named Object 65 Method(m001, 1) 66 { 67 if (y083) { 68 Store (DerefOf(m4f0), Local1) 69 CH06(arg0, 1, 47) 70 } 71 } 72 73 // Local 74 Method(m002, 1, Serialized) 75 { 76 Method(m4f2) {Return ("m4f2")} 77 78 Event(e000) 79 80 CopyObject(Derefof(Refof(m4f2)), Local0) 81 82 // CondRefOf 83 84 CondRefOf(Local0, Local1) 85 CH03(ts, z100, 1, 0, 0) 86 87 // CopyObject 88 89 CopyObject(Local0, Local1) 90 CH03(ts, z100, 2, 0, 0) 91 92 // Decrement 93 94 Decrement(Local0) 95 CH06(arg0, 1, 47) 96 97 // DerefOf 98 99 Store (DerefOf(Local0), Local1) 100 CH06(arg0, 2, 47) 101 102 // FindSetLeftBit 103 104 FindSetLeftBit(Local0, Local1) 105 CH06(arg0, 4, 47) 106 107 // FindSetRightBit 108 109 FindSetRightBit(Local0, Local1) 110 CH06(arg0, 6, 47) 111 112 // FromBCD 113 114 FromBCD(Local0, Local1) 115 CH06(arg0, 8, 47) 116 117 // Increment 118 119 Increment(Local0) 120 CH06(arg0, 9, 47) 121 122 // LNot 123 124 Store (LNot(Local0), Local1) 125 CH06(arg0, 10, 47) 126 127 // Not 128 129 Not(Local0, Local1) 130 CH06(arg0, 12, 47) 131 132 // ObjectType 133 134 Store (ObjectType(Local0), Local1) 135 CH03(ts, z100, 3, 0, 0) 136 137 // RefOf 138 139 Store (RefOf(Local0), Local1) 140 CH03(ts, z100, 4, 0, 0) 141 142 // Release 143 144 Release(Local0) 145 CH06(arg0, 13, 47) 146 147 // Reset 148 149 Reset(Local0) 150 CH06(arg0, 14, 47) 151 152 // Signal 153 154 Signal(Local0) 155 CH06(arg0, 15, 47) 156 157 // SizeOf 158 159 Store (SizeOf(Local0), Local1) 160 CH06(arg0, 16, 47) 161 162 // Sleep 163 164 Sleep(Local0) 165 CH06(arg0, 17, 47) 166 167 // Stall 168 169 Stall(Local0) 170 CH06(arg0, 18, 47) 171 172 // Store 173 174 Store(Local0, Local1) 175 CH06(arg0, 19, 47) 176 177 // ToBCD 178 179 ToBCD(Local0, Local1) 180 CH06(arg0, 21, 47) 181 182 // ToBuffer 183 184 ToBuffer(Local0, Local1) 185 CH06(arg0, 23, 47) 186 187 // ToDecimalString 188 189 ToDecimalString(Local0, Local1) 190 CH06(arg0, 25, 47) 191 192 // ToHexString 193 194 ToHexString(Local0, Local1) 195 CH06(arg0, 27, 47) 196 197 // ToInteger 198 199 ToInteger(Local0, Local1) 200 CH06(arg0, 29, 47) 201 202 // Acquire 203 204 Store(Acquire(Local0, 100), Local1) 205 CH06(arg0, 30, 47) 206 207 // Add 208 209 Add(Local0, i000, Local1) 210 CH06(arg0, 33, 47) 211 212 Add(i000, Local0, Local1) 213 CH06(arg0, 34, 47) 214 215 // And 216 217 And(Local0, i000, Local1) 218 CH06(arg0, 37, 47) 219 220 And(i000, Local0, Local1) 221 CH06(arg0, 38, 47) 222 223 // Concatenate 224 225 Concatenate(Local0, i000, Local1) 226 CH06(arg0, 41, 47) 227 228 Concatenate(i000, Local0, Local1) 229 CH06(arg0, 42, 47) 230 231 // ConcatenateResTemplate 232 233 ConcatenateResTemplate(Local0, ResourceTemplate(){}, Local1) 234 CH06(arg0, 45, 47) 235 236 ConcatenateResTemplate(ResourceTemplate(){}, Local0, Local1) 237 CH06(arg0, 46, 47) 238 239 // Divide 240 241 Divide(Local0, i000, Local2) 242 CH06(arg0, 49, 47) 243 244 Divide(i000, Local0, Local2) 245 CH06(arg0, 50, 47) 246 247 Divide(Local0, i000, Local2, Local1) 248 CH06(arg0, 51, 47) 249 250 Divide(i000, Local0, Local2, Local1) 251 CH06(arg0, 52, 47) 252 253 // Fatal 254 255 Fatal(0xff, 0xffffffff, Local0) 256 CH06(arg0, 53, 47) 257 258 // Index 259 260 Index(Local0, 0, Local1) 261 CH06(arg0, 56, 47) 262 263 Index("0", Local0, Local1) 264 CH06(arg0, 57, 47) 265 266 // LEqual 267 268 Store (LEqual(Local0, i000), Local1) 269 CH06(arg0, 58, 47) 270 271 Store (LEqual(i000, Local0), Local1) 272 CH06(arg0, 59, 47) 273 274 // LGreater 275 276 Store (LGreater(Local0, i000), Local1) 277 CH06(arg0, 60, 47) 278 279 Store (LGreater(i000, Local0), Local1) 280 CH06(arg0, 61, 47) 281 282 // LGreaterEqual 283 284 Store (LGreaterEqual(Local0, i000), Local1) 285 CH06(arg0, 62, 0xff) 286 287 Store (LGreaterEqual(i000, Local0), Local1) 288 CH06(arg0, 63, 0xff) 289 290 // LLess 291 292 Store (LLess(Local0, i000), Local1) 293 CH06(arg0, 64, 47) 294 295 Store (LLess(i000, Local0), Local1) 296 CH06(arg0, 65, 47) 297 298 // LLessEqual 299 300 Store (LLessEqual(Local0, i000), Local1) 301 CH06(arg0, 66, 0xff) 302 303 Store (LLessEqual(i000, Local0), Local1) 304 CH06(arg0, 67, 0xff) 305 306 // LNotEqual 307 308 Store (LNotEqual(Local0, i000), Local1) 309 CH06(arg0, 68, 0xff) 310 311 Store (LNotEqual(i000, Local0), Local1) 312 CH06(arg0, 69, 0xff) 313 314 // LOr 315 316 Store (LOr(Local0, i000), Local1) 317 CH06(arg0, 70, 47) 318 319 Store (LOr(i000, Local0), Local1) 320 CH06(arg0, 71, 47) 321 322 // Mod 323 324 Mod(Local0, i000, Local1) 325 CH06(arg0, 74, 47) 326 327 Mod(i000, Local0, Local1) 328 CH06(arg0, 75, 47) 329 330 // Multiply 331 332 Multiply(Local0, i000, Local1) 333 CH06(arg0, 78, 47) 334 335 Multiply(i000, Local0, Local1) 336 CH06(arg0, 79, 47) 337 338 // NAnd 339 340 NAnd(Local0, i000, Local1) 341 CH06(arg0, 82, 47) 342 343 NAnd(i000, Local0, Local1) 344 CH06(arg0, 83, 47) 345 346 // NOr 347 348 NOr(Local0, i000, Local1) 349 CH06(arg0, 86, 47) 350 351 NOr(i000, Local0, Local1) 352 CH06(arg0, 87, 47) 353 354 // Or 355 356 Or(Local0, i000, Local1) 357 CH06(arg0, 90, 47) 358 359 Or(i000, Local0, Local1) 360 CH06(arg0, 91, 47) 361 362 // ShiftLeft 363 364 ShiftLeft(Local0, i000, Local1) 365 CH06(arg0, 94, 47) 366 367 ShiftLeft(i000, Local0, Local1) 368 CH06(arg0, 95, 47) 369 370 // ShiftRight 371 372 ShiftRight(Local0, i000, Local1) 373 CH06(arg0, 98, 47) 374 375 ShiftRight(i000, Local0, Local1) 376 CH06(arg0, 99, 47) 377 378 // Subtract 379 380 Subtract(Local0, i000, Local1) 381 CH06(arg0, 102, 47) 382 383 Subtract(i000, Local0, Local1) 384 CH06(arg0, 103, 47) 385 386 // ToString 387 388 ToString(Local0, 1, Local1) 389 CH06(arg0, 106, 47) 390 391 ToString(i000, Local0, Local1) 392 CH06(arg0, 107, 47) 393 394 // Wait 395 396 Store(Wait(Local0, i000), Local1) 397 CH06(arg0, 108, 47) 398 399 Store(Wait(e000, Local0), Local1) 400 CH06(arg0, 109, 47) 401 402 // XOr 403 404 XOr(Local0, i000, Local1) 405 CH06(arg0, 112, 47) 406 407 XOr(i000, Local0, Local1) 408 CH06(arg0, 113, 47) 409 410 // Mid 411 412 Mid(Local0, 1, 1, Local1) 413 CH06(arg0, 117, 47) 414 415 Mid("123", Local0, 1, Local1) 416 CH06(arg0, 118, 47) 417 418 Mid("123", 1, Local0, Local1) 419 CH06(arg0, 119, 47) 420 421 // Match 422 423 Store (Match(Local0, MTR, 0, MTR, 0, 0), Local1) 424 CH06(arg0, 120, 47) 425 426 Store (Match(Package(){1}, MTR, Local0, MTR, 0, 0), Local1) 427 CH06(arg0, 121, 47) 428 429 Store (Match(Package(){1}, MTR, 0, MTR, Local0, 0), Local1) 430 CH06(arg0, 122, 47) 431 432 Store (Match(Package(){1}, MTR, 0, MTR, 0, Local0), Local1) 433 CH06(arg0, 123, 47) 434 } 435 436 // Reference to Object 437 Method(m003, 2) 438 { 439 Store(ObjectType(arg1), Local0) 440 if (LNotEqual(Local0, 8)) { 441 err(arg0, z100, 200, 0, 0, Local0, 8) 442 return (1) 443 } 444 445 Store (DeRefOf(arg1), Local1) 446 if(LNot(SLCK)){ 447 CH04(ts, 0, 47, z100, 5, 0, 0) 448 } 449 450 // CondRefOf 451 452 CondRefOf(DeRefOf(arg1), Local1) 453 CH06(arg0, 1, 47) 454 455 // CopyObject 456 457 CopyObject(DeRefOf(arg1), Local1) 458 CH03(ts, z100, 2, 0, 0) 459 460 // Decrement 461 462 Decrement(DeRefOf(arg1)) 463 CH06(arg0, 3, 47) 464 465 // DerefOf 466 467 Store (DerefOf(DeRefOf(arg1)), Local1) 468 CH06(arg0, 4, 47) 469 470 // FindSetLeftBit 471 472 FindSetLeftBit(DeRefOf(arg1), Local1) 473 CH06(arg0, 6, 47) 474 475 // FindSetRightBit 476 477 FindSetRightBit(DeRefOf(arg1), Local1) 478 CH06(arg0, 8, 47) 479 480 // FromBCD 481 482 FromBCD(DeRefOf(arg1), Local1) 483 CH06(arg0, 10, 47) 484 485 // Increment 486 487 Increment(DeRefOf(arg1)) 488 CH06(arg0, 11, 47) 489 490 // LNot 491 492 Store (LNot(DeRefOf(arg1)), Local1) 493 CH06(arg0, 12, 47) 494 495 // Not 496 497 Not(DeRefOf(arg1), Local1) 498 CH06(arg0, 14, 47) 499 500 // ObjectType 501 502 Store (ObjectType(DeRefOf(arg1)), Local1) 503 CH03(ts, z100, 6, 0, 0) 504 505 // RefOf 506 507 Store (RefOf(DeRefOf(arg1)), Local1) 508 CH06(arg0, 15, 47) 509 510 // Release 511 512 // Reset 513 514 // Signal 515 516 // SizeOf 517 518 Store (SizeOf(DeRefOf(arg1)), Local1) 519 CH06(arg0, 16, 47) 520 521 // Sleep 522 523 Sleep(DeRefOf(arg1)) 524 CH06(arg0, 17, 47) 525 526 // Stall 527 528 Stall(DeRefOf(arg1)) 529 CH06(arg0, 18, 47) 530 531 // Store 532 533 Store(DeRefOf(arg1), Local1) 534 CH06(arg0, 19, 47) 535 536 // ToBCD 537 538 ToBCD(DeRefOf(arg1), Local1) 539 CH06(arg0, 21, 47) 540 541 // ToBuffer 542 543 ToBuffer(DeRefOf(arg1), Local1) 544 CH06(arg0, 23, 47) 545 546 // ToDecimalString 547 548 ToDecimalString(DeRefOf(arg1), Local1) 549 CH06(arg0, 25, 47) 550 551 // ToHexString 552 553 ToHexString(DeRefOf(arg1), Local1) 554 CH06(arg0, 27, 47) 555 556 // ToInteger 557 558 ToInteger(DeRefOf(arg1), Local1) 559 CH06(arg0, 29, 47) 560 561 // Acquire 562 563 // Add 564 565 Add(DeRefOf(arg1), i000, Local1) 566 CH06(arg0, 33, 47) 567 568 Add(i000, DeRefOf(arg1), Local1) 569 CH06(arg0, 34, 47) 570 571 // And 572 573 And(DeRefOf(arg1), i000, Local1) 574 CH06(arg0, 37, 47) 575 576 And(i000, DeRefOf(arg1), Local1) 577 CH06(arg0, 38, 47) 578 579 // Concatenate 580 581 Concatenate(DeRefOf(arg1), i000, Local1) 582 CH06(arg0, 41, 47) 583 584 Concatenate(i000, DeRefOf(arg1), Local1) 585 CH06(arg0, 42, 47) 586 587 // ConcatenateResTemplate 588 589 ConcatenateResTemplate(DeRefOf(arg1), ResourceTemplate(){}, Local1) 590 CH06(arg0, 45, 47) 591 592 ConcatenateResTemplate(ResourceTemplate(){}, DeRefOf(arg1), Local1) 593 CH06(arg0, 46, 47) 594 595 // Divide 596 597 Divide(DeRefOf(arg1), i000, Local2) 598 CH06(arg0, 49, 47) 599 600 Divide(i000, DeRefOf(arg1), Local2) 601 CH06(arg0, 50, 47) 602 603 Divide(DeRefOf(arg1), i000, Local2, Local1) 604 CH06(arg0, 51, 47) 605 606 Divide(i000, DeRefOf(arg1), Local2, Local1) 607 CH06(arg0, 52, 47) 608 609 // Fatal 610 611 Fatal(0xff, 0xffffffff, DeRefOf(arg1)) 612 CH06(arg0, 53, 47) 613 614 // Index 615 616 Index(DeRefOf(arg1), 0, Local1) 617 CH06(arg0, 56, 47) 618 619 Index("0", DeRefOf(arg1), Local1) 620 CH06(arg0, 57, 47) 621 622 // LEqual 623 624 Store (LEqual(DeRefOf(arg1), i000), Local1) 625 CH06(arg0, 58, 47) 626 627 Store (LEqual(i000, DeRefOf(arg1)), Local1) 628 CH06(arg0, 59, 47) 629 630 // LGreater 631 632 Store (LGreater(DeRefOf(arg1), i000), Local1) 633 CH06(arg0, 60, 47) 634 635 Store (LGreater(i000, DeRefOf(arg1)), Local1) 636 CH06(arg0, 61, 47) 637 638 // LGreaterEqual 639 640 Store (LGreaterEqual(DeRefOf(arg1), i000), Local1) 641 CH06(arg0, 62, 0xff) 642 643 Store (LGreaterEqual(i000, DeRefOf(arg1)), Local1) 644 CH06(arg0, 63, 0xff) 645 646 // LLess 647 648 Store (LLess(DeRefOf(arg1), i000), Local1) 649 CH06(arg0, 64, 47) 650 651 Store (LLess(i000, DeRefOf(arg1)), Local1) 652 CH06(arg0, 65, 47) 653 654 // LLessEqual 655 656 Store (LLessEqual(DeRefOf(arg1), i000), Local1) 657 CH06(arg0, 66, 0xff) 658 659 Store (LLessEqual(i000, DeRefOf(arg1)), Local1) 660 CH06(arg0, 67, 0xff) 661 662 // LNotEqual 663 664 Store (LNotEqual(DeRefOf(arg1), i000), Local1) 665 CH06(arg0, 68, 0xff) 666 667 Store (LNotEqual(i000, DeRefOf(arg1)), Local1) 668 CH06(arg0, 69, 0xff) 669 670 // LOr 671 672 Store (LOr(DeRefOf(arg1), i000), Local1) 673 CH06(arg0, 70, 47) 674 675 Store (LOr(i000, DeRefOf(arg1)), Local1) 676 CH06(arg0, 71, 47) 677 678 // Mod 679 680 Mod(DeRefOf(arg1), i000, Local1) 681 CH06(arg0, 74, 47) 682 683 Mod(i000, DeRefOf(arg1), Local1) 684 CH06(arg0, 75, 47) 685 686 // Multiply 687 688 Multiply(DeRefOf(arg1), i000, Local1) 689 CH06(arg0, 78, 47) 690 691 Multiply(i000, DeRefOf(arg1), Local1) 692 CH06(arg0, 79, 47) 693 694 // NAnd 695 696 NAnd(DeRefOf(arg1), i000, Local1) 697 CH06(arg0, 82, 47) 698 699 NAnd(i000, DeRefOf(arg1), Local1) 700 CH06(arg0, 83, 47) 701 702 // NOr 703 704 NOr(DeRefOf(arg1), i000, Local1) 705 CH06(arg0, 86, 47) 706 707 NOr(i000, DeRefOf(arg1), Local1) 708 CH06(arg0, 87, 47) 709 710 // Or 711 712 Or(DeRefOf(arg1), i000, Local1) 713 CH06(arg0, 90, 47) 714 715 Or(i000, DeRefOf(arg1), Local1) 716 CH06(arg0, 91, 47) 717 718 // ShiftLeft 719 720 ShiftLeft(DeRefOf(arg1), i000, Local1) 721 CH06(arg0, 94, 47) 722 723 ShiftLeft(i000, DeRefOf(arg1), Local1) 724 CH06(arg0, 95, 47) 725 726 // ShiftRight 727 728 ShiftRight(DeRefOf(arg1), i000, Local1) 729 CH06(arg0, 98, 47) 730 731 ShiftRight(i000, DeRefOf(arg1), Local1) 732 CH06(arg0, 99, 47) 733 734 // Subtract 735 736 Subtract(DeRefOf(arg1), i000, Local1) 737 CH06(arg0, 102, 47) 738 739 Subtract(i000, DeRefOf(arg1), Local1) 740 CH06(arg0, 103, 47) 741 742 // ToString 743 744 ToString(DeRefOf(arg1), 1, Local1) 745 CH06(arg0, 106, 47) 746 747 ToString(i000, DeRefOf(arg1), Local1) 748 CH06(arg0, 107, 47) 749 750 // Wait 751 752 Store(Wait(e000, DeRefOf(arg1)), Local1) 753 CH06(arg0, 109, 47) 754 755 // XOr 756 757 XOr(DeRefOf(arg1), i000, Local1) 758 CH06(arg0, 112, 47) 759 760 XOr(i000, DeRefOf(arg1), Local1) 761 CH06(arg0, 113, 47) 762 763 // Mid 764 765 Mid(DeRefOf(arg1), 1, 1, Local1) 766 CH06(arg0, 117, 47) 767 768 Mid("123", DeRefOf(arg1), 1, Local1) 769 CH06(arg0, 118, 47) 770 771 Mid("123", 1, DeRefOf(arg1), Local1) 772 CH06(arg0, 119, 47) 773 774 // Match 775 776 Store (Match(DeRefOf(arg1), MTR, 0, MTR, 0, 0), Local1) 777 CH06(arg0, 120, 47) 778 779 Store (Match(Package(){1}, MTR, DeRefOf(arg1), MTR, 0, 0), Local1) 780 CH06(arg0, 121, 47) 781 782 Store (Match(Package(){1}, MTR, 0, MTR, DeRefOf(arg1), 0), Local1) 783 CH06(arg0, 122, 47) 784 785 Store (Match(Package(){1}, MTR, 0, MTR, 0, DeRefOf(arg1)), Local1) 786 CH06(arg0, 123, 47) 787 788 return (0) 789 } 790 791 // Result of Method invocation 792 Method(m004, 1, Serialized) 793 { 794 Name(i000, 0) // Label to check m000 invocations 795 796 Method(m000) 797 { 798 CopyObject(Derefof(Refof(m4f0)), Local0) 799 Return (Local0) 800 } 801 802 // CondRefOf 803 804 if (y601) { 805 Store (CondRefOf(m000()), Local1) 806 CH06(arg0, 0, 47) 807 808 CondRefOf(m000(), Local1) 809 CH06(arg0, 1, 47) 810 } 811 812 // CopyObject 813 814 CopyObject(m000(), Local1) 815 CH03(ts, z100, 7, 0, 0) 816 817 // Decrement 818 819 Decrement(m000()) 820 CH06(arg0, 2, 47) 821 822 // DerefOf 823 824 Store (DerefOf(m000()), Local1) 825 CH06(arg0, 3, 47) 826 827 // FindSetLeftBit 828 829 FindSetLeftBit(m000(), Local1) 830 CH06(arg0, 5, 47) 831 832 // FindSetRightBit 833 834 FindSetRightBit(m000(), Local1) 835 CH06(arg0, 7, 47) 836 837 // FromBCD 838 839 FromBCD(m000(), Local1) 840 CH06(arg0, 9, 47) 841 842 // Increment 843 844 Increment(m000()) 845 CH06(arg0, 10, 47) 846 847 // LNot 848 849 Store (LNot(m000()), Local1) 850 CH06(arg0, 11, 47) 851 852 // Not 853 854 Not(m000(), Local1) 855 CH06(arg0, 13, 47) 856 857 // ObjectType 858 /* Nov. 2012: Method invocation as arg to ObjectType is now illegal */ 859// 860// ObjectType(m000()) 861// CH03(ts, z100, 8, 0, 0) 862 863 // RefOf 864 865 if (y601) { 866 Store (RefOf(m000()), Local1) 867 CH06(arg0, 14, 47) 868 } 869 870 // Release 871 872 Release(m000()) 873 CH06(arg0, 13, 47) 874 875 // Reset 876 877 Reset(m000()) 878 CH06(arg0, 14, 47) 879 880 // Signal 881 882 Signal(m000()) 883 CH06(arg0, 15, 47) 884 885 // SizeOf 886 887 Store (SizeOf(m000()), Local1) 888 CH06(arg0, 16, 47) 889 890 // Sleep 891 892 Sleep(m000()) 893 CH06(arg0, 17, 47) 894 895 // Stall 896 897 Stall(m000()) 898 CH06(arg0, 18, 47) 899 900 // Store 901 902 Store(m000(), Local1) 903 CH06(arg0, 19, 47) 904 905 // ToBCD 906 907 ToBCD(m000(), Local1) 908 CH06(arg0, 21, 47) 909 910 // ToBuffer 911 912 ToBuffer(m000(), Local1) 913 CH06(arg0, 23, 47) 914 915 // ToDecimalString 916 917 ToDecimalString(m000(), Local1) 918 CH06(arg0, 25, 47) 919 920 // ToHexString 921 922 ToHexString(m000(), Local1) 923 CH06(arg0, 27, 47) 924 925 // ToInteger 926 927 ToInteger(m000(), Local1) 928 CH06(arg0, 29, 47) 929 930 // Acquire 931 932 Store(Acquire(m000(), 100), Local1) 933 CH06(arg0, 30, 47) 934 935 // Add 936 937 Add(m000(), i000, Local1) 938 CH06(arg0, 33, 47) 939 940 Add(i000, m000(), Local1) 941 CH06(arg0, 34, 47) 942 943 // And 944 945 And(m000(), i000, Local1) 946 CH06(arg0, 37, 47) 947 948 And(i000, m000(), Local1) 949 CH06(arg0, 38, 47) 950 951 // Concatenate 952 953 Concatenate(m000(), i000, Local1) 954 CH06(arg0, 41, 47) 955 956 Concatenate(i000, m000(), Local1) 957 CH06(arg0, 42, 47) 958 959 // ConcatenateResTemplate 960 961 ConcatenateResTemplate(m000(), ResourceTemplate(){}, Local1) 962 CH06(arg0, 45, 47) 963 964 ConcatenateResTemplate(ResourceTemplate(){}, m000(), Local1) 965 CH06(arg0, 46, 47) 966 967 // Divide 968 969 Divide(m000(), i000, Local2) 970 CH06(arg0, 49, 47) 971 972 Divide(i000, m000(), Local2) 973 CH06(arg0, 50, 47) 974 975 Divide(m000(), i000, Local2, Local1) 976 CH06(arg0, 51, 47) 977 978 Divide(i000, m000(), Local2, Local1) 979 CH06(arg0, 52, 47) 980 981 // Fatal 982 983 Fatal(0xff, 0xffffffff, m000()) 984 CH06(arg0, 53, 47) 985 986 // Index 987 988 Index(m000(), 0, Local1) 989 CH06(arg0, 56, 47) 990 991 Index("0", m000(), Local1) 992 CH06(arg0, 57, 47) 993 994 // LEqual 995 996 Store (LEqual(m000(), i000), Local1) 997 CH06(arg0, 58, 47) 998 999 Store (LEqual(i000, m000()), Local1) 1000 CH06(arg0, 59, 47) 1001 1002 // LGreater 1003 1004 Store (LGreater(m000(), i000), Local1) 1005 CH06(arg0, 60, 47) 1006 1007 Store (LGreater(i000, m000()), Local1) 1008 CH06(arg0, 61, 47) 1009 1010 // LGreaterEqual 1011 1012 Store (LGreaterEqual(m000(), i000), Local1) 1013 CH06(arg0, 62, 0xff) 1014 1015 Store (LGreaterEqual(i000, m000()), Local1) 1016 CH06(arg0, 63, 0xff) 1017 1018 // LLess 1019 1020 Store (LLess(m000(), i000), Local1) 1021 CH06(arg0, 64, 47) 1022 1023 Store (LLess(i000, m000()), Local1) 1024 CH06(arg0, 65, 47) 1025 1026 // LLessEqual 1027 1028 Store (LLessEqual(m000(), i000), Local1) 1029 CH06(arg0, 66, 0xff) 1030 1031 Store (LLessEqual(i000, m000()), Local1) 1032 CH06(arg0, 67, 0xff) 1033 1034 // LNotEqual 1035 1036 Store (LNotEqual(m000(), i000), Local1) 1037 CH06(arg0, 68, 0xff) 1038 1039 Store (LNotEqual(i000, m000()), Local1) 1040 CH06(arg0, 69, 0xff) 1041 1042 // LOr 1043 1044 Store (LOr(m000(), i000), Local1) 1045 CH06(arg0, 70, 47) 1046 1047 Store (LOr(i000, m000()), Local1) 1048 CH06(arg0, 71, 47) 1049 1050 // Mod 1051 1052 Mod(m000(), i000, Local1) 1053 CH06(arg0, 74, 47) 1054 1055 Mod(i000, m000(), Local1) 1056 CH06(arg0, 75, 47) 1057 1058 // Multiply 1059 1060 Multiply(m000(), i000, Local1) 1061 CH06(arg0, 78, 47) 1062 1063 Multiply(i000, m000(), Local1) 1064 CH06(arg0, 79, 47) 1065 1066 // NAnd 1067 1068 NAnd(m000(), i000, Local1) 1069 CH06(arg0, 82, 47) 1070 1071 NAnd(i000, m000(), Local1) 1072 CH06(arg0, 83, 47) 1073 1074 // NOr 1075 1076 NOr(m000(), i000, Local1) 1077 CH06(arg0, 86, 47) 1078 1079 NOr(i000, m000(), Local1) 1080 CH06(arg0, 87, 47) 1081 1082 // Or 1083 1084 Or(m000(), i000, Local1) 1085 CH06(arg0, 90, 47) 1086 1087 Or(i000, m000(), Local1) 1088 CH06(arg0, 91, 47) 1089 1090 // ShiftLeft 1091 1092 ShiftLeft(m000(), i000, Local1) 1093 CH06(arg0, 94, 47) 1094 1095 ShiftLeft(i000, m000(), Local1) 1096 CH06(arg0, 95, 47) 1097 1098 // ShiftRight 1099 1100 ShiftRight(m000(), i000, Local1) 1101 CH06(arg0, 98, 47) 1102 1103 ShiftRight(i000, m000(), Local1) 1104 CH06(arg0, 99, 47) 1105 1106 // Subtract 1107 1108 Subtract(m000(), i000, Local1) 1109 CH06(arg0, 102, 47) 1110 1111 Subtract(i000, m000(), Local1) 1112 CH06(arg0, 103, 47) 1113 1114 // ToString 1115 1116 ToString(m000(), 1, Local1) 1117 CH06(arg0, 106, 47) 1118 1119 ToString(i000, m000(), Local1) 1120 CH06(arg0, 107, 47) 1121 1122 // Wait 1123 1124 Store(Wait(m000(), i000), Local1) 1125 CH06(arg0, 108, 47) 1126 1127 Store(Wait(e000, m000()), Local1) 1128 CH06(arg0, 109, 47) 1129 1130 // XOr 1131 1132 XOr(m000(), i000, Local1) 1133 CH06(arg0, 112, 47) 1134 1135 XOr(i000, m000(), Local1) 1136 CH06(arg0, 113, 47) 1137 1138 // Mid 1139 1140 Mid(m000(), 1, 1, Local1) 1141 CH06(arg0, 117, 47) 1142 1143 Mid("123", m000(), 1, Local1) 1144 CH06(arg0, 118, 47) 1145 1146 Mid("123", 1, m000(), Local1) 1147 CH06(arg0, 119, 47) 1148 1149 // Match 1150 1151 Store (Match(m000(), MTR, 0, MTR, 0, 0), Local1) 1152 CH06(arg0, 120, 47) 1153 1154 Store (Match(Package(){1}, MTR, m000(), MTR, 0, 0), Local1) 1155 CH06(arg0, 121, 47) 1156 1157 Store (Match(Package(){1}, MTR, 0, MTR, m000(), 0), Local1) 1158 CH06(arg0, 122, 47) 1159 1160 Store (Match(Package(){1}, MTR, 0, MTR, 0, m000()), Local1) 1161 CH06(arg0, 123, 47) 1162 } 1163 1164 // Reference to Object as Result of Method invocation 1165 Method(m005, 1, Serialized) 1166 { 1167 Method(m4f2) {Return ("m4f2")} 1168 1169 Name(i000, 0) // Label to check m000 invocations 1170 1171 Method(m000, 2) 1172 { 1173 Store(arg0, i000) 1174 if (LEqual(arg1, 0)) { 1175 Store(Refof(m4f0), Local0) 1176 } elseif (LEqual(arg1, 1)) { 1177 Store(Refof(m4f2), Local0) 1178 } 1179 Return (Local0) 1180 } 1181 1182 Method(CH00, 2) 1183 { 1184 if (LNotEqual(i000, arg1)) { 1185 err(arg0, z100, 0, 0, 0, i000, arg1) 1186 } 1187 } 1188 1189 Name(lpN0, 2) 1190 Name(lpC0, 0) 1191 1192 While (lpN0) { 1193 Multiply(3, lpC0, Local0) 1194 1195 Store(0, i000) 1196 1197 Store (DerefOf(m000(1, lpC0)), Local1) 1198 if(LNot(SLCK)){ 1199 CH04(ts, 0, 47, z100, Add(9, lpC0), 0, 0) 1200 } 1201 CH00(arg0, 1) 1202 1203 Store (DerefOf(DerefOf(m000(2, lpC0))), Local1) 1204 if(LNot(SLCK)){ 1205 CH06(arg0, Add(1, Local0), 47) 1206 } 1207 CH00(arg0, 2) 1208 1209 Store (Index(DerefOf(m000(3, lpC0)), 0), Local1) 1210 CH06(arg0, Add(2, Local0), 47) 1211 CH00(arg0, 3) 1212 1213 Store (Match(DerefOf(m000(4, lpC0)), MTR, 0, MTR, 0, 0), Local1) 1214 CH06(arg0, Add(3, Local0), 47) 1215 CH00(arg0, 4) 1216 1217 Decrement(lpN0) 1218 Increment(lpC0) 1219 } 1220 } 1221 1222 SET0(z100, ts, 0) 1223 1224 CH03(ts, z100, 11, 0, 0) 1225 1226 // Local Named Object 1227 m000(ts) 1228 1229 // Global Named Object 1230 m001(ts) 1231 1232 // Local 1233 m002(Concatenate(ts, "-m002")) 1234 1235 // Reference to Local Named Object 1236 1237 m003(Concatenate(ts, "-m003-RefLocName"), RefOf(m4f1)) 1238 1239 Store(RefOf(m4f1), Local0) 1240 m003(Concatenate(ts, "-m003-RefLocName2"), Local0) 1241 1242 CondRefOf(m4f1, Local0) 1243 m003(Concatenate(ts, "-m003-CondRefLocName"), Local0) 1244 1245 m003(Concatenate(ts, "-m003-RefGlobName"), RefOf(m4f0)) 1246 1247 Store(RefOf(m4f0), Local0) 1248 m003(Concatenate(ts, "-m003-RefGlobName2"), Local0) 1249 1250 CondRefOf(m4f0, Local0) 1251 m003(Concatenate(ts, "-m003-CondRefGlobName"), Local0) 1252 1253 // Reference to Object as element of Package 1254 1255 Name(pp00, Package(){m4f0}) 1256 1257 if (y113) { 1258 m003(Concatenate(ts, "-m003-Index"), Index(pp00, 0)) 1259 } 1260 1261 Store(Index(pp00, 0), Local1) 1262 m003(Concatenate(ts, "-m003-Index2"), Local1) 1263 1264 if (y113) { 1265 m003(Concatenate(ts, "-m003-Index3"), Index(pp00, 0, Local2)) 1266 } 1267 1268 Index(pp00, 0, Local3) 1269 m003(Concatenate(ts, "-m003-Index4"), Local3) 1270 1271 Store(Index(pp00, 0, Local4), Local5) 1272 m003(Concatenate(ts, "-m003-Index5"), Local5) 1273 1274 // Result of Method invocation 1275 m004(Concatenate(ts, "-m004")) 1276 1277 // Reference to Object as Result of Method invocation 1278 m005(Concatenate(ts, "-m005")) 1279 1280 RST0() 1281} 1282