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