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