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     *  Processor
30     *
31     * (verify exceptions caused by the imprope use of Processor type objects)
32     */
33    Name (Z104, 0x68)
34    Processor (PR10, 0x00, 0xFFFFFFFF, 0x00){}
35    /* Expected exceptions: */
36    /* */
37    /* 47 - AE_AML_OPERAND_TYPE */
38    /* */
39    Method (M4BC, 0, Serialized)
40    {
41        Processor (PRC1, 0x00, 0xFFFFFFFF, 0x00){}
42        Event (E000)
43        Name (I000, 0x00)
44        /* Local Named Object */
45
46        Method (M000, 1, Serialized)
47        {
48                /* These are now caught by the compiler - Aug 2015
49         Processor(prc2, 0, 0xFFFFFFFF, 0) {}
50         if (y083) {
51         Store (DerefOf(prc2), Local1)
52         CH06(arg0, 0, 47)
53         }
54         */
55        }
56
57        /* Global Named Object */
58
59        Method (M001, 1, NotSerialized)
60        {
61                /* These are now caught by the compiler - Aug 2015
62         if (y083) {
63         Store (DerefOf(pr10), Local1)
64         CH06(arg0, 1, 47)
65         }
66         */
67        }
68
69        /* Local */
70
71        Method (M002, 1, Serialized)
72        {
73            Processor (PRC2, 0x00, 0xFFFFFFFF, 0x00){}
74            Event (E000)
75            CopyObject (PRC2, Local0)
76            /* CondRefOf */
77
78            CondRefOf (Local0, Local1)
79            CH03 (__METHOD__, Z104, __LINE__, 0x00, 0x00)
80            /* CopyObject */
81
82            CopyObject (Local0, Local1)
83            CH03 (__METHOD__, Z104, __LINE__, 0x00, 0x00)
84            /* Decrement */
85
86            Local0--
87            CH06 (Arg0, 0x01, 0x2F)
88            /* DerefOf */
89
90            Local1 = DerefOf (Local0)
91            CH06 (Arg0, 0x02, 0x2F)
92            /* FindSetLeftBit */
93
94            FindSetLeftBit (Local0, Local1)
95            CH06 (Arg0, 0x04, 0x2F)
96            /* FindSetRightBit */
97
98            FindSetRightBit (Local0, Local1)
99            CH06 (Arg0, 0x06, 0x2F)
100            /* FromBCD */
101
102            FromBCD (Local0, Local1)
103            CH06 (Arg0, 0x08, 0x2F)
104            /* Increment */
105
106            Local0++
107            CH06 (Arg0, 0x09, 0x2F)
108            /* LNot */
109
110            Local1 = !Local0
111            CH06 (Arg0, 0x0A, 0x2F)
112            /* Not */
113
114            Local1 = ~Local0
115            CH06 (Arg0, 0x0C, 0x2F)
116            /* ObjectType */
117
118            Local1 = ObjectType (Local0)
119            CH03 (__METHOD__, Z104, __LINE__, 0x00, 0x00)
120            /* RefOf */
121
122            Local1 = RefOf (Local0)
123            CH03 (__METHOD__, Z104, __LINE__, 0x00, 0x00)
124            /* Release */
125
126            Release (Local0)
127            CH06 (Arg0, 0x0D, 0x2F)
128            /* Reset */
129
130            Reset (Local0)
131            CH06 (Arg0, 0x0E, 0x2F)
132            /* Signal */
133
134            Signal (Local0)
135            CH06 (Arg0, 0x0F, 0x2F)
136            /* SizeOf */
137
138            Local1 = SizeOf (Local0)
139            CH06 (Arg0, 0x10, 0x2F)
140            /* Sleep */
141
142            Sleep (Local0)
143            CH06 (Arg0, 0x11, 0x2F)
144            /* Stall */
145
146            Stall (Local0)
147            CH06 (Arg0, 0x12, 0x2F)
148            /* Store */
149
150            Local1 = Local0
151            CH06 (Arg0, 0x13, 0x2F)
152            /* ToBCD */
153
154            ToBCD (Local0, Local1)
155            CH06 (Arg0, 0x15, 0x2F)
156            /* ToBuffer */
157
158            ToBuffer (Local0, Local1)
159            CH06 (Arg0, 0x17, 0x2F)
160            /* ToDecimalString */
161
162            ToDecimalString (Local0, Local1)
163            CH06 (Arg0, 0x19, 0x2F)
164            /* ToHexString */
165
166            ToHexString (Local0, Local1)
167            CH06 (Arg0, 0x1B, 0x2F)
168            /* ToInteger */
169
170            ToInteger (Local0, Local1)
171            CH06 (Arg0, 0x1D, 0x2F)
172            /* Acquire */
173
174            Local1 = Acquire (Local0, 0x0064)
175            CH06 (Arg0, 0x1E, 0x2F)
176            /* Add */
177
178            Local1 = (Local0 + I000) /* \M4BC.I000 */
179            CH06 (Arg0, 0x21, 0x2F)
180            Local1 = (I000 + Local0)
181            CH06 (Arg0, 0x22, 0x2F)
182            /* And */
183
184            Local1 = (Local0 & I000) /* \M4BC.I000 */
185            CH06 (Arg0, 0x25, 0x2F)
186            Local1 = (I000 & Local0)
187            CH06 (Arg0, 0x26, 0x2F)
188            /* Concatenate */
189
190            Concatenate (Local0, I000, Local1)
191            CH06 (Arg0, 0x29, 0x2F)
192            Concatenate (I000, Local0, Local1)
193            CH06 (Arg0, 0x2A, 0x2F)
194            /* ConcatenateResTemplate */
195
196            ConcatenateResTemplate (Local0, Buffer (0x02)
197                {
198                     0x79, 0x00                                       // y.
199                }, Local1)
200            CH06 (Arg0, 0x2D, 0x2F)
201            ConcatenateResTemplate (Buffer (0x02)
202                {
203                     0x79, 0x00                                       // y.
204                }, Local0, Local1)
205            CH06 (Arg0, 0x2E, 0x2F)
206            /* Divide */
207
208            Divide (Local0, I000, Local2)
209            CH06 (Arg0, 0x31, 0x2F)
210            Divide (I000, Local0, Local2)
211            CH06 (Arg0, 0x32, 0x2F)
212            Divide (Local0, I000, Local2, Local1)
213            CH06 (Arg0, 0x33, 0x2F)
214            Divide (I000, Local0, Local2, Local1)
215            CH06 (Arg0, 0x34, 0x2F)
216            /* Fatal */
217
218            Fatal (0xFF, 0xFFFFFFFF, Local0)
219            CH06 (Arg0, 0x35, 0x2F)
220            /* Index */
221
222            Local1 = Local0 [0x00]
223            CH06 (Arg0, 0x38, 0x2F)
224            Index ("0", Local0, Local1)
225            CH06 (Arg0, 0x39, 0x2F)
226            /* LEqual */
227
228            Local1 = (Local0 == I000)
229            CH06 (Arg0, 0x3A, 0x2F)
230            Local1 = (I000 == Local0)
231            CH06 (Arg0, 0x3B, 0x2F)
232            /* LGreater */
233
234            Local1 = (Local0 > I000)
235            CH06 (Arg0, 0x3C, 0x2F)
236            Local1 = (I000 > Local0)
237            CH06 (Arg0, 0x3D, 0x2F)
238            /* LGreaterEqual */
239
240            Local1 = (Local0 >= I000)
241            CH06 (Arg0, 0x3E, 0xFF)
242            Local1 = (I000 >= Local0)
243            CH06 (Arg0, 0x3F, 0xFF)
244            /* LLess */
245
246            Local1 = (Local0 < I000)
247            CH06 (Arg0, 0x40, 0x2F)
248            Local1 = (I000 < Local0)
249            CH06 (Arg0, 0x41, 0x2F)
250            /* LLessEqual */
251
252            Local1 = (Local0 <= I000)
253            CH06 (Arg0, 0x42, 0xFF)
254            Local1 = (I000 <= Local0)
255            CH06 (Arg0, 0x43, 0xFF)
256            /* LNotEqual */
257
258            Local1 = (Local0 != I000)
259            CH06 (Arg0, 0x44, 0xFF)
260            Local1 = (I000 != Local0)
261            CH06 (Arg0, 0x45, 0xFF)
262            /* LOr */
263
264            Local1 = (Local0 || I000)
265            CH06 (Arg0, 0x46, 0x2F)
266            Local1 = (I000 || Local0)
267            CH06 (Arg0, 0x47, 0x2F)
268            /* Mod */
269
270            Local1 = (Local0 % I000) /* \M4BC.I000 */
271            CH06 (Arg0, 0x4A, 0x2F)
272            Local1 = (I000 % Local0)
273            CH06 (Arg0, 0x4B, 0x2F)
274            /* Multiply */
275
276            Local1 = (Local0 * I000) /* \M4BC.I000 */
277            CH06 (Arg0, 0x4E, 0x2F)
278            Local1 = (I000 * Local0)
279            CH06 (Arg0, 0x4F, 0x2F)
280            /* NAnd */
281
282            NAnd (Local0, I000, Local1)
283            CH06 (Arg0, 0x52, 0x2F)
284            NAnd (I000, Local0, Local1)
285            CH06 (Arg0, 0x53, 0x2F)
286            /* NOr */
287
288            NOr (Local0, I000, Local1)
289            CH06 (Arg0, 0x56, 0x2F)
290            NOr (I000, Local0, Local1)
291            CH06 (Arg0, 0x57, 0x2F)
292            /* Or */
293
294            Local1 = (Local0 | I000) /* \M4BC.I000 */
295            CH06 (Arg0, 0x5A, 0x2F)
296            Local1 = (I000 | Local0)
297            CH06 (Arg0, 0x5B, 0x2F)
298            /* ShiftLeft */
299
300            Local1 = (Local0 << I000) /* \M4BC.I000 */
301            CH06 (Arg0, 0x5E, 0x2F)
302            Local1 = (I000 << Local0)
303            CH06 (Arg0, 0x5F, 0x2F)
304            /* ShiftRight */
305
306            Local1 = (Local0 >> I000) /* \M4BC.I000 */
307            CH06 (Arg0, 0x62, 0x2F)
308            Local1 = (I000 >> Local0)
309            CH06 (Arg0, 0x63, 0x2F)
310            /* Subtract */
311
312            Local1 = (Local0 - I000) /* \M4BC.I000 */
313            CH06 (Arg0, 0x66, 0x2F)
314            Local1 = (I000 - Local0)
315            CH06 (Arg0, 0x67, 0x2F)
316            /* ToString */
317
318            ToString (Local0, 0x01, Local1)
319            CH06 (Arg0, 0x6A, 0x2F)
320            ToString (I000, Local0, Local1)
321            CH06 (Arg0, 0x6B, 0x2F)
322            /* Wait */
323
324            Local1 = Wait (Local0, I000)
325            CH06 (Arg0, 0x6C, 0x2F)
326            Local1 = Wait (E000, Local0)
327            CH06 (Arg0, 0x6D, 0x2F)
328            /* XOr */
329
330            Local1 = (Local0 ^ I000) /* \M4BC.I000 */
331            CH06 (Arg0, 0x70, 0x2F)
332            Local1 = (I000 ^ Local0)
333            CH06 (Arg0, 0x71, 0x2F)
334            /* Mid */
335
336            Mid (Local0, 0x01, 0x01, Local1)
337            CH06 (Arg0, 0x75, 0x2F)
338            Mid ("123", Local0, 0x01, Local1)
339            CH06 (Arg0, 0x76, 0x2F)
340            Mid ("123", 0x01, Local0, Local1)
341            CH06 (Arg0, 0x77, 0x2F)
342            /* Match */
343
344            Local1 = Match (Local0, MTR, 0x00, MTR, 0x00, 0x00)
345            CH06 (Arg0, 0x78, 0x2F)
346            Local1 = Match (Package (0x01)
347                    {
348                        0x01
349                    }, MTR, Local0, MTR, 0x00, 0x00)
350            CH06 (Arg0, 0x79, 0x2F)
351            Local1 = Match (Package (0x01)
352                    {
353                        0x01
354                    }, MTR, 0x00, MTR, Local0, 0x00)
355            CH06 (Arg0, 0x7A, 0x2F)
356            Local1 = Match (Package (0x01)
357                    {
358                        0x01
359                    }, MTR, 0x00, MTR, 0x00, Local0)
360            CH06 (Arg0, 0x7B, 0x2F)
361        }
362
363        /* Reference to Object */
364
365        Method (M003, 2, NotSerialized)
366        {
367            Local0 = ObjectType (Arg1)
368            If ((Local0 != 0x0C))
369            {
370                ERR (Arg0, Z104, __LINE__, 0x00, 0x00, Local0, 0x0C)
371                Return (0x01)
372            }
373
374            Local1 = DerefOf (Arg1)
375            If (!SLCK)
376            {
377                CH04 (__METHOD__, 0x00, 0x2F, Z104, __LINE__, 0x00, 0x00)
378            }
379
380            /* CondRefOf */
381
382            CondRefOf (DerefOf (Arg1), Local1)
383            CH06 (Arg0, 0x01, 0x2F)
384            /* CopyObject */
385
386            CopyObject (DerefOf (Arg1), Local1)
387            CH03 (__METHOD__, Z104, __LINE__, 0x00, 0x00)
388            /* Decrement */
389
390            DerefOf (Arg1)--
391            CH06 (Arg0, 0x03, 0x2F)
392            /* DerefOf */
393
394            Local1 = DerefOf (DerefOf (Arg1))
395            CH06 (Arg0, 0x04, 0x2F)
396            /* FindSetLeftBit */
397
398            FindSetLeftBit (DerefOf (Arg1), Local1)
399            CH06 (Arg0, 0x06, 0x2F)
400            /* FindSetRightBit */
401
402            FindSetRightBit (DerefOf (Arg1), Local1)
403            CH06 (Arg0, 0x08, 0x2F)
404            /* FromBCD */
405
406            FromBCD (DerefOf (Arg1), Local1)
407            CH06 (Arg0, 0x0A, 0x2F)
408            /* Increment */
409
410            DerefOf (Arg1)++
411            CH06 (Arg0, 0x0B, 0x2F)
412            /* LNot */
413
414            Local1 = !DerefOf (Arg1)
415            CH06 (Arg0, 0x0C, 0x2F)
416            /* Not */
417
418            Local1 = ~DerefOf (Arg1)
419            CH06 (Arg0, 0x0E, 0x2F)
420            /* ObjectType */
421
422            Local1 = ObjectType (DerefOf (Arg1))
423            CH03 (__METHOD__, Z104, __LINE__, 0x00, 0x00)
424            /* RefOf */
425
426            Local1 = RefOf (DerefOf (Arg1))
427            CH06 (Arg0, 0x0F, 0x2F)
428            /* Release */
429            /* Reset */
430            /* Signal */
431            /* SizeOf */
432            Local1 = SizeOf (DerefOf (Arg1))
433            CH06 (Arg0, 0x10, 0x2F)
434            /* Sleep */
435
436            Sleep (DerefOf (Arg1))
437            CH06 (Arg0, 0x11, 0x2F)
438            /* Stall */
439
440            Stall (DerefOf (Arg1))
441            CH06 (Arg0, 0x12, 0x2F)
442            /* Store */
443
444            Local1 = DerefOf (Arg1)
445            CH06 (Arg0, 0x13, 0x2F)
446            /* ToBCD */
447
448            ToBCD (DerefOf (Arg1), Local1)
449            CH06 (Arg0, 0x15, 0x2F)
450            /* ToBuffer */
451
452            ToBuffer (DerefOf (Arg1), Local1)
453            CH06 (Arg0, 0x17, 0x2F)
454            /* ToDecimalString */
455
456            ToDecimalString (DerefOf (Arg1), Local1)
457            CH06 (Arg0, 0x19, 0x2F)
458            /* ToHexString */
459
460            ToHexString (DerefOf (Arg1), Local1)
461            CH06 (Arg0, 0x1B, 0x2F)
462            /* ToInteger */
463
464            ToInteger (DerefOf (Arg1), Local1)
465            CH06 (Arg0, 0x1D, 0x2F)
466            /* Acquire */
467            /* Add */
468            Local1 = (DerefOf (Arg1) + I000) /* \M4BC.I000 */
469            CH06 (Arg0, 0x21, 0x2F)
470            Local1 = (I000 + DerefOf (Arg1))
471            CH06 (Arg0, 0x22, 0x2F)
472            /* And */
473
474            Local1 = (DerefOf (Arg1) & I000) /* \M4BC.I000 */
475            CH06 (Arg0, 0x25, 0x2F)
476            Local1 = (I000 & DerefOf (Arg1))
477            CH06 (Arg0, 0x26, 0x2F)
478            /* Concatenate */
479
480            Concatenate (DerefOf (Arg1), I000, Local1)
481            CH06 (Arg0, 0x29, 0x2F)
482            Concatenate (I000, DerefOf (Arg1), Local1)
483            CH06 (Arg0, 0x2A, 0x2F)
484            /* ConcatenateResTemplate */
485
486            ConcatenateResTemplate (DerefOf (Arg1), Buffer (0x02)
487                {
488                     0x79, 0x00                                       // y.
489                }, Local1)
490            CH06 (Arg0, 0x2D, 0x2F)
491            ConcatenateResTemplate (Buffer (0x02)
492                {
493                     0x79, 0x00                                       // y.
494                }, DerefOf (Arg1), Local1)
495            CH06 (Arg0, 0x2E, 0x2F)
496            /* Divide */
497
498            Divide (DerefOf (Arg1), I000, Local2)
499            CH06 (Arg0, 0x31, 0x2F)
500            Divide (I000, DerefOf (Arg1), Local2)
501            CH06 (Arg0, 0x32, 0x2F)
502            Divide (DerefOf (Arg1), I000, Local2, Local1)
503            CH06 (Arg0, 0x33, 0x2F)
504            Divide (I000, DerefOf (Arg1), Local2, Local1)
505            CH06 (Arg0, 0x34, 0x2F)
506            /* Fatal */
507
508            Fatal (0xFF, 0xFFFFFFFF, DerefOf (Arg1))
509            CH06 (Arg0, 0x35, 0x2F)
510            /* Index */
511
512            Local1 = DerefOf (Arg1) [0x00]
513            CH06 (Arg0, 0x38, 0x2F)
514            Index ("0", DerefOf (Arg1), Local1)
515            CH06 (Arg0, 0x39, 0x2F)
516            /* LEqual */
517
518            Local1 = (DerefOf (Arg1) == I000)
519            CH06 (Arg0, 0x3A, 0x2F)
520            Local1 = (I000 == DerefOf (Arg1))
521            CH06 (Arg0, 0x3B, 0x2F)
522            /* LGreater */
523
524            Local1 = (DerefOf (Arg1) > I000)
525            CH06 (Arg0, 0x3C, 0x2F)
526            Local1 = (I000 > DerefOf (Arg1))
527            CH06 (Arg0, 0x3D, 0x2F)
528            /* LGreaterEqual */
529
530            Local1 = (DerefOf (Arg1) >= I000)
531            CH06 (Arg0, 0x3E, 0xFF)
532            Local1 = (I000 >= DerefOf (Arg1))
533            CH06 (Arg0, 0x3F, 0xFF)
534            /* LLess */
535
536            Local1 = (DerefOf (Arg1) < I000)
537            CH06 (Arg0, 0x40, 0x2F)
538            Local1 = (I000 < DerefOf (Arg1))
539            CH06 (Arg0, 0x41, 0x2F)
540            /* LLessEqual */
541
542            Local1 = (DerefOf (Arg1) <= I000)
543            CH06 (Arg0, 0x42, 0xFF)
544            Local1 = (I000 <= DerefOf (Arg1))
545            CH06 (Arg0, 0x43, 0xFF)
546            /* LNotEqual */
547
548            Local1 = (DerefOf (Arg1) != I000)
549            CH06 (Arg0, 0x44, 0xFF)
550            Local1 = (I000 != DerefOf (Arg1))
551            CH06 (Arg0, 0x45, 0xFF)
552            /* LOr */
553
554            Local1 = (DerefOf (Arg1) || I000)
555            CH06 (Arg0, 0x46, 0x2F)
556            Local1 = (I000 || DerefOf (Arg1))
557            CH06 (Arg0, 0x47, 0x2F)
558            /* Mod */
559
560            Local1 = (DerefOf (Arg1) % I000) /* \M4BC.I000 */
561            CH06 (Arg0, 0x4A, 0x2F)
562            Local1 = (I000 % DerefOf (Arg1))
563            CH06 (Arg0, 0x4B, 0x2F)
564            /* Multiply */
565
566            Local1 = (DerefOf (Arg1) * I000) /* \M4BC.I000 */
567            CH06 (Arg0, 0x4E, 0x2F)
568            Local1 = (I000 * DerefOf (Arg1))
569            CH06 (Arg0, 0x4F, 0x2F)
570            /* NAnd */
571
572            NAnd (DerefOf (Arg1), I000, Local1)
573            CH06 (Arg0, 0x52, 0x2F)
574            NAnd (I000, DerefOf (Arg1), Local1)
575            CH06 (Arg0, 0x53, 0x2F)
576            /* NOr */
577
578            NOr (DerefOf (Arg1), I000, Local1)
579            CH06 (Arg0, 0x56, 0x2F)
580            NOr (I000, DerefOf (Arg1), Local1)
581            CH06 (Arg0, 0x57, 0x2F)
582            /* Or */
583
584            Local1 = (DerefOf (Arg1) | I000) /* \M4BC.I000 */
585            CH06 (Arg0, 0x5A, 0x2F)
586            Local1 = (I000 | DerefOf (Arg1))
587            CH06 (Arg0, 0x5B, 0x2F)
588            /* ShiftLeft */
589
590            Local1 = (DerefOf (Arg1) << I000) /* \M4BC.I000 */
591            CH06 (Arg0, 0x5E, 0x2F)
592            Local1 = (I000 << DerefOf (Arg1))
593            CH06 (Arg0, 0x5F, 0x2F)
594            /* ShiftRight */
595
596            Local1 = (DerefOf (Arg1) >> I000) /* \M4BC.I000 */
597            CH06 (Arg0, 0x62, 0x2F)
598            Local1 = (I000 >> DerefOf (Arg1))
599            CH06 (Arg0, 0x63, 0x2F)
600            /* Subtract */
601
602            Local1 = (DerefOf (Arg1) - I000) /* \M4BC.I000 */
603            CH06 (Arg0, 0x66, 0x2F)
604            Local1 = (I000 - DerefOf (Arg1))
605            CH06 (Arg0, 0x67, 0x2F)
606            /* ToString */
607
608            ToString (DerefOf (Arg1), 0x01, Local1)
609            CH06 (Arg0, 0x6A, 0x2F)
610            ToString (I000, DerefOf (Arg1), Local1)
611            CH06 (Arg0, 0x6B, 0x2F)
612            /* Wait */
613
614            Local1 = Wait (E000, DerefOf (Arg1))
615            CH06 (Arg0, 0x6D, 0x2F)
616            /* XOr */
617
618            Local1 = (DerefOf (Arg1) ^ I000) /* \M4BC.I000 */
619            CH06 (Arg0, 0x70, 0x2F)
620            Local1 = (I000 ^ DerefOf (Arg1))
621            CH06 (Arg0, 0x71, 0x2F)
622            /* Mid */
623
624            Mid (DerefOf (Arg1), 0x01, 0x01, Local1)
625            CH06 (Arg0, 0x75, 0x2F)
626            Mid ("123", DerefOf (Arg1), 0x01, Local1)
627            CH06 (Arg0, 0x76, 0x2F)
628            Mid ("123", 0x01, DerefOf (Arg1), Local1)
629            CH06 (Arg0, 0x77, 0x2F)
630            /* Match */
631
632            Local1 = Match (DerefOf (Arg1), MTR, 0x00, MTR, 0x00, 0x00)
633            CH06 (Arg0, 0x78, 0x2F)
634            Local1 = Match (Package (0x01)
635                    {
636                        0x01
637                    }, MTR, DerefOf (Arg1), MTR, 0x00, 0x00)
638            CH06 (Arg0, 0x79, 0x2F)
639            Local1 = Match (Package (0x01)
640                    {
641                        0x01
642                    }, MTR, 0x00, MTR, DerefOf (Arg1), 0x00)
643            CH06 (Arg0, 0x7A, 0x2F)
644            Local1 = Match (Package (0x01)
645                    {
646                        0x01
647                    }, MTR, 0x00, MTR, 0x00, DerefOf (Arg1))
648            CH06 (Arg0, 0x7B, 0x2F)
649            Return (0x00)
650        }
651
652        /* Result of Method invocation */
653
654        Method (M004, 1, Serialized)
655        {
656            Name (I000, 0x00) /* Label to check m000 invocations */
657            Method (M000, 0, NotSerialized)
658            {
659                CopyObject (PR10, Local0)
660                Return (Local0)
661            }
662
663            /* CondRefOf */
664            /* **** 10/2016 changed method invocation to just a namestring */
665            /* CondRefOf no longer invokes the method */
666            If (Y601)
667            {
668                Local1 = CondRefOf (M000)
669                CH06 (Arg0, 0x00, 0x2F)
670                Local1 = CondRefOf (M000, Local1)
671                CH06 (Arg0, 0x01, 0x2F)
672            }
673
674            /* CopyObject */
675
676            CopyObject (M000 (), Local1)
677            CH03 (__METHOD__, Z104, __LINE__, 0x00, 0x00)
678            /* Decrement */
679
680            M000 ()--
681            CH06 (Arg0, 0x02, 0x2F)
682            /* DerefOf */
683
684            Local1 = DerefOf (M000 ())
685            CH06 (Arg0, 0x03, 0x2F)
686            /* FindSetLeftBit */
687
688            FindSetLeftBit (M000 (), Local1)
689            CH06 (Arg0, 0x05, 0x2F)
690            /* FindSetRightBit */
691
692            FindSetRightBit (M000 (), Local1)
693            CH06 (Arg0, 0x07, 0x2F)
694            /* FromBCD */
695
696            FromBCD (M000 (), Local1)
697            CH06 (Arg0, 0x09, 0x2F)
698            /* Increment */
699
700            M000 ()++
701            CH06 (Arg0, 0x0A, 0x2F)
702            /* LNot */
703
704            Local1 = !M000 ()
705            CH06 (Arg0, 0x0B, 0x2F)
706            /* Not */
707
708            Local1 = ~M000 ()
709            CH06 (Arg0, 0x0D, 0x2F)
710            /* ObjectType */
711            /* **** Nov. 2016: Method invocation as arg to ObjectType is now illegal */
712            Local0 = ObjectType (M000)
713            CH03 (__METHOD__, Z104, __LINE__, 0x00, 0x00)
714            /* RefOf */
715            /* **** Oct. 2016: Method invocation as arg to RefOf is now illegal */
716            /*		if (y601) { */
717            /*			Store (RefOf(m000()), Local1) */
718            /*			CH06(arg0, 14, 47) */
719            /*		} */
720            /* Release */
721            Release (M000 ())
722            CH06 (Arg0, 0x0D, 0x2F)
723            /* Reset */
724
725            Reset (M000 ())
726            CH06 (Arg0, 0x0E, 0x2F)
727            /* Signal */
728
729            Signal (M000 ())
730            CH06 (Arg0, 0x0F, 0x2F)
731            /* SizeOf */
732
733            Local1 = SizeOf (M000 ())
734            CH06 (Arg0, 0x10, 0x2F)
735            /* Sleep */
736
737            Sleep (M000 ())
738            CH06 (Arg0, 0x11, 0x2F)
739            /* Stall */
740
741            Stall (M000 ())
742            CH06 (Arg0, 0x12, 0x2F)
743            /* Store */
744
745            Local1 = M000 ()
746            CH06 (Arg0, 0x13, 0x2F)
747            /* ToBCD */
748
749            ToBCD (M000 (), Local1)
750            CH06 (Arg0, 0x15, 0x2F)
751            /* ToBuffer */
752
753            ToBuffer (M000 (), Local1)
754            CH06 (Arg0, 0x17, 0x2F)
755            /* ToDecimalString */
756
757            ToDecimalString (M000 (), Local1)
758            CH06 (Arg0, 0x19, 0x2F)
759            /* ToHexString */
760
761            ToHexString (M000 (), Local1)
762            CH06 (Arg0, 0x1B, 0x2F)
763            /* ToInteger */
764
765            ToInteger (M000 (), Local1)
766            CH06 (Arg0, 0x1D, 0x2F)
767            /* Acquire */
768
769            Local1 = Acquire (M000 (), 0x0064)
770            CH06 (Arg0, 0x1E, 0x2F)
771            /* Add */
772
773            Local1 = (M000 () + I000) /* \M4BC.M004.I000 */
774            CH06 (Arg0, 0x21, 0x2F)
775            Local1 = (I000 + M000 ())
776            CH06 (Arg0, 0x22, 0x2F)
777            /* And */
778
779            Local1 = (M000 () & I000) /* \M4BC.M004.I000 */
780            CH06 (Arg0, 0x25, 0x2F)
781            Local1 = (I000 & M000 ())
782            CH06 (Arg0, 0x26, 0x2F)
783            /* Concatenate */
784
785            Concatenate (M000 (), I000, Local1)
786            CH06 (Arg0, 0x29, 0x2F)
787            Concatenate (I000, M000 (), Local1)
788            CH06 (Arg0, 0x2A, 0x2F)
789            /* ConcatenateResTemplate */
790
791            ConcatenateResTemplate (M000 (), Buffer (0x02)
792                {
793                     0x79, 0x00                                       // y.
794                }, Local1)
795            CH06 (Arg0, 0x2D, 0x2F)
796            ConcatenateResTemplate (Buffer (0x02)
797                {
798                     0x79, 0x00                                       // y.
799                }, M000 (), Local1)
800            CH06 (Arg0, 0x2E, 0x2F)
801            /* Divide */
802
803            Divide (M000 (), I000, Local2)
804            CH06 (Arg0, 0x31, 0x2F)
805            Divide (I000, M000 (), Local2)
806            CH06 (Arg0, 0x32, 0x2F)
807            Divide (M000 (), I000, Local2, Local1)
808            CH06 (Arg0, 0x33, 0x2F)
809            Divide (I000, M000 (), Local2, Local1)
810            CH06 (Arg0, 0x34, 0x2F)
811            /* Fatal */
812
813            Fatal (0xFF, 0xFFFFFFFF, M000 ())
814            CH06 (Arg0, 0x35, 0x2F)
815            /* Index */
816
817            Local1 = M000 () [0x00]
818            CH06 (Arg0, 0x38, 0x2F)
819            Index ("0", M000 (), Local1)
820            CH06 (Arg0, 0x39, 0x2F)
821            /* LEqual */
822
823            Local1 = (M000 () == I000)
824            CH06 (Arg0, 0x3A, 0x2F)
825            Local1 = (I000 == M000 ())
826            CH06 (Arg0, 0x3B, 0x2F)
827            /* LGreater */
828
829            Local1 = (M000 () > I000)
830            CH06 (Arg0, 0x3C, 0x2F)
831            Local1 = (I000 > M000 ())
832            CH06 (Arg0, 0x3D, 0x2F)
833            /* LGreaterEqual */
834
835            Local1 = (M000 () >= I000)
836            CH06 (Arg0, 0x3E, 0xFF)
837            Local1 = (I000 >= M000 ())
838            CH06 (Arg0, 0x3F, 0xFF)
839            /* LLess */
840
841            Local1 = (M000 () < I000)
842            CH06 (Arg0, 0x40, 0x2F)
843            Local1 = (I000 < M000 ())
844            CH06 (Arg0, 0x41, 0x2F)
845            /* LLessEqual */
846
847            Local1 = (M000 () <= I000)
848            CH06 (Arg0, 0x42, 0xFF)
849            Local1 = (I000 <= M000 ())
850            CH06 (Arg0, 0x43, 0xFF)
851            /* LNotEqual */
852
853            Local1 = (M000 () != I000)
854            CH06 (Arg0, 0x44, 0xFF)
855            Local1 = (I000 != M000 ())
856            CH06 (Arg0, 0x45, 0xFF)
857            /* LOr */
858
859            Local1 = (M000 () || I000)
860            CH06 (Arg0, 0x46, 0x2F)
861            Local1 = (I000 || M000 ())
862            CH06 (Arg0, 0x47, 0x2F)
863            /* Mod */
864
865            Local1 = (M000 () % I000) /* \M4BC.M004.I000 */
866            CH06 (Arg0, 0x4A, 0x2F)
867            Local1 = (I000 % M000 ())
868            CH06 (Arg0, 0x4B, 0x2F)
869            /* Multiply */
870
871            Local1 = (M000 () * I000) /* \M4BC.M004.I000 */
872            CH06 (Arg0, 0x4E, 0x2F)
873            Local1 = (I000 * M000 ())
874            CH06 (Arg0, 0x4F, 0x2F)
875            /* NAnd */
876
877            NAnd (M000 (), I000, Local1)
878            CH06 (Arg0, 0x52, 0x2F)
879            NAnd (I000, M000 (), Local1)
880            CH06 (Arg0, 0x53, 0x2F)
881            /* NOr */
882
883            NOr (M000 (), I000, Local1)
884            CH06 (Arg0, 0x56, 0x2F)
885            NOr (I000, M000 (), Local1)
886            CH06 (Arg0, 0x57, 0x2F)
887            /* Or */
888
889            Local1 = (M000 () | I000) /* \M4BC.M004.I000 */
890            CH06 (Arg0, 0x5A, 0x2F)
891            Local1 = (I000 | M000 ())
892            CH06 (Arg0, 0x5B, 0x2F)
893            /* ShiftLeft */
894
895            Local1 = (M000 () << I000) /* \M4BC.M004.I000 */
896            CH06 (Arg0, 0x5E, 0x2F)
897            Local1 = (I000 << M000 ())
898            CH06 (Arg0, 0x5F, 0x2F)
899            /* ShiftRight */
900
901            Local1 = (M000 () >> I000) /* \M4BC.M004.I000 */
902            CH06 (Arg0, 0x62, 0x2F)
903            Local1 = (I000 >> M000 ())
904            CH06 (Arg0, 0x63, 0x2F)
905            /* Subtract */
906
907            Local1 = (M000 () - I000) /* \M4BC.M004.I000 */
908            CH06 (Arg0, 0x66, 0x2F)
909            Local1 = (I000 - M000 ())
910            CH06 (Arg0, 0x67, 0x2F)
911            /* ToString */
912
913            ToString (M000 (), 0x01, Local1)
914            CH06 (Arg0, 0x6A, 0x2F)
915            ToString (I000, M000 (), Local1)
916            CH06 (Arg0, 0x6B, 0x2F)
917            /* Wait */
918
919            Local1 = Wait (M000 (), I000)
920            CH06 (Arg0, 0x6C, 0x2F)
921            Local1 = Wait (E000, M000 ())
922            CH06 (Arg0, 0x6D, 0x2F)
923            /* XOr */
924
925            Local1 = (M000 () ^ I000) /* \M4BC.M004.I000 */
926            CH06 (Arg0, 0x70, 0x2F)
927            Local1 = (I000 ^ M000 ())
928            CH06 (Arg0, 0x71, 0x2F)
929            /* Mid */
930
931            Mid (M000 (), 0x01, 0x01, Local1)
932            CH06 (Arg0, 0x75, 0x2F)
933            Mid ("123", M000 (), 0x01, Local1)
934            CH06 (Arg0, 0x76, 0x2F)
935            Mid ("123", 0x01, M000 (), Local1)
936            CH06 (Arg0, 0x77, 0x2F)
937            /* Match */
938
939            Local1 = Match (M000 (), MTR, 0x00, MTR, 0x00, 0x00)
940            CH06 (Arg0, 0x78, 0x2F)
941            Local1 = Match (Package (0x01)
942                    {
943                        0x01
944                    }, MTR, M000 (), MTR, 0x00, 0x00)
945            CH06 (Arg0, 0x79, 0x2F)
946            Local1 = Match (Package (0x01)
947                    {
948                        0x01
949                    }, MTR, 0x00, MTR, M000 (), 0x00)
950            CH06 (Arg0, 0x7A, 0x2F)
951            Local1 = Match (Package (0x01)
952                    {
953                        0x01
954                    }, MTR, 0x00, MTR, 0x00, M000 ())
955            CH06 (Arg0, 0x7B, 0x2F)
956        }
957
958        /* Reference to Object as Result of Method invocation */
959
960        Method (M005, 1, Serialized)
961        {
962            Processor (PRC2, 0x00, 0xFFFFFFFF, 0x00){}
963            Name (I000, 0x00) /* Label to check m000 invocations */
964            Method (M000, 2, NotSerialized)
965            {
966                I000 = Arg0
967                If ((Arg1 == 0x00))
968                {
969                    Local0 = RefOf (PR10)
970                }
971                ElseIf ((Arg1 == 0x01))
972                {
973                    Local0 = RefOf (PRC2)
974                }
975
976                Return (Local0)
977            }
978
979            Method (CH00, 2, NotSerialized)
980            {
981                If ((I000 != Arg1))
982                {
983                    ERR (Arg0, Z104, __LINE__, 0x00, 0x00, I000, Arg1)
984                }
985            }
986
987            Name (LPN0, 0x02)
988            Name (LPC0, 0x00)
989            While (LPN0)
990            {
991                Local0 = (0x03 * LPC0) /* \M4BC.M005.LPC0 */
992                I000 = 0x00
993                Local1 = DerefOf (M000 (0x01, LPC0))
994                If (!SLCK)
995                {
996                    CH04 (__METHOD__, 0x00, 0x2F, Z104, __LINE__, 0x00, 0x00)
997                }
998
999                CH00 (Arg0, 0x01)
1000                Local1 = DerefOf (DerefOf (M000 (0x02, LPC0)))
1001                If (!SLCK)
1002                {
1003                    CH06 (Arg0, (0x01 + Local0), 0x2F)
1004                }
1005
1006                CH00 (Arg0, 0x02)
1007                Store (DerefOf (M000 (0x03, LPC0)) [0x00], Local1)
1008                CH06 (Arg0, (0x02 + Local0), 0x2F)
1009                CH00 (Arg0, 0x03)
1010                Local1 = Match (DerefOf (M000 (0x04, LPC0)), MTR, 0x00, MTR, 0x00, 0x00)
1011                CH06 (Arg0, (0x03 + Local0), 0x2F)
1012                CH00 (Arg0, 0x04)
1013                LPN0--
1014                LPC0++
1015            }
1016        }
1017
1018        SET0 (Z104, __METHOD__, 0x00)
1019        CH03 (__METHOD__, Z104, __LINE__, 0x00, 0x00)
1020        /* Local Named Object */
1021
1022        M000 (__METHOD__)
1023        /* Global Named Object */
1024
1025        M001 (__METHOD__)
1026        /* Local */
1027
1028        M002 (Concatenate (__METHOD__, "-m002"))
1029        /* Reference to Local Named Object */
1030
1031        M003 (Concatenate (__METHOD__, "-m003-RefLocName"), RefOf (PRC1))
1032        Local0 = RefOf (PRC1)
1033        M003 (Concatenate (__METHOD__, "-m003-RefLocName2"), Local0)
1034        CondRefOf (PRC1, Local0)
1035        M003 (Concatenate (__METHOD__, "-m003-CondRefLocName"), Local0)
1036        M003 (Concatenate (__METHOD__, "-m003-RefGlobName"), RefOf (PR10))
1037        Local0 = RefOf (PR10)
1038        M003 (Concatenate (__METHOD__, "-m003-RefGlobName2"), Local0)
1039        CondRefOf (PR10, Local0)
1040        M003 (Concatenate (__METHOD__, "-m003-CondRefGlobName"), Local0)
1041        /* Reference to Object as element of Package */
1042
1043        Name (PP00, Package (0x01)
1044        {
1045            PR10
1046        })
1047        If (Y113)
1048        {
1049            M003 (Concatenate (__METHOD__, "-m003-Index"), PP00 [0x00])
1050        }
1051
1052        Store (PP00 [0x00], Local1)
1053        M003 (Concatenate (__METHOD__, "-m003-Index2"), Local1)
1054        If (Y113)
1055        {
1056            M003 (Concatenate (__METHOD__, "-m003-Index3"), Local2 = PP00 [0x00])
1057        }
1058
1059        Local3 = PP00 [0x00]
1060        M003 (Concatenate (__METHOD__, "-m003-Index4"), Local3)
1061        Local5 = Local4 = PP00 [0x00]
1062        M003 (Concatenate (__METHOD__, "-m003-Index5"), Local5)
1063        /* Result of Method invocation */
1064
1065        M004 (Concatenate (__METHOD__, "-m004"))
1066        /* Reference to Object as Result of Method invocation */
1067
1068        M005 (Concatenate (__METHOD__, "-m005"))
1069        RST0 ()
1070    }
1071