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