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