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     ============================
30     !!!!!!!!!!!!!!!!!!!!!!!!!!!!
31     IT IS IN PROGRESS !!!!!!!!!!
32     !!!!!!!!!!!!!!!!!!!!!!!!!!!!
33     ============================
34     SEE: ????????????
35     1) Add 0 into the middle of any Buffer
36     2) Do BOTH directions for Concatenation:
37     - First argument - String
38     - First argument - Buffer
39     3) Extend the test, if possible, for all the operators
40     4) add method m480 with the different objects creations.
41     5) change Name(ss08, "1234567890abCdeF")
42     to     Name(ss08, "1234567830abCdeF")
43     6) do the same as m480() but use LocalX instead ArgX
44     in Operators invocations:
45     Store(Add(Local0, Local1, Local7), local7)
46     */
47    /* Methods for Conversion tests */
48    /* */
49    /* (low number of available arguments {Arg0-Arg6} complicates algorithms). */
50    /* */
51    /* Currently from the mask of exceptions to be forced are excluded bits */
52    /* corresponding to the following types ("don't know how" have to be added): */
53    /* */
54    /* - Method        (don't know how) */
55    /* - Thermal Zones (don't know how) */
56    /* - DDB Handle    (don't know how) */
57    /* - Debug Object  (impossible, Compiler refuses) */
58    /* - Uninitialized (update needed, currently the test is implemented incorrectly. */
59    /*                  Uninitialized type have to be passed immediately as operands */
60    /*                  in m480). */
61    /* */
62    /* Currently excluded from all the total scales of unacceptable types */
63    /* (to be added later): */
64    /* */
65    /*	0x0100 - Method */
66    /*	0x2000 - Thermal Zone */
67    /*	0x8000 - DDB Handle */
68    /* */
69    /* Total scale of acceptable types: */
70    /* */
71    /*	int - 0xc02e - Integer, String, Buffer, Field Unit, Buffer Field, DDB Handle */
72    /* */
73    /* NOTE: many entries are commented not to cause crashes. */
74    /*       Have to be uncommented after ACPICA will be fixed. */
75    /* */
76    Name (Z064, 0x40)
77    /* Commutative two operands operation */
78    /* (CAUTION: don't forget to clean it) */
79    Name (COM2, 0x00)
80    /* Flags exception expected */
81    /* (needed due to the lack of Arguments number) */
82    Name (FLG0, 0x19283746)
83    /* Flag - verify result with the contents of Package */
84
85    Name (FLG1, 0x00)
86    /* Package contains benchmarks of results */
87
88    Name (PKG0, Package (0x01)
89    {
90        0x10000001
91    })
92    Name (PKG1, Package (0x01)
93    {
94        0x11111111
95    })
96    Name (PKG2, Package (0x01)
97    {
98        0x22222222
99    })
100    Name (DF00, 0x00)
101    Name (DF01, 0x00)
102    Name (DF02, 0x00)
103    Name (DF03, 0x00)
104    Name (DF04, 0x00)
105    Event (E000)
106    Mutex (MX00, 0x00)
107    Name (I000, 0x58765432)
108    Name (I001, 0xABCDEFABAABBCCDD)
109    Name (S000, "qwrt")
110    Name (B001, Buffer (0x03)
111    {
112         0x91, 0x22, 0x83                                 // .".
113    })
114    Name (P08B, Package (0x02)
115    {
116        0x13,
117        0x1B
118    })
119    Device (DV00)
120    {
121    }
122
123    Method (M4A3, 0, NotSerialized)
124    {
125        Return (0x00)
126    }
127
128    OperationRegion (RG00, SystemMemory, 0x0100, 0x0100)
129    Field (RG00, ByteAcc, NoLock, Preserve)
130    {
131        FR20,   7
132    }
133
134    PowerResource (PWR0, 0x01, 0x0000)
135    {
136        Method (M000, 0, NotSerialized)
137        {
138            Return (0x00)
139        }
140    }
141
142    Processor (PRC0, 0x00, 0xFFFFFFFF, 0x00){}
143    Name (B002, Buffer (0x64){})
144    CreateDWordField (B002, 0x03, BFZ0)
145    /* Return object of required type */
146    /* */
147    /* arg0 - type of object */
148    Method (M484, 1, Serialized)
149    {
150        Name (TS, "m484")
151        Event (E001)
152        Mutex (MX01, 0x00)
153        Name (SS01, "svnmjkl")
154        Name (SS02, "1234zyq")
155        Name (SS03, "abcdefzyq")
156        Name (SS04, "9876")
157        Name (SS05, "aBcD")
158        Name (SS06, "1234567890987654")
159        Name (SS07, "daFeCBaabbddffee")
160        Name (SS08, "1234567890abCdeF")
161        Name (SS09, "FdeAcb0132547698")
162        Name (SS0A, "12345678909876540")
163        Name (SS0B, "fdeacb01325476980")
164        Name (SS0C, "123456789011223344556677889998765432199983337744")
165        Name (SS0D, "abcdefaAbbccddeeffffeeddccaabbddeeffaaaabbbbeeefffdd")
166        Name (SS0E, "1234567890abcdef9876543210fedbca1122334455667788fdeacb")
167        Name (SS0F, "defa1234567890abcdef9876543210fedbca1122334455667788fdeacb")
168        Name (SS10, "123456789011223344556677889998765432199983337744z")
169        Name (SS11, "0xF1dAB98e0D794Bc5")
170        Name (BB01, Buffer (0x01)
171        {
172             0x80                                             // .
173        })
174        Name (BB02, Buffer (0x02)
175        {
176             0x81, 0x82                                       // ..
177        })
178        Name (BB03, Buffer (0x04)
179        {
180             0x83, 0x84, 0x85, 0x86                           // ....
181        })
182        Name (BB04, Buffer (0x05)
183        {
184             0x87, 0x98, 0x99, 0x9A, 0x9B                     // .....
185        })
186        Name (BB05, Buffer (0x08)
187        {
188             0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3   // ........
189        })
190        Name (BB06, Buffer (0x09)
191        {
192            /* 0000 */  0xA4, 0xA5, 0xA6, 0xA7, 0xB8, 0xB9, 0xBA, 0xBB,  // ........
193            /* 0008 */  0xBC                                             // .
194        })
195        Name (BB07, Buffer (0xC8)
196        {
197            /* 0000 */  0x91, 0x92, 0x93, 0x94, 0x5F, 0x60, 0x61, 0x62,  // ...._`ab
198            /* 0008 */  0x63, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,  // c.......
199            /* 0010 */  0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,  // ........
200            /* 0018 */  0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,  // .......
201            /* 0020 */  0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,  // !"#$%&'(
202            /* 0028 */  0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30,  // )*+,-./0
203            /* 0030 */  0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,  // 12345678
204            /* 0038 */  0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40,  // 9:;<=>?@
205            /* 0040 */  0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,  // ABCDEFGH
206            /* 0048 */  0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,  // IJKLMNOP
207            /* 0050 */  0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,  // QRSTUVWX
208            /* 0058 */  0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60,  // YZ[\]^_`
209            /* 0060 */  0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,  // abcdefgh
210            /* 0068 */  0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,  // ijklmnop
211            /* 0070 */  0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,  // qrstuvwx
212            /* 0078 */  0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80,  // yz{|}~..
213            /* 0080 */  0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88,  // ........
214            /* 0088 */  0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90,  // ........
215            /* 0090 */  0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,  // ........
216            /* 0098 */  0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0,  // ........
217            /* 00A0 */  0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8,  // ........
218            /* 00A8 */  0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0,  // ........
219            /* 00B0 */  0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8,  // ........
220            /* 00B8 */  0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0,  // ........
221            /* 00C0 */  0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8   // ........
222        })
223        Name (BB08, Buffer (0x0101)
224        {
225            /* 0000 */  0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,  // ........
226            /* 0008 */  0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,  // ........
227            /* 0010 */  0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,  // ........
228            /* 0018 */  0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,  // .......
229            /* 0020 */  0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,  // !"#$%&'(
230            /* 0028 */  0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30,  // )*+,-./0
231            /* 0030 */  0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,  // 12345678
232            /* 0038 */  0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40,  // 9:;<=>?@
233            /* 0040 */  0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,  // ABCDEFGH
234            /* 0048 */  0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,  // IJKLMNOP
235            /* 0050 */  0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,  // QRSTUVWX
236            /* 0058 */  0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60,  // YZ[\]^_`
237            /* 0060 */  0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,  // abcdefgh
238            /* 0068 */  0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,  // ijklmnop
239            /* 0070 */  0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,  // qrstuvwx
240            /* 0078 */  0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80,  // yz{|}~..
241            /* 0080 */  0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88,  // ........
242            /* 0088 */  0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90,  // ........
243            /* 0090 */  0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,  // ........
244            /* 0098 */  0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0,  // ........
245            /* 00A0 */  0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8,  // ........
246            /* 00A8 */  0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0,  // ........
247            /* 00B0 */  0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8,  // ........
248            /* 00B8 */  0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0,  // ........
249            /* 00C0 */  0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8,  // ........
250            /* 00C8 */  0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,  // ........
251            /* 00D0 */  0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8,  // ........
252            /* 00D8 */  0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0,  // ........
253            /* 00E0 */  0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8,  // ........
254            /* 00E8 */  0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0,  // ........
255            /* 00F0 */  0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,  // ........
256            /* 00F8 */  0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x00,  // ........
257            /* 0100 */  0x01                                             // .
258        })
259        /* Field Units */
260
261        OperationRegion (R001, SystemMemory, 0x0100, 0x0100)
262        Field (R001, ByteAcc, NoLock, Preserve)
263        {
264            F001,   3,
265            F002,   8,
266            F003,   16,
267            F004,   32,
268            F005,/*33 */   33,
269            F006,/*63 */   63,
270            F007,/*64 */   64,
271            F008,/*65 */   65,
272            F009,   127,
273            F00A,   257
274                /* f00b, 201*8, do it also */
275        }
276
277        /* Buffer Fields */
278
279        Name (BB09, Buffer (0xC8){})
280        CreateField (BB09, 0x01, 0x03, BF01)
281        CreateField (BB09, 0x04, 0x08, BF02)
282        CreateField (BB09, 0x0C, 0x10, BF03)
283        CreateField (BB09, 0x1C, 0x20, BF04)
284        CreateField (BB09, 0x3C, 0x21, BF05)
285        CreateField (BB09, 0x5D, 0x3F, BF06)/*93 */
286        CreateField (BB09, 0x9C, 0x40, BF07)/*156 */
287        CreateField (BB09, 0xDC, 0x41, BF08)/*220 */
288        CreateField (BB09, 0x011D, 0x7F, BF09)/*285 */
289        CreateField (BB09, 0x019C, 0x0101, BF0A)/*412 */
290        /*	CreateField(bb09, xxx, 201*8, bf0b) */
291
292        CreateDWordField (BB09, 0x97, BF0B)
293        /*/////////////////////////////////////////////////////////////////// */
294
295        FR20 = 0xFF
296        F001 = 0xFF
297        F002 = 0x8A8B8C8D
298        F003 = 0x8A8B8C8D
299        F004 = 0x8A8B8C8D
300        F005 = Buffer (0x05)
301            {
302                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF                     // .....
303            }
304        F006 = Buffer (0x09)
305            {
306                /* 0000 */  0x58, 0x46, 0x37, 0x88, 0x19, 0xFA, 0xDE, 0xDC,  // XF7.....
307                /* 0008 */  0xFA                                             // .
308            }
309        F007 = Buffer (0x09)
310            {
311                /* 0000 */  0x58, 0x9A, 0x37, 0x88, 0x19, 0xFA, 0xDE, 0xDC,  // X.7.....
312                /* 0008 */  0xFA                                             // .
313            }
314        F008 = Buffer (0x09)
315            {
316                /* 0000 */  0x58, 0xC7, 0x37, 0x88, 0x19, 0xFA, 0xDE, 0xDC,  // X.7.....
317                /* 0008 */  0xFA                                             // .
318            }
319        F009 = Buffer (0x09)
320            {
321                /* 0000 */  0x82, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF,  // .4Vx....
322                /* 0008 */  0x55                                             // U
323            }
324        F00A = Buffer (0x09)
325            {
326                /* 0000 */  0x93, 0xAB, 0xCD, 0xEF, 0x99, 0x12, 0xCD, 0x52,  // .......R
327                /* 0008 */  0x87                                             // .
328            }
329        BFZ0 = 0x918654AB
330        BF01 = 0xFF
331        BF02 = 0x8A8B8C8D
332        BF03 = 0x8A8B8C8D
333        BF04 = 0x8A8B8C8D
334        BF05 = Buffer (0x05)
335            {
336                 0xFF, 0xFF, 0xFF, 0xFF, 0xFF                     // .....
337            }
338        BF06 = Buffer (0x09)
339            {
340                /* 0000 */  0x58, 0x46, 0x37, 0x88, 0x19, 0xFA, 0xDE, 0xDC,  // XF7.....
341                /* 0008 */  0xFA                                             // .
342            }
343        BF07 = Buffer (0x09)
344            {
345                /* 0000 */  0x58, 0x9A, 0x37, 0x88, 0x19, 0xFA, 0xDE, 0xDC,  // X.7.....
346                /* 0008 */  0xFA                                             // .
347            }
348        BF08 = Buffer (0x09)
349            {
350                /* 0000 */  0x58, 0xC7, 0x37, 0x88, 0x19, 0xFA, 0xDE, 0xDC,  // X.7.....
351                /* 0008 */  0xFA                                             // .
352            }
353        BF09 = Buffer (0x09)
354            {
355                /* 0000 */  0x82, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF,  // .4Vx....
356                /* 0008 */  0x55                                             // U
357            }
358        BF0A = Buffer (0x09)
359            {
360                /* 0000 */  0x93, 0xAB, 0xCD, 0xEF, 0x99, 0x12, 0xCD, 0x52,  // .......R
361                /* 0008 */  0x87                                             // .
362            }
363        BF0B = 0xA2B3C4D5
364        /*/////////////////////////////////////////////////////////////////// */
365
366        Name (PP01, Package (0x01)
367        {
368            0x13
369        })
370        Device (DV01)
371        {
372        }
373
374        Method (M001, 0, NotSerialized)
375        {
376            Return (0x00)
377        }
378
379        OperationRegion (R002, SystemMemory, 0x0100, 0x0100)
380        PowerResource (PWR1, 0x01, 0x0000)
381        {
382            Method (M000, 0, NotSerialized)
383            {
384                Return (0x00)
385            }
386        }
387
388        Processor (PR01, 0x00, 0xFFFFFFFF, 0x00){}
389        Local7 = 0x00
390        Switch (ToInteger (Arg0))
391        {
392            /* Uninitialized */
393            /*
394             * case (0x000) {
395             * }
396             */
397            /* Integers */
398            Case (0x0100)
399            {
400                Local7 = I000 /* \I000 */
401            }
402            Case (0x0101)
403            {
404                Local7 = I001 /* \I001 */
405            }
406            Case (0x0102)
407            {
408                Local7 = 0x12345678
409            }
410            Case (0x0103)
411            {
412                Local7 = 0xABEDF18942345678
413            }
414            Case (0x0104)
415            {
416                Local7 = Zero
417            }
418            Case (0x0105)
419            {
420                Local7 = One
421            }
422            Case (0x0106)
423            {
424                Local7 = Ones
425            }
426            Case (0x0107)
427            {
428                Local7 = Revision
429            }
430            Case (0x0108)
431            {
432                Local7 = 0x0123
433            }
434            Case (0x0109)
435            {
436                Local7 = 0x0B
437            }
438            Case            /* Strings */
439
440 (0x0200)
441            {
442                Local7 = S000 /* \S000 */
443            }
444            Case (0x0201)
445            {
446                Local7 = SS01 /* \M484.SS01 */
447            }
448            Case (0x0202)
449            {
450                Local7 = SS02 /* \M484.SS02 */
451            }
452            Case (0x0203)
453            {
454                Local7 = SS03 /* \M484.SS03 */
455            }
456            Case (0x0204)
457            {
458                Local7 = SS04 /* \M484.SS04 */
459            }
460            Case (0x0205)
461            {
462                Local7 = SS05 /* \M484.SS05 */
463            }
464            Case (0x0206)
465            {
466                Local7 = SS06 /* \M484.SS06 */
467            }
468            Case (0x0207)
469            {
470                Local7 = SS07 /* \M484.SS07 */
471            }
472            Case (0x0208)
473            {
474                Local7 = SS08 /* \M484.SS08 */
475            }
476            Case (0x0209)
477            {
478                Local7 = SS09 /* \M484.SS09 */
479            }
480            Case (0x020A)
481            {
482                Local7 = SS0A /* \M484.SS0A */
483            }
484            Case (0x020B)
485            {
486                Local7 = SS0B /* \M484.SS0B */
487            }
488            Case (0x020C)
489            {
490                Local7 = SS0C /* \M484.SS0C */
491            }
492            Case (0x020D)
493            {
494                Local7 = SS0D /* \M484.SS0D */
495            }
496            Case (0x020E)
497            {
498                Local7 = SS0E /* \M484.SS0E */
499            }
500            Case (0x020F)
501            {
502                Local7 = SS0F /* \M484.SS0F */
503            }
504            Case (0x0210)
505            {
506                Local7 = SS10 /* \M484.SS10 */
507            }
508            Case (0x0211)
509            {
510                Local7 = SS11 /* \M484.SS11 */
511            }
512            Case            /* Buffers */
513
514 (0x0300)
515            {
516                Local7 = B001 /* \B001 */
517            }
518            Case (0x0301)
519            {
520                Local7 = BB01 /* \M484.BB01 */
521            }
522            Case (0x0302)
523            {
524                Local7 = BB02 /* \M484.BB02 */
525            }
526            Case (0x0303)
527            {
528                Local7 = BB03 /* \M484.BB03 */
529            }
530            Case (0x0304)
531            {
532                Local7 = BB04 /* \M484.BB04 */
533            }
534            Case (0x0305)
535            {
536                Local7 = BB05 /* \M484.BB05 */
537            }
538            Case (0x0306)
539            {
540                Local7 = BB06 /* \M484.BB06 */
541            }
542            Case (0x0307)
543            {
544                Local7 = BB07 /* \M484.BB07 */
545            }
546            Case (0x0308)
547            {
548                Local7 = BB08 /* \M484.BB08 */
549            }
550            Case            /* Packages */
551
552 (0x0400)
553            {
554                Local7 = P08B /* \P08B */
555            }
556            Case (0x0401)
557            {
558                Local7 = PP01 /* \M484.PP01 */
559            }
560            Case            /* Field Units */
561
562 (0x0500)
563            {
564                Local7 = FR20 /* \FR20 */
565            }
566            Case (0x0501)
567            {
568                Local7 = F001 /* \M484.F001 */
569            }
570            Case (0x0502)
571            {
572                Local7 = F002 /* \M484.F002 */
573            }
574            Case (0x0503)
575            {
576                Local7 = F003 /* \M484.F003 */
577            }
578            Case (0x0504)
579            {
580                Local7 = F004 /* \M484.F004 */
581            }
582            Case (0x0505)
583            {
584                Local7 = F005 /* \M484.F005 */
585            }
586            Case (0x0506)
587            {
588                Local7 = F006 /* \M484.F006 */
589            }
590            Case (0x0507)
591            {
592                Local7 = F007 /* \M484.F007 */
593            }
594            Case (0x0508)
595            {
596                Local7 = F008 /* \M484.F008 */
597            }
598            Case (0x0509)
599            {
600                Local7 = F009 /* \M484.F009 */
601            }
602            Case (0x050A)
603            {
604                Local7 = F00A /* \M484.F00A */
605            }
606            Case            /*
607             // Removed 09/2015: iASL now disallows these stores
608             // Devices
609             case (0x600) {
610             Store(dv00, Local7)
611             }
612             case (0x601) {
613             Store(dv01, Local7)
614             }
615             // Events
616             case (0x700) {
617             Store(e000, Local7)
618             }
619             case (0x701) {
620             Store(e001, Local7)
621             }
622             // Methods
623             case (0x800) {
624             Store(m4a3, Local7)
625             }
626             case (0x801) {
627             Store(m001, Local7)
628             }
629             // Mutexes
630             case (0x900) {
631             Store(mx00, Local7)
632             }
633             case (0x901) {
634             Store(mx01, Local7)
635             }
636             // Operation Regions
637             case (0xa00) {
638             Store(rg00, Local7)
639             }
640             case (0xa01) {
641             Store(r001, Local7)
642             }
643             case (0xa02) {
644             Store(r002, Local7)
645             }
646             // Power Resources
647             case (0xb00) {
648             Store(pwr0, Local7)
649             }
650             case (0xb01) {
651             Store(pwr1, Local7)
652             }
653             // Processor
654             case (0xc00) {
655             Store(prc0, Local7)
656             }
657             case (0xc01) {
658             Store(pr01, Local7)
659             }
660             // Thermal Zones
661             */
662            /*
663             * case (0xd00) {
664             *		Store(Debug, Local7)
665             * }
666             */
667            /* Buffer Field */
668 (0x0E00)
669            {
670                Local7 = BFZ0 /* \BFZ0 */
671            }
672            Case (0x0E01)
673            {
674                Local7 = BF01 /* \M484.BF01 */
675            }
676            Case (0x0E02)
677            {
678                Local7 = BF02 /* \M484.BF02 */
679            }
680            Case (0x0E03)
681            {
682                Local7 = BF03 /* \M484.BF03 */
683            }
684            Case (0x0E04)
685            {
686                Local7 = BF04 /* \M484.BF04 */
687            }
688            Case (0x0E05)
689            {
690                Local7 = BF05 /* \M484.BF05 */
691            }
692            Case (0x0E06)
693            {
694                Local7 = BF06 /* \M484.BF06 */
695            }
696            Case (0x0E07)
697            {
698                Local7 = BF07 /* \M484.BF07 */
699            }
700            Case (0x0E08)
701            {
702                Local7 = BF08 /* \M484.BF08 */
703            }
704            Case (0x0E09)
705            {
706                Local7 = BF09 /* \M484.BF09 */
707            }
708            Case (0x0E0A)
709            {
710                Local7 = BF0A /* \M484.BF0A */
711            }
712            Case (0x0E0B)
713            {
714                Local7 = BF0B /* \M484.BF0B */
715            }
716            /* DDB Handle */
717            /*
718             * case (0xf00) {
719             *		Store(Debug, Local7)
720             * }
721             */
722            /* Debug Object */
723            /*
724             * case (0x1000) {
725             *		Store(Debug, Local7)
726             * }
727             */
728            Default
729            {
730                If ((Arg0 != 0x00))
731                {
732                    ERR ("----------- ERROR, m484: incorrect Arg0:", Z064, 0x023D, 0x00, 0x00, 0x00, 0x00)
733                    Debug = Arg0
734                }
735            }
736
737        }
738
739        Return (Local7)
740    }
741
742    /* arg0 - opcode of operation */
743    /* arg1 - type of 0-th argument */
744    /* arg2 - type of 1-th argument */
745    /* arg3 - type of 2-th argument */
746    /* arg4 - type of 3-th argument */
747    /* arg5 - type of 4-th argument */
748    /* arg6 - {Ones - flag of exception, otherwise - index of result pair} */
749    Method (M485, 7, Serialized)
750    {
751        If (0x00)
752        {
753            Debug = "##################################################################"
754            Debug = Arg6
755        }
756
757        Name (TS, "m485")
758        Name (EX00, 0x00)
759        Name (TMP0, 0x00)
760        If ((Arg6 == FLG0))
761        {
762            EX00 = 0x01
763        }
764        Else
765        {
766            Local5 = M48C (PKG1, Arg6)
767            Local7 = ObjectType (Local5)
768            If ((Local7 == 0x02))
769            {
770                If ((Local5 == "Exc"))
771                {
772                    EX00 = 0x01
773                }
774            }
775        }
776
777        Local7 = 0x00
778        /* m482: */
779        /* */
780        /* arg0-arg4 - parameters of operators */
781        /* arg5      - miscellaneous */
782        /* arg6      - opcode of operation */
783        /*
784         * //// ?????????????????????????
785         * Uninitialized data should be passed to the operators immediately
786         * in the m480 but not here to these Store operations!!!!!!!!!!!!!!
787         * But this will a few complicate m480 !!!!!!!!!!!!!!!!!!!!!!!!!!!!
788         * //// ?????????????????????????
789         */
790        /* Parameters (if not to save them Uninitialized) */
791        If ((Arg1 != 0x0FFF))
792        {
793            Local0 = M484 (Arg1)
794        }
795
796        If ((Arg2 != 0x0FFF))
797        {
798            Local1 = M484 (Arg2)
799        }
800
801        If ((Arg3 != 0x0FFF))
802        {
803            Local2 = M484 (Arg3)
804        }
805
806        If ((Arg4 != 0x0FFF))
807        {
808            Local3 = M484 (Arg4)
809        }
810
811        If ((Arg5 != 0x0FFF))
812        {
813            Local4 = M484 (Arg5)
814        }
815
816        If (EX00)
817        {
818            TMP0 = FLG2 /* \FLG2 */
819            CH03 (TS, Z064, __LINE__, 0x00, 0x00)
820        }
821
822        Local7 = M482 (Local0, Local1, Local2, Local3, Local4, TMP0, Arg0)
823        If (EX00)
824        {
825            CH04 (__METHOD__, 0x00, 0xFF, Z064, __LINE__, 0x00, 0x00)
826        }
827        ElseIf (FLG1)
828        {
829            /* Verify the first result */
830
831            M489 (TS, Local7, Local5)
832        }
833
834        If (COM2)
835        {
836            /* The same operation but the first two arguments interchange */
837
838            If ((Arg6 != FLG0))
839            {
840                If ((COM2 == 0x02))
841                {
842                    EX00 = 0x00
843                    Local5 = M48C (PKG2, Arg6)
844                    Local7 = ObjectType (Local5)
845                    If ((Local7 == 0x02))
846                    {
847                        If ((Local5 == "Exc"))
848                        {
849                            EX00 = 0x01
850                        }
851                    }
852                }
853            }
854
855            If (EX00)
856            {
857                CH03 (TS, Z064, __LINE__, 0x00, 0x00)
858            }
859
860            Local7 = M482 (Local1, Local0, Local2, Local3, Local4, TMP0, Arg0)
861            If (EX00)
862            {
863                CH04 (__METHOD__, 0x00, 0xFF, Z064, __LINE__, 0x00, 0x00)
864            }
865            ElseIf (FLG1)
866            {
867                /* Verify the second result */
868
869                M489 (TS, Local7, Local5)
870            }
871        }
872
873        Return (Local7)
874    }
875
876    /* Init all parameters as non-usable */
877
878    Method (M486, 0, NotSerialized)
879    {
880        DF00 = 0x00
881        DF01 = 0x00
882        DF02 = 0x00
883        DF03 = 0x00
884        DF04 = 0x00
885    }
886
887    /* Return the object of required type. */
888    /* Allowed types are {1-12,14}, == 0x5fff. */
889    /* Returned 0xfff is flag of "Uninitialized". */
890    /* */
891    /* These have to be implemented: */
892    /* */
893    /*	Method, Thermal Zone, DDB Handle */
894    /* */
895    Method (M487, 1, Serialized)
896    {
897        Switch (ToInteger (Arg0))
898        {
899            Case (0x00)
900            {
901                /* Uninitialized */
902
903                Local7 = 0x0FFF
904            }
905            Case (0x01)
906            {
907                /* Integers */
908
909                Local7 = 0x0100
910            }
911            Case (0x02)
912            {
913                /* Strings */
914
915                Local7 = 0x0204
916            }
917            Case (0x03)
918            {
919                /* Buffers */
920
921                Local7 = 0x0300
922            }
923            Case (0x04)
924            {
925                /* Packages */
926
927                Local7 = 0x0400
928            }
929            Case (0x05)
930            {
931                /* Field Units */
932
933                Local7 = 0x0500
934            }
935            Case (0x06)
936            {
937                /* Devices */
938
939                Local7 = 0x0600
940            }
941            Case (0x07)
942            {
943                /* Events */
944
945                Local7 = 0x0700
946            }
947            Case (0x08)
948            {
949                /* Methods */
950
951                Local7 = 0x0800
952            }
953            Case (0x09)
954            {
955                /* Mutexes */
956
957                Local7 = 0x0900
958            }
959            Case (0x0A)
960            {
961                /* Operation Regions */
962
963                Local7 = 0x0A00
964            }
965            Case (0x0B)
966            {
967                /* Power Resources */
968
969                Local7 = 0x0B00
970            }
971            Case (0x0C)
972            {
973                /* Processor */
974
975                Local7 = 0x0C00
976            }
977            Case            /*
978             * case (0xd00) {
979             *	// Thermal Zones
980             *	Store(Debug, Local7)
981             * }
982             */
983 (0x0E)
984            {
985                /* Buffer Field */
986
987                Local7 = 0x0E00
988            }
989            /*
990             * case (0xf00) {
991             *	// DDB Handle
992             *	Store(Debug, Local7)
993             * }
994             *
995             *
996             * case (0x1000) {
997             *	// Debug Object
998             *	Store(Debug, Local7)
999             * }
1000             */
1001            Default
1002            {
1003                If ((Arg0 != 0x00))
1004                {
1005                    ERR ("----------- ERROR, m487: incorrect Arg0:", Z064, 0x0319, 0x00, 0x00, 0x00, 0x00)
1006                    Debug = Arg0
1007                    Local7 = 0x00
1008                }
1009            }
1010
1011        }
1012
1013        Return (Local7)
1014    }
1015
1016    /* Initiate exception by inappropriate operand */
1017
1018    Method (M488, 6, Serialized)
1019    {
1020        Local7 = 0x00
1021        Name (LPN0, 0x00)
1022        Name (LPC0, 0x00)
1023        If ((Arg1 & 0x5FFF))
1024        {
1025            LPN0 = 0x10
1026            LPC0 = 0x00
1027            While (LPN0)
1028            {
1029                Local6 = (0x01 << LPC0) /* \M488.LPC0 */
1030                If ((Arg1 & Local6))
1031                {
1032                    Local5 = M487 (LPC0)
1033                    Local7 = M485 (Arg0, Local5, DF01, DF02, DF03, DF04, FLG0)
1034                }
1035
1036                LPN0--
1037                LPC0++
1038            }
1039        }
1040
1041        If ((Arg2 & 0x5FFF))
1042        {
1043            LPN0 = 0x10
1044            LPC0 = 0x00
1045            While (LPN0)
1046            {
1047                Local6 = (0x01 << LPC0) /* \M488.LPC0 */
1048                If ((Arg2 & Local6))
1049                {
1050                    Local5 = M487 (LPC0)
1051                    Local7 = M485 (Arg0, DF00, Local5, DF02, DF03, DF04, FLG0)
1052                }
1053
1054                LPN0--
1055                LPC0++
1056            }
1057        }
1058
1059        If ((Arg3 & 0x5FFF))
1060        {
1061            LPN0 = 0x10
1062            LPC0 = 0x00
1063            While (LPN0)
1064            {
1065                Local6 = (0x01 << LPC0) /* \M488.LPC0 */
1066                If ((Arg3 & Local6))
1067                {
1068                    Local5 = M487 (LPC0)
1069                    Local7 = M485 (Arg0, DF00, DF01, Local5, DF03, DF04, FLG0)
1070                }
1071
1072                LPN0--
1073                LPC0++
1074            }
1075        }
1076
1077        If ((Arg4 & 0x5FFF))
1078        {
1079            LPN0 = 0x10
1080            LPC0 = 0x00
1081            While (LPN0)
1082            {
1083                Local6 = (0x01 << LPC0) /* \M488.LPC0 */
1084                If ((Arg4 & Local6))
1085                {
1086                    Local5 = M487 (LPC0)
1087                    Local7 = M485 (Arg0, DF00, DF01, DF02, Local5, DF04, FLG0)
1088                }
1089
1090                LPN0--
1091                LPC0++
1092            }
1093        }
1094
1095        If ((Arg5 & 0x5FFF))
1096        {
1097            LPN0 = 0x10
1098            LPC0 = 0x00
1099            While (LPN0)
1100            {
1101                Local6 = (0x01 << LPC0) /* \M488.LPC0 */
1102                If ((Arg5 & Local6))
1103                {
1104                    Local5 = M487 (LPC0)
1105                    Local7 = M485 (Arg0, DF00, DF01, DF02, DF03, Local5, FLG0)
1106                }
1107
1108                LPN0--
1109                LPC0++
1110            }
1111        }
1112
1113        Return (Local7)
1114    }
1115
1116    Method (M489, 3, NotSerialized)
1117    {
1118        Local0 = ObjectType (Arg1)
1119        Local1 = ObjectType (Arg2)
1120        If ((Local0 != Local1))
1121        {
1122            ERR (Arg0, Z064, __LINE__, 0x00, 0x00, Local0, Local1)
1123        }
1124        ElseIf ((Arg1 != Arg2))
1125        {
1126            ERR (Arg0, Z064, __LINE__, 0x00, 0x00, Arg1, Arg2)
1127        }
1128    }
1129
1130    /* Verify result */
1131    /* <name>,<results>,<result>,<index of result pair> */
1132    Method (M48A, 4, NotSerialized)
1133    {
1134        Local0 = (Arg3 * 0x02)
1135        Local7 = DerefOf (Arg1 [Local0])
1136        Local0++
1137        Local6 = DerefOf (Arg1 [Local0])
1138        If (F64)
1139        {
1140            If ((Arg2 != Local7))
1141            {
1142                ERR (Arg0, Z064, __LINE__, 0x00, 0x00, Arg2, Local7)
1143            }
1144        }
1145        ElseIf ((Arg2 != Local6))
1146        {
1147            ERR (Arg0, Z064, __LINE__, 0x00, 0x00, Arg2, Local6)
1148        }
1149    }
1150
1151    /* Integer two operands operation */
1152    /* <operation>,<type of first operand> */
1153    /* */
1154    /* NOTE: now it work only by particular parts, */
1155    /*       all together produce crashes. Uncomment */
1156    /*       in future. */
1157    Method (M48B, 2, NotSerialized)
1158    {
1159        /* X - Integer */
1160
1161        Local7 = M485 (Arg0, Arg1, 0x0100, 0x00, 0x00, 0x00, 0x00)
1162        /* X - String */
1163
1164        Local7 = M485 (Arg0, Arg1, 0x0200, 0x00, 0x00, 0x00, 0x01)
1165        Local7 = M485 (Arg0, Arg1, 0x0201, 0x00, 0x00, 0x00, 0x02)
1166        Local7 = M485 (Arg0, Arg1, 0x0202, 0x00, 0x00, 0x00, 0x03)
1167        Local7 = M485 (Arg0, Arg1, 0x0203, 0x00, 0x00, 0x00, 0x04)
1168        Local7 = M485 (Arg0, Arg1, 0x0204, 0x00, 0x00, 0x00, 0x05)
1169        Local7 = M485 (Arg0, Arg1, 0x0205, 0x00, 0x00, 0x00, 0x06)
1170        Local7 = M485 (Arg0, Arg1, 0x0206, 0x00, 0x00, 0x00, 0x07)
1171        Local7 = M485 (Arg0, Arg1, 0x0207, 0x00, 0x00, 0x00, 0x08)
1172        Local7 = M485 (Arg0, Arg1, 0x0208, 0x00, 0x00, 0x00, 0x09)
1173        Local7 = M485 (Arg0, Arg1, 0x0209, 0x00, 0x00, 0x00, 0x0A)
1174        Local7 = M485 (Arg0, Arg1, 0x020A, 0x00, 0x00, 0x00, 0x0B)
1175        Local7 = M485 (Arg0, Arg1, 0x020B, 0x00, 0x00, 0x00, 0x0C)
1176        Local7 = M485 (Arg0, Arg1, 0x020C, 0x00, 0x00, 0x00, 0x0D)
1177        Local7 = M485 (Arg0, Arg1, 0x020D, 0x00, 0x00, 0x00, 0x0E)
1178        Local7 = M485 (Arg0, Arg1, 0x020E, 0x00, 0x00, 0x00, 0x0F)
1179        Local7 = M485 (Arg0, Arg1, 0x020F, 0x00, 0x00, 0x00, 0x10)
1180        Local7 = M485 (Arg0, Arg1, 0x0210, 0x00, 0x00, 0x00, 0x11)
1181        /* X - Buffer */
1182
1183        Local7 = M485 (Arg0, Arg1, 0x0300, 0x00, 0x00, 0x00, 0x12)
1184        Local7 = M485 (Arg0, Arg1, 0x0301, 0x00, 0x00, 0x00, 0x13)
1185        Local7 = M485 (Arg0, Arg1, 0x0302, 0x00, 0x00, 0x00, 0x14)
1186        Local7 = M485 (Arg0, Arg1, 0x0303, 0x00, 0x00, 0x00, 0x15)
1187        Local7 = M485 (Arg0, Arg1, 0x0304, 0x00, 0x00, 0x00, 0x16)
1188        Local7 = M485 (Arg0, Arg1, 0x0305, 0x00, 0x00, 0x00, 0x17)
1189        Local7 = M485 (Arg0, Arg1, 0x0306, 0x00, 0x00, 0x00, 0x18)
1190        Local7 = M485 (Arg0, Arg1, 0x0307, 0x00, 0x00, 0x00, 0x19)
1191        Local7 = M485 (Arg0, Arg1, 0x0308, 0x00, 0x00, 0x00, 0x1A)
1192        /* X - Field Unit */
1193
1194        Local7 = M485 (Arg0, Arg1, 0x0500, 0x00, 0x00, 0x00, 0x1B)
1195        Local7 = M485 (Arg0, Arg1, 0x0501, 0x00, 0x00, 0x00, 0x1C)
1196        Local7 = M485 (Arg0, Arg1, 0x0502, 0x00, 0x00, 0x00, 0x1D)
1197        Local7 = M485 (Arg0, Arg1, 0x0503, 0x00, 0x00, 0x00, 0x1E)
1198        Local7 = M485 (Arg0, Arg1, 0x0504, 0x00, 0x00, 0x00, 0x1F)
1199        Local7 = M485 (Arg0, Arg1, 0x0505, 0x00, 0x00, 0x00, 0x20)
1200        Local7 = M485 (Arg0, Arg1, 0x0506, 0x00, 0x00, 0x00, 0x21)
1201        Local7 = M485 (Arg0, Arg1, 0x0507, 0x00, 0x00, 0x00, 0x22)
1202        Local7 = M485 (Arg0, Arg1, 0x0508, 0x00, 0x00, 0x00, 0x23)
1203        Local7 = M485 (Arg0, Arg1, 0x0509, 0x00, 0x00, 0x00, 0x24)
1204        Local7 = M485 (Arg0, Arg1, 0x050A, 0x00, 0x00, 0x00, 0x25)
1205        /* X - Buffer Field */
1206
1207        Local7 = M485 (Arg0, Arg1, 0x0E00, 0x00, 0x00, 0x00, 0x26)
1208        Local7 = M485 (Arg0, Arg1, 0x0E01, 0x00, 0x00, 0x00, 0x27)
1209        Local7 = M485 (Arg0, Arg1, 0x0E02, 0x00, 0x00, 0x00, 0x28)
1210        Local7 = M485 (Arg0, Arg1, 0x0E03, 0x00, 0x00, 0x00, 0x29)
1211        Local7 = M485 (Arg0, Arg1, 0x0E04, 0x00, 0x00, 0x00, 0x2A)
1212        Local7 = M485 (Arg0, Arg1, 0x0E05, 0x00, 0x00, 0x00, 0x2B)
1213        Local7 = M485 (Arg0, Arg1, 0x0E06, 0x00, 0x00, 0x00, 0x2C)
1214        Local7 = M485 (Arg0, Arg1, 0x0E07, 0x00, 0x00, 0x00, 0x2D)
1215        Local7 = M485 (Arg0, Arg1, 0x0E08, 0x00, 0x00, 0x00, 0x2E)
1216        Local7 = M485 (Arg0, Arg1, 0x0E09, 0x00, 0x00, 0x00, 0x2F)
1217        Local7 = M485 (Arg0, Arg1, 0x0E0A, 0x00, 0x00, 0x00, 0x30)
1218    }
1219
1220    /* Return element of Package */
1221    /* <Package>,<index of elements-pair> */
1222    /* pair: {F64-element, F32-element} */
1223    Method (M48C, 2, NotSerialized)
1224    {
1225        Local0 = (Arg1 * 0x02)
1226        If (F64)
1227        {
1228            Local7 = DerefOf (Arg0 [Local0])
1229        }
1230        Else
1231        {
1232            Local0++
1233            Local7 = DerefOf (Arg0 [Local0])
1234        }
1235
1236        Return (Local7)
1237    }
1238
1239    /* arg0 - opcode of operation */
1240    /* */
1241    /* arg1 - type of 0-th argument */
1242    /* arg2 - type of 1-th argument */
1243    /* arg3 - type of 2-th argument */
1244    /* arg4 - type of 3-th argument */
1245    /* */
1246    /* arg5 - expected 64-bit result */
1247    /* arg6 - expected 32-bit result */
1248    Method (M48D, 7, Serialized)
1249    {
1250        Name (TS, "m48d")
1251        Name (TMP0, 0x00)
1252        If (0x00)
1253        {
1254            Debug = "##################################################################"
1255            Debug = Arg6
1256        }
1257
1258        Name (EX00, 0x00)
1259        If (F64)
1260        {
1261            Local0 = ObjectType (Arg5)
1262            If ((Local0 == 0x02))
1263            {
1264                If ((Arg5 == "Exc"))
1265                {
1266                    EX00 = 0x01
1267                }
1268            }
1269        }
1270        Else
1271        {
1272            Local0 = ObjectType (Arg6)
1273            If ((Local0 == 0x02))
1274            {
1275                If ((Arg6 == "Exc"))
1276                {
1277                    EX00 = 0x01
1278                }
1279            }
1280        }
1281
1282        Local7 = 0x00
1283        /* m482: */
1284        /* */
1285        /* arg0-arg4 - parameters of operators */
1286        /* arg5      - miscellaneous */
1287        /* arg6      - opcode of operation */
1288        Local0 = M484 (Arg1)
1289        Local1 = M484 (Arg2)
1290        Local2 = M484 (Arg3)
1291        Local3 = M484 (Arg4)
1292        If (EX00)
1293        {
1294            TMP0 = FLG2 /* \FLG2 */
1295            CH03 (TS, Z064, __LINE__, 0x00, 0x00)
1296        }
1297
1298        Local7 = M482 (Local0, Local1, Local2, Local3, 0x00, TMP0, Arg0)
1299        If (EX00)
1300        {
1301            CH04 (__METHOD__, 0x00, 0xFF, Z064, __LINE__, 0x00, 0x00)
1302        }
1303        ElseIf        /* Verify the result */
1304
1305 (F64)
1306        {
1307            M489 (TS, Local7, Arg5)
1308        }
1309        Else
1310        {
1311            M489 (TS, Local7, Arg6)
1312        }
1313
1314        Return (Local7)
1315    }
1316