diff options
author | rmoore1 <rmoore1> | 2007-08-28 22:18:01 +0000 |
---|---|---|
committer | rmoore1 <rmoore1> | 2007-08-28 22:18:01 +0000 |
commit | 73b2ac1aafc834f16f025b83a4fe8beb175e9149 (patch) | |
tree | 7ee229b7d57c0cb20c31bc4f28f026b68839c606 /tests/aslts/src/runtime/common/conversion | |
parent | 073a0f904ad3159fa903e752ddbdd6f296418020 (diff) | |
download | acpica-73b2ac1aafc834f16f025b83a4fe8beb175e9149.tar.gz |
Release 7 of ASLTS. Corresponds to ACPICA 20070320.
Diffstat (limited to 'tests/aslts/src/runtime/common/conversion')
-rw-r--r-- | tests/aslts/src/runtime/common/conversion/oDECL.asl | 35 | ||||
-rw-r--r-- | tests/aslts/src/runtime/common/conversion/oproc.asl | 1076 | ||||
-rw-r--r-- | tests/aslts/src/runtime/common/conversion/otest.asl | 4451 | ||||
-rw-r--r-- | tests/aslts/src/runtime/common/conversion/rDECL.asl | 34 | ||||
-rw-r--r-- | tests/aslts/src/runtime/common/conversion/rproc.asl | 110 | ||||
-rw-r--r-- | tests/aslts/src/runtime/common/conversion/rtest.asl | 1414 |
6 files changed, 7120 insertions, 0 deletions
diff --git a/tests/aslts/src/runtime/common/conversion/oDECL.asl b/tests/aslts/src/runtime/common/conversion/oDECL.asl new file mode 100644 index 000000000..a34a297c6 --- /dev/null +++ b/tests/aslts/src/runtime/common/conversion/oDECL.asl @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2006, Intel Corp. + * Copyright (C) 2006, Valery Podrezov <valery.a.podrezov@intel.com> + * Copyright (C) 2006, Fiodor Suietov <fiodor.f.suietov@intel.com> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// Implicit Source Operand Conversion + +Include("../../../../runtime/common/operations.asl") +Include("../../../../runtime/common/conversion/oproc.asl") +Include("../../../../runtime/common/conversion/otest.asl") diff --git a/tests/aslts/src/runtime/common/conversion/oproc.asl b/tests/aslts/src/runtime/common/conversion/oproc.asl new file mode 100644 index 000000000..924b164e6 --- /dev/null +++ b/tests/aslts/src/runtime/common/conversion/oproc.asl @@ -0,0 +1,1076 @@ +/* + * Copyright (c) 2006, Intel Corp. + * Copyright (C) 2006, Valery Podrezov <valery.a.podrezov@intel.com> + * Copyright (C) 2006, Fiodor Suietov <fiodor.f.suietov@intel.com> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +/* + + ============================ + !!!!!!!!!!!!!!!!!!!!!!!!!!!! + IT IS IN PROGRESS !!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!! + ============================ + +SEE: ???????????? + +1) Add 0 into the middle of any Buffer +2) Do BOTH directions for Concatenation: + - First argument - String + - First argument - Buffer +3) Extend the test, if possible, for all the operators +4) add method m480 with the different objects creations. +5) change Name(ss08, "1234567890abCdeF") + to Name(ss08, "1234567830abCdeF") +6) do the same as m480() but use LocalX instead ArgX + in Operators invocations: + Store(Add(Local0, Local1, Local7), local7) +*/ + +// Methods for Conversion tests +// +// (low number of available arguments {Arg0-Arg6} complicates algorithms). +// +// Currently from the mask of exceptions to be forced are excluded bits +// corresponding to the following types ("dont know how" have to be added): +// +// - Method (dont know how) +// - Thermal Zones (dont know how) +// - DDB Handle (dont know how) +// - Debug Object (impossible, Compiler refuses) +// - Uninitialized (update needed, currently the test is implemented incorrectly. +// Uninitialized type have to be passed immediately as operands +// in m480). +// +// Currently excluded from all the total scales of unacceptable types +// (to be added later): +// +// 0x0100 - Method +// 0x2000 - Thermal Zone +// 0x8000 - DDB Handle +// +// Total scale of acceptable types: +// +// int - 0xc02e - Integer, String, Buffer, Field Unit, Buffer Field, DDB Handle +// + +// NOTE: many entries are commented not to cause crashes. +// Have to be uncommented after ACPICA will be fixed. +// + +Name(z064, 64) + +// Commutative two operands operation +// (CAUTION: dont forget to clean it) +Name(com2, 0) + +// Flags exception expected +// (needed due to the lack of Arguments number) +Name(FLG0, 0x19283746) + +// Flag - verify result with the contents of Package +Name(FLG1, 0) + +// Package contains benchmarks of results +Name(PKG0, Package(1) {0x10000001}) +Name(PKG1, Package(1) {0x11111111}) +Name(PKG2, Package(1) {0x22222222}) + +Name(df00, 0) +Name(df01, 0) +Name(df02, 0) +Name(df03, 0) +Name(df04, 0) +Event(e000) +Mutex(mx00, 0) +Name(i000, 0x58765432) +Name(i001, 0xabcdefabaabbccdd) +Name(s000, "qwrt") +Name(b001, Buffer() {0x91,0x22,0x83}) +Name(p08b, Package() {19,27}) +Device(dv00) {} +Method(m4a3) { return (0) } +OperationRegion(rg00, SystemMemory, 0x100, 0x100) +Field(rg00, ByteAcc, NoLock, Preserve) { fr20, 7 } +PowerResource(pwr0, 1, 0) {Method(m000){return (0)}} +Processor(prc0, 0, 0xFFFFFFFF, 0) {} +Name(b002, Buffer(100) {}) +CreateDWordField(b002, 3, bfz0) + + +// Return object of required type +// +// arg0 - type of object +Method(m484, 1) +{ + Name(ts, "m484") + + Event(e001) + Mutex(mx01, 0) + + Name(ss01, "svnmjkl") + Name(ss02, "1234zyq") + Name(ss03, "abcdefzyq") + Name(ss04, "9876") + Name(ss05, "aBcD") + Name(ss06, "1234567890987654") + Name(ss07, "daFeCBaabbddffee") + Name(ss08, "1234567890abCdeF") + Name(ss09, "FdeAcb0132547698") + Name(ss0a, "12345678909876540") + Name(ss0b, "fdeacb01325476980") + Name(ss0c, "123456789011223344556677889998765432199983337744") + Name(ss0d, "abcdefaAbbccddeeffffeeddccaabbddeeffaaaabbbbeeefffdd") + Name(ss0e, "1234567890abcdef9876543210fedbca1122334455667788fdeacb") + Name(ss0f, "defa1234567890abcdef9876543210fedbca1122334455667788fdeacb") + Name(ss10, "123456789011223344556677889998765432199983337744z") + Name(ss11, "0xF1dAB98e0D794Bc5") + + Name(bb01, Buffer() {0x80}) + Name(bb02, Buffer() {0x81,0x82}) + Name(bb03, Buffer() {0x83,0x84,0x85,0x86}) + Name(bb04, Buffer() {0x87,0x98,0x99,0x9a,0x9b}) + Name(bb05, Buffer() {0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0xa3}) + Name(bb06, Buffer() {0xa4,0xa5,0xa6,0xa7,0xb8,0xb9,0xba,0xbb,0xbc}) + Name(bb07, Buffer(200) { + 0x91, 0x92, 0x93, 0x94, 95, 96, 97, 98, 99, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112, + 113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128, + 129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144, + 145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160, + 161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176, + 177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192, + 193,194,195,196,197,198,199,200}) + Name(bb08, Buffer(257) { + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112, + 113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128, + 129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144, + 145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160, + 161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176, + 177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192, + 193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208, + 209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224, + 225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240, + 241,242,243,244,245,246,247,248,249,250,251,252,253,254,255, 0, 1}) + + // Field Units + + OperationRegion(r001, SystemMemory, 0x100, 0x100) + + Field(r001, ByteAcc, NoLock, Preserve) { + f001, 3, + f002, 8, + f003, 16, + f004, 32, + f005, 33,//33 + f006, 63,//63 + f007, 64,//64 + f008, 65,//65 + f009, 127, + f00a, 257, + // f00b, 201*8, do it also + } + + // Buffer Fields + + Name(bb09, Buffer(200) {}) + + CreateField(bb09, 1, 3, bf01) + CreateField(bb09, 4, 8, bf02) + CreateField(bb09, 12, 16, bf03) + CreateField(bb09, 28, 32, bf04) + CreateField(bb09, 60, 33, bf05) + CreateField(bb09, 93, 63, bf06)//93 + CreateField(bb09, 156, 64, bf07)//156 + CreateField(bb09, 220, 65, bf08)//220 + CreateField(bb09, 285, 127, bf09)//285 + CreateField(bb09, 412, 257, bf0a)//412 + +// CreateField(bb09, xxx, 201*8, bf0b) + + CreateDWordField(bb09, 151, bf0b) + + ///////////////////////////////////////////////////////////////////// + + Store(0xff, fr20) + Store(0xff, f001) + Store(0x8a8b8c8d, f002) + Store(0x8a8b8c8d, f003) + Store(0x8a8b8c8d, f004) + Store(Buffer() {0xff,0xff,0xff,0xff,0xff}, f005) + Store(Buffer() {0x58,0x46,0x37,0x88,0x19,0xfa,0xde,0xdc,0xfa}, f006) + Store(Buffer() {0x58,0x9a,0x37,0x88,0x19,0xfa,0xde,0xdc,0xfa}, f007) + Store(Buffer() {0x58,0xc7,0x37,0x88,0x19,0xfa,0xde,0xdc,0xfa}, f008) + Store(Buffer() {0x82,0x34,0x56,0x78,0x90,0xab,0xcd,0xef,0x55}, f009) + Store(Buffer() {0x93,0xab,0xcd,0xef,0x99,0x12,0xcd,0x52,0x87}, f00a) + + Store(0x918654ab, bfz0) + Store(0xff, bf01) + Store(0x8a8b8c8d, bf02) + Store(0x8a8b8c8d, bf03) + Store(0x8a8b8c8d, bf04) + Store(Buffer() {0xff,0xff,0xff,0xff,0xff}, bf05) + Store(Buffer() {0x58,0x46,0x37,0x88,0x19,0xfa,0xde,0xdc,0xfa}, bf06) + Store(Buffer() {0x58,0x9a,0x37,0x88,0x19,0xfa,0xde,0xdc,0xfa}, bf07) + Store(Buffer() {0x58,0xc7,0x37,0x88,0x19,0xfa,0xde,0xdc,0xfa}, bf08) + Store(Buffer() {0x82,0x34,0x56,0x78,0x90,0xab,0xcd,0xef,0x55}, bf09) + Store(Buffer() {0x93,0xab,0xcd,0xef,0x99,0x12,0xcd,0x52,0x87}, bf0a) + + Store(0xa2b3c4d5, bf0b) + + ///////////////////////////////////////////////////////////////////// + + Name(pp01, Package() {19}) + Device(dv01) {} + Method(m001) { return (0) } + OperationRegion(r002, SystemMemory, 0x100, 0x100) + PowerResource(pwr1, 1, 0) {Method(m000){return (0)}} + Processor(pr01, 0, 0xFFFFFFFF, 0) {} + + Store(0, Local7) + + switch (Arg0) { + + // Uninitialized + + /* + * case (0x000) { + * } + */ + + // Integers + + case (0x100) { + Store(i000, Local7) + } + case (0x101) { + Store(i001, Local7) + } + case (0x102) { + Store(0x12345678, Local7) + } + case (0x103) { + Store(0xabedf18942345678, Local7) + } + case (0x104) { + Store(Zero, Local7) + } + case (0x105) { + Store(One, Local7) + } + case (0x106) { + Store(Ones, Local7) + } + case (0x107) { + Store(Revision, Local7) + } + case (0x108) { + Store(0x123, Local7) + } + case (0x109) { + Store(11, Local7) + } + + // Strings + + case (0x200) { + Store(s000, Local7) + } + case (0x201) { + Store(ss01, Local7) + } + case (0x202) { + Store(ss02, Local7) + } + case (0x203) { + Store(ss03, Local7) + } + case (0x204) { + Store(ss04, Local7) + } + case (0x205) { + Store(ss05, Local7) + } + case (0x206) { + Store(ss06, Local7) + } + case (0x207) { + Store(ss07, Local7) + } + case (0x208) { + Store(ss08, Local7) + } + case (0x209) { + Store(ss09, Local7) + } + case (0x20a) { + Store(ss0a, Local7) + } + case (0x20b) { + Store(ss0b, Local7) + } + case (0x20c) { + Store(ss0c, Local7) + } + case (0x20d) { + Store(ss0d, Local7) + } + case (0x20e) { + Store(ss0e, Local7) + } + case (0x20f) { + Store(ss0f, Local7) + } + case (0x210) { + Store(ss10, Local7) + } + case (0x211) { + Store(ss11, Local7) + } + + // Buffers + + case (0x300) { + Store(b001, Local7) + } + case (0x301) { + Store(bb01, Local7) + } + case (0x302) { + Store(bb02, Local7) + } + case (0x303) { + Store(bb03, Local7) + } + case (0x304) { + Store(bb04, Local7) + } + case (0x305) { + Store(bb05, Local7) + } + case (0x306) { + Store(bb06, Local7) + } + case (0x307) { + Store(bb07, Local7) + } + case (0x308) { + Store(bb08, Local7) + } + + // Packages + + case (0x400) { + Store(p08b, Local7) + } + case (0x401) { + Store(pp01, Local7) + } + + // Field Units + + case (0x500) { + Store(fr20, Local7) + } + case (0x501) { + Store(f001, Local7) + } + case (0x502) { + Store(f002, Local7) + } + case (0x503) { + Store(f003, Local7) + } + case (0x504) { + Store(f004, Local7) + } + case (0x505) { + Store(f005, Local7) + } + case (0x506) { + Store(f006, Local7) + } + case (0x507) { + Store(f007, Local7) + } + case (0x508) { + Store(f008, Local7) + } + case (0x509) { + Store(f009, Local7) + } + case (0x50a) { + Store(f00a, Local7) + } + + // Devices + + case (0x600) { + Store(dv00, Local7) + } + case (0x601) { + Store(dv01, Local7) + } + + // Events + + case (0x700) { + Store(e000, Local7) + } + case (0x701) { + Store(e001, Local7) + } + + // Methods + + case (0x800) { + Store(m4a3, Local7) + } + case (0x801) { + Store(m001, Local7) + } + + // Mutexes + + case (0x900) { + Store(mx00, Local7) + } + case (0x901) { + Store(mx01, Local7) + } + + // Operation Regions + + case (0xa00) { + Store(rg00, Local7) + } + case (0xa01) { + Store(r001, Local7) + } + case (0xa02) { + Store(r002, Local7) + } + + // Power Resources + + case (0xb00) { + Store(pwr0, Local7) + } + case (0xb01) { + Store(pwr1, Local7) + } + + // Processor + + case (0xc00) { + Store(prc0, Local7) + } + case (0xc01) { + Store(pr01, Local7) + } + + // Thermal Zones + + /* + * case (0xd00) { + * Store(Debug, Local7) + * } + */ + + // Buffer Field + + case (0xe00) { + Store(bfz0, Local7) + } + case (0xe01) { + Store(bf01, Local7) + } + case (0xe02) { + Store(bf02, Local7) + } + case (0xe03) { + Store(bf03, Local7) + } + case (0xe04) { + Store(bf04, Local7) + } + case (0xe05) { + Store(bf05, Local7) + } + case (0xe06) { + Store(bf06, Local7) + } + case (0xe07) { + Store(bf07, Local7) + } + case (0xe08) { + Store(bf08, Local7) + } + case (0xe09) { + Store(bf09, Local7) + } + case (0xe0a) { + Store(bf0a, Local7) + } + case (0xe0b) { + Store(bf0b, Local7) + } + + // DDB Handle + + /* + * case (0xf00) { + * Store(Debug, Local7) + * } + */ + + // Debug Object + + /* + * case (0x1000) { + * Store(Debug, Local7) + * } + */ + + default { + if (LNotEqual(arg0, 0)) { + err("----------- ERROR, m484: incorrect Arg0:", z064, 0, 0, 0, 0, 0) + Store(arg0, Debug) + } + } + } + + return (Local7) +} + +// arg0 - opcode of operation +// arg1 - type of 0-th argument +// arg2 - type of 1-th argument +// arg3 - type of 2-th argument +// arg4 - type of 3-th argument +// arg5 - type of 4-th argument +// arg6 - {Ones - flag of exception, otherwise - index of result pair} +Method(m485, 7) +{ + if (0) { + Store("##################################################################", Debug) + Store(arg6, Debug) + } + + Name(ts, "m485") + Name(ex00, 0) + Name(tmp0, 0) + + if (LEqual(arg6, FLG0)) { + Store(1, ex00) + } else { + Store(m48c(PKG1, arg6), Local5) + Store(ObjectType(Local5), Local7) + if (LEqual(Local7, 2)) { + if (LEqual(Local5, "Exc")) { + Store(1, ex00) + } + } + } + + Store(0, Local7) + + // m482: + // + // arg0-arg4 - parameters of operators + // arg5 - miscellaneous + // arg6 - opcode of operation + + +/* + * //// ????????????????????????? + * Uninitialized data should be passed to the operators immediately + * in the m480 but not here to these Store opreations!!!!!!!!!!!!!! + * But this will a few complicate m480 !!!!!!!!!!!!!!!!!!!!!!!!!!!! + * //// ????????????????????????? + */ + + // Parameters (if not to save them Uninitialized) + if (LNotEqual(arg1, 0xfff)) { + Store(m484(arg1), Local0) + } + if (LNotEqual(arg2, 0xfff)) { + Store(m484(arg2), Local1) + } + if (LNotEqual(arg3, 0xfff)) { + Store(m484(arg3), Local2) + } + if (LNotEqual(arg4, 0xfff)) { + Store(m484(arg4), Local3) + } + if (LNotEqual(arg5, 0xfff)) { + Store(m484(arg5), Local4) + } + + if (ex00) { + Store(FLG2, tmp0) + CH03(ts, z064, 0, 0, 0) + } + + Store(m482(Local0, Local1, Local2, Local3, Local4, tmp0, arg0), Local7) + + if (ex00) { + CH04(ts, 0, 0xff, z064, 1, 0, 0) + } elseif (FLG1) { + // Verify the first result + m489(ts, Local7, Local5) + } + + if (com2) { + + // The same operation but the first two arguments interchange + + if (LNotEqual(arg6, FLG0)) { + if (LEqual(com2, 2)) { + Store(0, ex00) + Store(m48c(PKG2, arg6), Local5) + Store(ObjectType(Local5), Local7) + if (LEqual(Local7, 2)) { + if (LEqual(Local5, "Exc")) { + Store(1, ex00) + } + } + } + } + + if (ex00) { + CH03(ts, z064, 2, 0, 0) + } + + Store(m482(Local1, Local0, Local2, Local3, Local4, tmp0, arg0), Local7) + + if (ex00) { + CH04(ts, 0, 0xff, z064, 3, 0, 0) + } elseif (FLG1) { + // Verify the second result + m489(ts, Local7, Local5) + } + } + + return (Local7) +} + +// Init all parameters as non-usable +Method(m486) +{ + Store(0, df00) + Store(0, df01) + Store(0, df02) + Store(0, df03) + Store(0, df04) +} + +// Return the object of required type. +// Allowed types are {1-12,14}, == 0x5fff. +// Returned 0xfff is flag of "Uninitialized". +// +// These have to be implemented: +// +// Method, Thermal Zone, DDB Handle +// +Method(m487, 1) +{ + switch (Arg0) { + + case (0) { + // Uninitialized + Store(0xfff, Local7) + } + case (1) { + // Integers + Store(0x100, Local7) + } + case (2) { + // Strings + Store(0x204, Local7) + } + case (3) { + // Buffers + Store(0x300, Local7) + } + case (4) { + // Packages + Store(0x400, Local7) + } + case (5) { + // Field Units + Store(0x500, Local7) + } + case (6) { + // Devices + Store(0x600, Local7) + } + case (7) { + // Events + Store(0x700, Local7) + } + case (8) { + // Methods + Store(0x800, Local7) + } + case (9) { + // Mutexes + Store(0x900, Local7) + } + case (10) { + // Operation Regions + Store(0xa00, Local7) + } + case (11) { + // Power Resources + Store(0xb00, Local7) + } + case (12) { + // Processor + Store(0xc00, Local7) + } + /* + * case (0xd00) { + * // Thermal Zones + * Store(Debug, Local7) + * } + */ + case (14) { + // Buffer Field + Store(0xe00, Local7) + } + /* + * case (0xf00) { + * // DDB Handle + * Store(Debug, Local7) + * } + * + * + * case (0x1000) { + * // Debug Object + * Store(Debug, Local7) + * } + */ + + default { + if (LNotEqual(arg0, 0)) { + err("----------- ERROR, m487: incorrect Arg0:", z064, 1, 0, 0, 0, 0) + Store(arg0, Debug) + Store(0, Local7) + } + } + } + + return (Local7) +} + +// Initiate exception by inappropreate operand +Method(m488, 6) +{ + Store(0, Local7) + + Name(lpN0, 0) + Name(lpC0, 0) + + if (And(arg1, 0x5fff)) { + Store(16, lpN0) + Store(0, lpC0) + While (lpN0) { + ShiftLeft(1, lpC0, Local6) + if (And(arg1, Local6)) { + Store(m487(lpC0), Local5) + Store(m485(arg0, Local5, df01, df02, df03, df04, FLG0), Local7) + } + Decrement(lpN0) + Increment(lpC0) + } + } + + if (And(arg2, 0x5fff)) { + Store(16, lpN0) + Store(0, lpC0) + While (lpN0) { + ShiftLeft(1, lpC0, Local6) + if (And(arg2, Local6)) { + Store(m487(lpC0), Local5) + Store(m485(arg0, df00, Local5, df02, df03, df04, FLG0), Local7) + } + Decrement(lpN0) + Increment(lpC0) + } + } + + if (And(arg3, 0x5fff)) { + Store(16, lpN0) + Store(0, lpC0) + While (lpN0) { + ShiftLeft(1, lpC0, Local6) + if (And(arg3, Local6)) { + Store(m487(lpC0), Local5) + Store(m485(arg0, df00, df01, Local5, df03, df04, FLG0), Local7) + } + Decrement(lpN0) + Increment(lpC0) + } + } + + if (And(arg4, 0x5fff)) { + Store(16, lpN0) + Store(0, lpC0) + While (lpN0) { + ShiftLeft(1, lpC0, Local6) + if (And(arg4, Local6)) { + Store(m487(lpC0), Local5) + Store(m485(arg0, df00, df01, df02, Local5, df04, FLG0), Local7) + } + Decrement(lpN0) + Increment(lpC0) + } + } + + if (And(arg5, 0x5fff)) { + Store(16, lpN0) + Store(0, lpC0) + While (lpN0) { + ShiftLeft(1, lpC0, Local6) + if (And(arg5, Local6)) { + Store(m487(lpC0), Local5) + Store(m485(arg0, df00, df01, df02, df03, Local5, FLG0), Local7) + } + Decrement(lpN0) + Increment(lpC0) + } + } + + return (Local7) +} + +Method(m489, 3) +{ + Store(ObjectType(arg1), Local0) + Store(ObjectType(arg2), Local1) + + if (LNotEqual(Local0, Local1)) { + err(arg0, z064, 2, 0, 0, Local0, Local1) + } elseif (LNotEqual(arg1, arg2)) { + err(arg0, z064, 3, 0, 0, arg1, arg2) + } +} + +// Verify result +// <name>,<results>,<result>,<index of result pair> +Method(m48a, 4) +{ + Multiply(arg3, 2, Local0) + Store(DeRefOf(Index(arg1, Local0)), Local7) + Increment(Local0) + Store(DeRefOf(Index(arg1, Local0)), Local6) + + if (F64) { + if (LNotEqual(arg2, Local7)) { + err(arg0, z064, 4, 0, 0, arg2, Local7) + } + } else { + if (LNotEqual(arg2, Local6)) { + err(arg0, z064, 5, 0, 0, arg2, Local6) + } + } +} + +// Integer two operands operation +// <operation>,<type of first operand> +// +// NOTE: now it work only by particular parts, +// all together produce crashes. Uncomment +// in future. +Method(m48b, 2) +{ + // X - Integer + + Store(m485(arg0, arg1, 0x100, 0, 0, 0, 0), Local7) + + // X - String + + Store(m485(arg0, arg1, 0x200, 0, 0, 0, 1), Local7) + Store(m485(arg0, arg1, 0x201, 0, 0, 0, 2), Local7) + Store(m485(arg0, arg1, 0x202, 0, 0, 0, 3), Local7) + Store(m485(arg0, arg1, 0x203, 0, 0, 0, 4), Local7) + Store(m485(arg0, arg1, 0x204, 0, 0, 0, 5), Local7) + Store(m485(arg0, arg1, 0x205, 0, 0, 0, 6), Local7) + Store(m485(arg0, arg1, 0x206, 0, 0, 0, 7), Local7) + Store(m485(arg0, arg1, 0x207, 0, 0, 0, 8), Local7) + Store(m485(arg0, arg1, 0x208, 0, 0, 0, 9), Local7) + Store(m485(arg0, arg1, 0x209, 0, 0, 0, 10), Local7) + Store(m485(arg0, arg1, 0x20a, 0, 0, 0, 11), Local7) + Store(m485(arg0, arg1, 0x20b, 0, 0, 0, 12), Local7) + Store(m485(arg0, arg1, 0x20c, 0, 0, 0, 13), Local7) + Store(m485(arg0, arg1, 0x20d, 0, 0, 0, 14), Local7) + Store(m485(arg0, arg1, 0x20e, 0, 0, 0, 15), Local7) + Store(m485(arg0, arg1, 0x20f, 0, 0, 0, 16), Local7) + Store(m485(arg0, arg1, 0x210, 0, 0, 0, 17), Local7) + + // X - Buffer + + Store(m485(arg0, arg1, 0x300, 0, 0, 0, 18), Local7) + Store(m485(arg0, arg1, 0x301, 0, 0, 0, 19), Local7) + Store(m485(arg0, arg1, 0x302, 0, 0, 0, 20), Local7) + Store(m485(arg0, arg1, 0x303, 0, 0, 0, 21), Local7) + Store(m485(arg0, arg1, 0x304, 0, 0, 0, 22), Local7) + Store(m485(arg0, arg1, 0x305, 0, 0, 0, 23), Local7) + Store(m485(arg0, arg1, 0x306, 0, 0, 0, 24), Local7) + Store(m485(arg0, arg1, 0x307, 0, 0, 0, 25), Local7) + Store(m485(arg0, arg1, 0x308, 0, 0, 0, 26), Local7) + + // X - Field Unit + + Store(m485(arg0, arg1, 0x500, 0, 0, 0, 27), Local7) + Store(m485(arg0, arg1, 0x501, 0, 0, 0, 28), Local7) + Store(m485(arg0, arg1, 0x502, 0, 0, 0, 29), Local7) + Store(m485(arg0, arg1, 0x503, 0, 0, 0, 30), Local7) + Store(m485(arg0, arg1, 0x504, 0, 0, 0, 31), Local7) + Store(m485(arg0, arg1, 0x505, 0, 0, 0, 32), Local7) + Store(m485(arg0, arg1, 0x506, 0, 0, 0, 33), Local7) + Store(m485(arg0, arg1, 0x507, 0, 0, 0, 34), Local7) + Store(m485(arg0, arg1, 0x508, 0, 0, 0, 35), Local7) + Store(m485(arg0, arg1, 0x509, 0, 0, 0, 36), Local7) + Store(m485(arg0, arg1, 0x50a, 0, 0, 0, 37), Local7) + + // X - Buffer Field + + Store(m485(arg0, arg1, 0xe00, 0, 0, 0, 38), Local7) + Store(m485(arg0, arg1, 0xe01, 0, 0, 0, 39), Local7) + Store(m485(arg0, arg1, 0xe02, 0, 0, 0, 40), Local7) + Store(m485(arg0, arg1, 0xe03, 0, 0, 0, 41), Local7) + Store(m485(arg0, arg1, 0xe04, 0, 0, 0, 42), Local7) + Store(m485(arg0, arg1, 0xe05, 0, 0, 0, 43), Local7) + Store(m485(arg0, arg1, 0xe06, 0, 0, 0, 44), Local7) + Store(m485(arg0, arg1, 0xe07, 0, 0, 0, 45), Local7) + Store(m485(arg0, arg1, 0xe08, 0, 0, 0, 46), Local7) + Store(m485(arg0, arg1, 0xe09, 0, 0, 0, 47), Local7) + Store(m485(arg0, arg1, 0xe0a, 0, 0, 0, 48), Local7) +} + +// Return element of Package +// <Package>,<index of elements-pair> +// pair: {F64-element, F32-element} +Method(m48c, 2) +{ + Multiply(arg1, 2, Local0) + + if (F64) { + Store(DeRefOf(Index(arg0, Local0)), Local7) + } else { + Increment(Local0) + Store(DeRefOf(Index(arg0, Local0)), Local7) + } + return (Local7) +} + +// arg0 - opcode of operation +// +// arg1 - type of 0-th argument +// arg2 - type of 1-th argument +// arg3 - type of 2-th argument +// arg4 - type of 3-th argument +// +// arg5 - expected 64-bit result +// arg6 - expected 32-bit result +Method(m48d, 7) +{ + Name(ts, "m48d") + Name(tmp0, 0) + + if (0) { + Store("##################################################################", Debug) + Store(arg6, Debug) + } + + Name(ex00, 0) + + if (F64) { + Store(ObjectType(arg5), Local0) + if (LEqual(Local0, 2)) { + if (LEqual(arg5, "Exc")) { + Store(1, ex00) + } + } + } else { + Store(ObjectType(arg6), Local0) + if (LEqual(Local0, 2)) { + if (LEqual(arg6, "Exc")) { + Store(1, ex00) + } + } + } + + Store(0, Local7) + + // m482: + // + // arg0-arg4 - parameters of operators + // arg5 - miscellaneous + // arg6 - opcode of operation + + Store(m484(arg1), Local0) + Store(m484(arg2), Local1) + Store(m484(arg3), Local2) + Store(m484(arg4), Local3) + + if (ex00) { + Store(FLG2, tmp0) + CH03(ts, z064, 4, 0, 0) + } + + Store(m482(Local0, Local1, Local2, Local3, 0, tmp0, arg0), Local7) + + if (ex00) { + CH04(ts, 0, 0xff, z064, 5, 0, 0) + } else { + + // Verify the result + + if (F64) { + m489(ts, Local7, arg5) + } else { + m489(ts, Local7, arg6) + } + } + + return (Local7) +} diff --git a/tests/aslts/src/runtime/common/conversion/otest.asl b/tests/aslts/src/runtime/common/conversion/otest.asl new file mode 100644 index 000000000..67b4f0dc5 --- /dev/null +++ b/tests/aslts/src/runtime/common/conversion/otest.asl @@ -0,0 +1,4451 @@ +/* + * Copyright (c) 2006, Intel Corp. + * Copyright (C) 2006, Valery Podrezov <valery.a.podrezov@intel.com> + * Copyright (C) 2006, Fiodor Suietov <fiodor.f.suietov@intel.com> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +/* + + ============================ + !!!!!!!!!!!!!!!!!!!!!!!!!!!! + IT IS IN PROGRESS !!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!! + ============================ + +SEE: LEqual (and LGreater ?) tests were mostly checked for 64-bit mode only. + Do that after ACPICA bugs are fixed. +SEE: what can be removed from m48b +*/ + +// +// Implicit Source Operand Conversion, complex test +// + +Name(z065, 65) + +// Acquire (mux, wrd) => Boolean +// +// Total scale of unacceptable types: +// SyncObject: 0x5cff +// Total scale of acceptable types: +// SyncObject: 0x0200 +Method(m400, 1) +{ + Name(op, 0) + + Name(ts, "m400") + + ts00(ts) + + if (arg0) { + m486() + Store(0x900, df00) + Store(m488(op, 0x5cff, 0, 0, 0, 0), Local7) + } else { + + Store(m48d(op, 0x900, 0, 0, 0, Zero, Zero), Local7) + Store(m48d(op, 0x901, 0, 0, 0, Zero, Zero), Local7) + } +} + +// Add, check all unavailable non-hex symbols +Method(m4a2, 1) +{ + Name(ts, "m4a2") + + Name(s000, "`-=qwrtyuiop[]\\sghjkl;'zxvnm,./~!@#$%^&*()_+QWRTYUIOP{}|SGHJKL:\"ZXVNM<>? ") + + Name(lpN0, 73) + Name(lpC0, 0) + + While (lpN0) { + + Store(m4a1(s000, lpC0), Local0) + + Store(ObjectType(Local0), Local1) + if (LNotEqual(Local1, 2)) { + err(arg0, z065, 0, 0, 0, Local1, 2) + } else { + Store(SizeOf(Local0), Local1) + if (LNotEqual(Local1, 1)) { + err(arg0, z065, 1, 0, 0, Local1, 1) + } else { + CH03(ts, z065, 0, 0, 0) + Add(Local0, 0, Local7) + CH04(arg0, 0, 34, z065, 1, 0, 0) // AE_BAD_HEX_CONSTANT + + CH03(ts, z065, 2, 0, 0) + Add(0, Local0, Local7) + CH04(arg0, 0, 34, z065, 3, 0, 0) // AE_BAD_HEX_CONSTANT + } + } + + Store(Local0, Debug) + + Decrement(lpN0) + Increment(lpC0) + } +} + +// Add, check all available hex symbols +Method(m4a4, 1) +{ + Name(ts, "m4a4") + + Name(s000, "0123456789abcdefABCDEF") + + Name(lpN0, 22) + Name(lpC0, 0) + + While (lpN0) { + + Store(m4a1(s000, lpC0), Local0) + + Store(ObjectType(Local0), Local1) + if (LNotEqual(Local1, 2)) { + err(arg0, z065, 2, 0, 0, Local1, 2) + } else { + Store(SizeOf(Local0), Local1) + if (LNotEqual(Local1, 1)) { + err(arg0, z065, 3, 0, 0, Local1, 1) + } else { + CH03(ts, z065, 4, 0, 0) + Add(Local0, 0, Local7) + CH03(ts, z065, 5, 0, 0) + + CH03(ts, z065, 6, 0, 0) + Add(0, Local0, Local7) + CH03(ts, z065, 7, 0, 0) + } + } + + Store(Local0, Debug) + + Decrement(lpN0) + Increment(lpC0) + } +} + +// Add, checkings in accordance with the Table 1 +Method(m4a0, 1) +{ + Name(ts, "m4a0") + + ts00(ts) + + if (arg0) { + + CH03(ts, z065, 8, 0, 0) + Add("fedcba98765432101", 0, Local7) + CH04(ts, 0, 34, z065, 9, 0, 0) // AE_BAD_HEX_CONSTANT + + CH03(ts, z065, 10, 0, 0) + Add(0, "fedcba98765432101", Local7) + CH04(ts, 0, 34, z065, 11, 0, 0) // AE_BAD_HEX_CONSTANT + + CH03(ts, z065, 12, 0, 0) + Add("1234q", 0, Local7) + CH04(ts, 0, 34, z065, 13, 0, 0) // AE_BAD_HEX_CONSTANT + + CH03(ts, z065, 14, 0, 0) + Add(0, "1234q", Local7) + CH04(ts, 0, 34, z065, 15, 0, 0) // AE_BAD_HEX_CONSTANT + + +if (0) { + + CH03(ts, z065, 16, 0, 0) + Add("0xfedcba98765432", 0, Local7) + CH04(ts, 0, 34, z065, 17, 0, 0) // AE_BAD_HEX_CONSTANT + + CH03(ts, z065, 18, 0, 0) + Add(0, "0xfedcba98765432", Local7) + CH04(ts, 0, 34, z065, 19, 0, 0) // AE_BAD_HEX_CONSTANT + + CH03(ts, z065, 20, 0, 0) + Add("", 0, Local7) + CH04(ts, 0, 34, z065, 21, 0, 0) // AE_BAD_HEX_CONSTANT + + CH03(ts, z065, 22, 0, 0) + Add(0, "", Local7) + CH04(ts, 0, 34, z065, 23, 0, 0) // AE_BAD_HEX_CONSTANT + + CH03(ts, z065, 24, 0, 0) + Add(" ", 0, Local7) + CH04(ts, 0, 34, z065, 25, 0, 0) // AE_BAD_HEX_CONSTANT + + CH03(ts, z065, 26, 0, 0) + Add(0, " ", Local7) + CH04(ts, 0, 34, z065, 27, 0, 0) // AE_BAD_HEX_CONSTANT +} + + m4a2(ts) + + } else { + + // Integers, directly + + Add(0321, 0, Local7) + m4c0(ts, Local7, 0xd1, 0xd1) + + Add(9876543210, 0, Local7) + m4c0(ts, Local7, 0x000000024CB016EA, 0x4CB016EA) + + Add(0xfedcba9876543210, 0, Local7) + m4c0(ts, Local7, 0xFEDCBA9876543210, 0x76543210) + + Add(0, 0, Local7) + m4c0(ts, Local7, 0, 0) + + Add(0xffffffffffffffff, 0, Local7) + m4c0(ts, Local7, 0xffffffffffffffff, 0xffffffff) + + Add(0, 0321, Local7) + m4c0(ts, Local7, 0xd1, 0xd1) + + Add(0, 9876543210, Local7) + m4c0(ts, Local7, 0x000000024CB016EA, 0x4CB016EA) + + Add(0, 0xfedcba9876543210, Local7) + m4c0(ts, Local7, 0xFEDCBA9876543210, 0x76543210) + + Add(0, 0xffffffffffffffff, Local7) + m4c0(ts, Local7, 0xffffffffffffffff, 0xffffffff) + + + // Strings, directly + + Add("0321", 0, Local7) + m4c0(ts, Local7, 0x321, 0x321) + + Add("9876543210", 0, Local7) + m4c0(ts, Local7, 0x9876543210, 0x76543210) + + Add("321", 0, Local7) + m4c0(ts, Local7, 0x321, 0x321) + + Add("fedcba9876543210", 0, Local7) + m4c0(ts, Local7, 0xfedcba9876543210, 0x76543210) + + m4a4(ts) + + // Buffers + // Buffer Units + + } + +/* + Add(xxxxxx, 0, Local7) + m4c0(ts, Local7, 0, 0) + + Add("xxxxxx", 0, Local7) + m4c0(ts, Local7, 0, 0) +*/ + +if (0) { + Store(9876543210, Debug) +} +} + +// Add (int, int, Result) => Integer +// +// Total scale of unacceptable types: +// Addend1: 0x1ed1 +// Addend2: 0x1ed1 +// Total scale of acceptable types: +// Addend1: 0x402e +// Addend1: 0x402e +Method(m401, 1) +{ + Name(op, 1) + + ts00("m401") + + // Expected results: 64-bit, 32-bit + Name(p000, Package() { + + // X - Integer + + 0x58765432, 0x58765432, + + // X - String + + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + + 0x9876, 0x9876, + 0xabcd, 0xabcd, + 0x1234567890987654, 0x90987654, + 0xdafecbaabbddffee, 0xbbddffee, + 0x1234567890abcdef, 0x90abcdef, + 0xfdeacb0132547698, 0x32547698, + + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + + // X - Buffer + + 0x832291, 0x832291, + 0x80, 0x80, + 0x8281, 0x8281, + 0x86858483, 0x86858483, + 0x9b9A999887, 0x9A999887, + 0xa3a2a1a09F9E9D9C, 0x9F9E9D9C, + 0xbbbab9b8A7A6A5A4, 0xA7A6A5A4, + 0x6261605F94939291, 0x94939291, + 0x0807060504030201, 0x04030201, + + // X - Field Unit + + 0x7f, 0x7f, + 0x07, 0x07, + 0x8d, 0x8d, + 0x8c8d, 0x8c8d, + 0x8a8b8c8d, 0x8a8b8c8d, + 0x1ffffffff, 0xffffffff, + 0x5cdefa1988374658, 0x88374658, + 0xdcdefa1988379a58, 0x88379a58, + 0xdcdefa198837c758, 0x8837c758, + 0xEFCDAB9078563482, 0x78563482, + 0x52CD1299EFCDAB93, 0xEFCDAB93, + + // X - Buffer Field + + 0x918654ab, 0x918654ab, + 0x07, 0x07, + 0x8d, 0x8d, + 0x8c8d, 0x8c8d, + 0x8a8b8c8d, 0x8a8b8c8d, + 0x1ffffffff, 0xffffffff, + 0x5cdefa1988374658, 0x88374658, + 0xdcdefa1988379a58, 0x88379a58, + 0xdcdefa198837c758, 0x8837c758, + 0xEFCDAB9078563482, 0x78563482, + 0x52CD1299EFCDAB93, 0xEFCDAB93, + }) + + if (arg0) { + + if (0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } + m4a0(1) + } elseif (0) { + Store(1, FLG1) + Store(1, com2) + Store(p000, PKG1) + Store(PKG0, PKG2) + m48b(op, 0x104) + Store(PKG0, PKG1) + Store(PKG0, PKG2) + Store(0, com2) + Store(0, FLG1) + } else { + m4a0(0) + } +} + +// And (int, int, Result) => Integer +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m402, 1) +{ + Name(op, 2) + + ts00("m402") + + // Expected results: 64-bit, 32-bit + Name(p000, Package() { + + // X - Integer + + 0x58765432, 0x58765432, + + // X - String + + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + + 0x9876, 0x9876, + 0xabcd, 0xabcd, + 0x1234567890987654, 0x90987654, + 0xdafecbaabbddffee, 0xbbddffee, + 0x1234567890abcdef, 0x90abcdef, + 0xfdeacb0132547698, 0x32547698, + + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + + // X - Buffer + + 0x832291, 0x832291, + 0x80, 0x80, + 0x8281, 0x8281, + 0x86858483, 0x86858483, + 0x9b9A999887, 0x9A999887, + 0xa3a2a1a09F9E9D9C, 0x9F9E9D9C, + 0xbbbab9b8A7A6A5A4, 0xA7A6A5A4, + 0x6261605F94939291, 0x94939291, + 0x0807060504030201, 0x04030201, + + // X - Field Unit + + 0x7f, 0x7f, + 0x07, 0x07, + 0x8d, 0x8d, + 0x8c8d, 0x8c8d, + 0x8a8b8c8d, 0x8a8b8c8d, + 0x1ffffffff, 0xffffffff, + 0x5cdefa1988374658, 0x88374658, + 0xdcdefa1988379a58, 0x88379a58, + 0xdcdefa198837c758, 0x8837c758, + 0xEFCDAB9078563482, 0x78563482, + 0x52CD1299EFCDAB93, 0xEFCDAB93, + + // X - Buffer Field + + 0x918654ab, 0x918654ab, + 0x07, 0x07, + 0x8d, 0x8d, + 0x8c8d, 0x8c8d, + 0x8a8b8c8d, 0x8a8b8c8d, + 0x1ffffffff, 0xffffffff, + 0x5cdefa1988374658, 0x88374658, + 0xdcdefa1988379a58, 0x88379a58, + 0xdcdefa198837c758, 0x8837c758, + 0xEFCDAB9078563482, 0x78563482, + 0x52CD1299EFCDAB93, 0xEFCDAB93, + }) + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + Store(1, FLG1) + Store(1, com2) + Store(p000, PKG1) + Store(PKG0, PKG2) + m48b(op, 0x106) + Store(PKG0, PKG1) + Store(PKG0, PKG2) + Store(0, com2) + Store(0, FLG1) + } +} + +// Concatenate({int|str|buf}, {int|str|buf}, Result) => ComputationalData +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m403, 1) +{ + Name(op, 3) + + ts00("m403") + + // Expected results: 64-bit, 32-bit + Name(p000, Package() { + + // X - Integer + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB,0x32,0x54,0x76,0x58,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x32,0x54,0x76,0x58}, + + // X - String + + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x76,0x98,0,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0xcd,0xab,0,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0xcd,0xab,0,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x54,0x76,0x98,0x90,0x78,0x56,0x34,0x12}, + Buffer() {0x78,0x56,0x34,0x42,0x54,0x76,0x98,0x90}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0xEE,0xFF,0xDD,0xBB,0xAA,0xCB,0xFE,0xDA}, + Buffer() {0x78,0x56,0x34,0x42,0xEE,0xFF,0xDD,0xBB}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0xEF,0xCD,0xAB,0x90,0x78,0x56,0x34,0x12}, + Buffer() {0x78,0x56,0x34,0x42,0xEF,0xCD,0xAB,0x90}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x98,0x76,0x54,0x32,0x01,0xCB,0xEA,0xFD}, + Buffer() {0x78,0x56,0x34,0x42,0x98,0x76,0x54,0x32}, + + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + "Exc", "Exc", + + // X - Buffer + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x91,0x22,0x83,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x91,0x22,0x83,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x80,0,0,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x80,0,0,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x81,0x82,0,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x83,0x84,0x85,0x86,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x83,0x84,0x85,0x86}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x87,0x98,0x99,0x9A,0x9B,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x87,0x98,0x99,0x9A}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3}, + Buffer() {0x78,0x56,0x34,0x42,0x9C,0x9D,0x9E,0x9F}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0xA4,0xA5,0xA6,0xA7,0xB8,0xB9,0xBA,0xBB}, + Buffer() {0x78,0x56,0x34,0x42,0xA4,0xA5,0xA6,0xA7}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x91,0x92,0x93,0x94,0x5F,0x60,0x61,0x62}, + Buffer() {0x78,0x56,0x34,0x42,0x91,0x92,0x93,0x94}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 1,2,3,4,5,6,7,8}, + Buffer() {0x78,0x56,0x34,0x42,1,2,3,4}, + + // X - Field Unit + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x7f,0,0,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x7f,0,0,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x07,0,0,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x07,0,0,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x8d,0,0,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x8d,0,0,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x8d,0x8c,0,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x8d,0x8c,0,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x8D,0x8C,0x8B,0x8A,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x8D,0x8C,0x8B,0x8A}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0xFF,0xFF,0xFF,0xFF,0x01,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0xFF,0xFF,0xFF,0xFF}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C}, + Buffer() {0x78,0x56,0x34,0x42,0x58,0x46,0x37,0x88}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x58,0x9a,0x37,0x88,0x19,0xFA,0xDE,0xDC}, + Buffer() {0x78,0x56,0x34,0x42,0x58,0x9a,0x37,0x88}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x58,0xc7,0x37,0x88,0x19,0xFA,0xDE,0xDC}, + Buffer() {0x78,0x56,0x34,0x42,0x58,0xc7,0x37,0x88}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF}, + Buffer() {0x78,0x56,0x34,0x42,0x82,0x34,0x56,0x78}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52}, + Buffer() {0x78,0x56,0x34,0x42,0x93,0xAB,0xCD,0xEF}, + + // X - Buffer Field + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0xAB,0x54,0x86,0x91,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0xAB,0x54,0x86,0x91}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x07,0,0,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x07,0,0,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x8d,0,0,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x8d,0,0,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x8d,0x8c,0,0,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x8d,0x8c,0,0}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x8D,0x8C,0x8B,0x8A,0,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0x8D,0x8C,0x8B,0x8A}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0xFF,0xFF,0xFF,0xFF,0x01,0,0,0}, + Buffer() {0x78,0x56,0x34,0x42,0xFF,0xFF,0xFF,0xFF}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C}, + Buffer() {0x78,0x56,0x34,0x42,0x58,0x46,0x37,0x88}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x58,0x9a,0x37,0x88,0x19,0xFA,0xDE,0xDC}, + Buffer() {0x78,0x56,0x34,0x42,0x58,0x9a,0x37,0x88}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x58,0xc7,0x37,0x88,0x19,0xFA,0xDE,0xDC}, + Buffer() {0x78,0x56,0x34,0x42,0x58,0xc7,0x37,0x88}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF}, + Buffer() {0x78,0x56,0x34,0x42,0x82,0x34,0x56,0x78}, + + Buffer() {0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB, + 0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52}, + Buffer() {0x78,0x56,0x34,0x42,0x93,0xAB,0xCD,0xEF}, + }) + + // Expected results: 64-bit, 32-bit + Name(p001, Package() { + + // X - Integer + + Buffer() {0x32,0x54,0x76,0x58,0x00,0x00,0x00,0x00,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x32,0x54,0x76,0x58,0x78,0x56,0x34,0x42}, + + // X - String + + "qwrtABEDF18942345678", + "qwrt42345678", + + "svnmjklABEDF18942345678", + "svnmjkl42345678", + + "1234zyqABEDF18942345678", + "1234zyq42345678", + + "abcdefzyqABEDF18942345678", + "abcdefzyq42345678", + + "9876ABEDF18942345678", + "987642345678", + + "aBcDABEDF18942345678", + "aBcD42345678", + + "1234567890987654ABEDF18942345678", + "123456789098765442345678", + + "daFeCBaabbddffeeABEDF18942345678", + "daFeCBaabbddffee42345678", + + "1234567890abCdeFABEDF18942345678", + "1234567890abCdeF42345678", + + "FdeAcb0132547698ABEDF18942345678", + "FdeAcb013254769842345678", + + "12345678909876540ABEDF18942345678", + "1234567890987654042345678", + + "fdeacb01325476980ABEDF18942345678", + "fdeacb0132547698042345678", + + "123456789011223344556677889998765432199983337744ABEDF18942345678", + "12345678901122334455667788999876543219998333774442345678", + + "abcdefaAbbccddeeffffeeddccaabbddeeffaaaabbbbeeefffddABEDF18942345678", + "abcdefaAbbccddeeffffeeddccaabbddeeffaaaabbbbeeefffdd42345678", + + "1234567890abcdef9876543210fedbca1122334455667788fdeacbABEDF18942345678", + "1234567890abcdef9876543210fedbca1122334455667788fdeacb42345678", + + "defa1234567890abcdef9876543210fedbca1122334455667788fdeacbABEDF18942345678", + "defa1234567890abcdef9876543210fedbca1122334455667788fdeacb42345678", + + "123456789011223344556677889998765432199983337744zABEDF18942345678", + "123456789011223344556677889998765432199983337744z42345678", + + // X - Buffer + + Buffer() {0x91,0x22,0x83,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x91,0x22,0x83,0x78,0x56,0x34,0x42}, + + Buffer() {0x80,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x80,0x78,0x56,0x34,0x42}, + + Buffer() {0x81,0x82,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x81,0x82,0x78,0x56,0x34,0x42}, + + Buffer() {0x83,0x84,0x85,0x86,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x83,0x84,0x85,0x86,0x78,0x56,0x34,0x42}, + + Buffer() {0x87,0x98,0x99,0x9A,0x9B,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x87,0x98,0x99,0x9A,0x9B,0x78,0x56,0x34,0x42}, + + Buffer() {0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0x78,0x56,0x34,0x42}, + + Buffer() {0xA4,0xA5,0xA6,0xA7,0xB8,0xB9,0xBA,0xBB,0xBC,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0xA4,0xA5,0xA6,0xA7,0xB8,0xB9,0xBA,0xBB,0xBC,0x78,0x56,0x34,0x42}, + + Buffer() { + 0x91, 0x92, 0x93, 0x94, 95, 96, 97, 98, 99, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112, + 113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128, + 129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144, + 145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160, + 161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176, + 177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192, + 193,194,195,196,197,198,199,200, + 0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() { + 0x91, 0x92, 0x93, 0x94, 95, 96, 97, 98, 99, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112, + 113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128, + 129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144, + 145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160, + 161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176, + 177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192, + 193,194,195,196,197,198,199,200, + 0x78,0x56,0x34,0x42}, + + Buffer() { + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112, + 113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128, + 129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144, + 145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160, + 161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176, + 177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192, + 193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208, + 209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224, + 225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240, + 241,242,243,244,245,246,247,248,249,250,251,252,253,254,255, 0, 1, + 0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() { + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112, + 113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128, + 129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144, + 145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160, + 161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176, + 177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192, + 193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208, + 209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224, + 225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240, + 241,242,243,244,245,246,247,248,249,250,251,252,253,254,255, 0, 1, + 0x78,0x56,0x34,0x42}, + + // X - Field Unit + + Buffer() {0x7F,0,0,0,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x7F,0,0,0,0x78,0x56,0x34,0x42}, + + Buffer() {0x07,0,0,0,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x07,0,0,0,0x78,0x56,0x34,0x42}, + + Buffer() {0x8d,0,0,0,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x8d,0,0,0,0x78,0x56,0x34,0x42}, + + Buffer() {0x8d,0x8c,0,0,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x8d,0x8c,0,0,0x78,0x56,0x34,0x42}, + + Buffer() {0x8d,0x8c,0x8b,0x8a,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x8d,0x8c,0x8b,0x8a,0x78,0x56,0x34,0x42}, + + Buffer() {0xFF,0xFF,0xFF,0xFF,0x01,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0xFF,0xFF,0xFF,0xFF,0x01,0x78,0x56,0x34,0x42}, + + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x78,0x56,0x34,0x42}, + + + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x78,0x56,0x34,0x42}, + + Buffer() {0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x00,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x00,0x78,0x56,0x34,0x42}, + + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55, + 0,0,0,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55, + 0,0,0,0,0,0,0,0x78,0x56,0x34,0x42}, + + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0x78,0x56,0x34,0x42}, + + // X - Buffer Field + + Buffer() {0xAB,0x54,0x86,0x91,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0xAB,0x54,0x86,0x91,0x78,0x56,0x34,0x42}, + + Buffer() {0x07,0,0,0,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x07,0,0,0,0x78,0x56,0x34,0x42}, + + Buffer() {0x8D,0,0,0,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x8D,0,0,0,0x78,0x56,0x34,0x42}, + + Buffer() {0x8D,0x8c,0,0,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x8D,0x8c,0,0,0x78,0x56,0x34,0x42}, + + Buffer() {0x8D,0x8c,0x8b,0x8a,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x8D,0x8c,0x8b,0x8a,0x78,0x56,0x34,0x42}, + + Buffer() {0xff,0xff,0xff,0xff,0x01,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0xff,0xff,0xff,0xff,0x01,0x78,0x56,0x34,0x42}, + + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x78,0x56,0x34,0x42}, + + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x78,0x56,0x34,0x42}, + + Buffer() {0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x00,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x00,0x78,0x56,0x34,0x42}, + + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55, + 0,0,0,0,0,0,0,0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55, + 0,0,0,0,0,0,0,0x78,0x56,0x34,0x42}, + + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0x78,0x56,0x34,0x42,0x89,0xF1,0xED,0xAB}, + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0x78,0x56,0x34,0x42}, + }) + + // Expected results: 64-bit, 32-bit + Name(p002, Package() { + + // X - Integer + + "98760000000058765432", "987658765432", + + // X - String + + "9876qwrt", "9876qwrt", + "9876svnmjkl", "9876svnmjkl", + "98761234zyq", "98761234zyq", + "9876abcdefzyq", "9876abcdefzyq", + "98769876", "98769876", + "9876aBcD", "9876aBcD", + "98761234567890987654", "98761234567890987654", + "9876daFeCBaabbddffee", "9876daFeCBaabbddffee", + "98761234567890abCdeF", "98761234567890abCdeF", + "9876FdeAcb0132547698", "9876FdeAcb0132547698", + + "987612345678909876540", "987612345678909876540", + "9876fdeacb01325476980", "9876fdeacb01325476980", + + "9876123456789011223344556677889998765432199983337744", + "9876123456789011223344556677889998765432199983337744", + + "9876abcdefaAbbccddeeffffeeddccaabbddeeffaaaabbbbeeefffdd", + "9876abcdefaAbbccddeeffffeeddccaabbddeeffaaaabbbbeeefffdd", + + "98761234567890abcdef9876543210fedbca1122334455667788fdeacb", + "98761234567890abcdef9876543210fedbca1122334455667788fdeacb", + + "9876defa1234567890abcdef9876543210fedbca1122334455667788fdeacb", + "9876defa1234567890abcdef9876543210fedbca1122334455667788fdeacb", + + "9876123456789011223344556677889998765432199983337744z", + "9876123456789011223344556677889998765432199983337744z", + + // X - Buffer + + "987691 22 83", "987691 22 83", + "987680", "987680", + "987681 82", "987681 82", + "987683 84 85 86", "987683 84 85 86", + "987687 98 99 9A 9B", "987687 98 99 9A 9B", + "98769C 9D 9E 9F A0 A1 A2 A3", "98769C 9D 9E 9F A0 A1 A2 A3", + "9876A4 A5 A6 A7 B8 B9 BA BB BC", "9876A4 A5 A6 A7 B8 B9 BA BB BC", + "Exc", "Exc", + "Exc", "Exc", + + // X - Field Unit + + "9876000000000000007F", "98760000007F", + "98760000000000000007", "987600000007", + "9876000000000000008D", "98760000008D", + "98760000000000008C8D", "987600008C8D", + "9876000000008A8B8C8D", "98768A8B8C8D", + "987600000001FFFFFFFF", "9876FF FF FF FF 01", + "98765CDEFA1988374658", "987658 46 37 88 19 FA DE 5C", + "9876DCDEFA1988379A58", "987658 9A 37 88 19 FA DE DC", + "987658 C7 37 88 19 FA DE DC 00", "987658 C7 37 88 19 FA DE DC 00", + + "987682 34 56 78 90 AB CD EF 55 00 00 00 00 00 00 00", + "987682 34 56 78 90 AB CD EF 55 00 00 00 00 00 00 00", + + "987693 AB CD EF 99 12 CD 52 87 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", + "987693 AB CD EF 99 12 CD 52 87 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", + + // X - Buffer Field + + "987600000000918654AB", "9876918654AB", + "98760000000000000007", "987600000007", + "9876000000000000008D", "98760000008D", + "98760000000000008C8D", "987600008C8D", + "9876000000008A8B8C8D", "98768A8B8C8D", + "987600000001FFFFFFFF", "9876FF FF FF FF 01", + "98765CDEFA1988374658", "987658 46 37 88 19 FA DE 5C", + "9876DCDEFA1988379A58", "987658 9A 37 88 19 FA DE DC", + "987658 C7 37 88 19 FA DE DC 00", "987658 C7 37 88 19 FA DE DC 00", + + "987682 34 56 78 90 AB CD EF 55 00 00 00 00 00 00 00", + "987682 34 56 78 90 AB CD EF 55 00 00 00 00 00 00 00", + + "987693 AB CD EF 99 12 CD 52 87 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", + "987693 AB CD EF 99 12 CD 52 87 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", + }) + + // Expected results: 64-bit, 32-bit + Name(p003, Package() { + + // X - Integer + + Buffer() {0x32,0x54,0x76,0x58,0,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x32,0x54,0x76,0x58,0x76,0x98,0,0}, + + // X - String + + "qwrt9876", "qwrt9876", + "svnmjkl9876", "svnmjkl9876", + "1234zyq9876", "1234zyq9876", + "abcdefzyq9876", "abcdefzyq9876", + "98769876", "98769876", + "aBcD9876", "aBcD9876", + "12345678909876549876", "12345678909876549876", + "daFeCBaabbddffee9876", "daFeCBaabbddffee9876", + "1234567890abCdeF9876", "1234567890abCdeF9876", + "FdeAcb01325476989876", "FdeAcb01325476989876", + "123456789098765409876", "123456789098765409876", + "fdeacb013254769809876", "fdeacb013254769809876", + + "1234567890112233445566778899987654321999833377449876", + "1234567890112233445566778899987654321999833377449876", + + "abcdefaAbbccddeeffffeeddccaabbddeeffaaaabbbbeeefffdd9876", + "abcdefaAbbccddeeffffeeddccaabbddeeffaaaabbbbeeefffdd9876", + + "1234567890abcdef9876543210fedbca1122334455667788fdeacb9876", + "1234567890abcdef9876543210fedbca1122334455667788fdeacb9876", + + "defa1234567890abcdef9876543210fedbca1122334455667788fdeacb9876", + "defa1234567890abcdef9876543210fedbca1122334455667788fdeacb9876", + + "123456789011223344556677889998765432199983337744z9876", + "123456789011223344556677889998765432199983337744z9876", + + // X - Buffer + + Buffer() {0x91,0x22,0x83,0x39,0x38,0x37,0x36}, + Buffer() {0x91,0x22,0x83,0x39,0x38,0x37,0x36}, + + Buffer() {0x80,0x39,0x38,0x37,0x36}, + Buffer() {0x80,0x39,0x38,0x37,0x36}, + + Buffer() {0x81,0x82,0x39,0x38,0x37,0x36}, + Buffer() {0x81,0x82,0x39,0x38,0x37,0x36}, + + + Buffer() {0x83,0x84,0x85,0x86,0x39,0x38,0x37,0x36}, + Buffer() {0x83,0x84,0x85,0x86,0x39,0x38,0x37,0x36}, + + Buffer() {0x87,0x98,0x99,0x9A,0x9B,0x39,0x38,0x37,0x36}, + Buffer() {0x87,0x98,0x99,0x9A,0x9B,0x39,0x38,0x37,0x36}, + + + Buffer() {0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0x39,0x38,0x37,0x36}, + Buffer() {0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0x39,0x38,0x37,0x36}, + + Buffer() {0xA4,0xA5,0xA6,0xA7,0xB8,0xB9,0xBA,0xBB,0xBC,0x39,0x38,0x37,0x36}, + Buffer() {0xA4,0xA5,0xA6,0xA7,0xB8,0xB9,0xBA,0xBB,0xBC,0x39,0x38,0x37,0x36}, + + Buffer() {0x91,0x92,0x93,0x94,0x5F,0x60,0x61,0x62,0x63,0x0A,0x0B,0x0C,0x0D, + 0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A, + 0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, + 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34, + 0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41, + 0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E, + 0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B, + 0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68, + 0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75, + 0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80,0x81,0x82, + 0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C, + 0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9, + 0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6, + 0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3, + 0xC4,0xC5,0xC6,0xC7,0xC8,0x39,0x38,0x37,0x36}, + Buffer() {0x91,0x92,0x93,0x94,0x5F,0x60,0x61,0x62,0x63,0x0A,0x0B,0x0C,0x0D, + 0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A, + 0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, + 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34, + 0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41, + 0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E, + 0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B, + 0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68, + 0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75, + 0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80,0x81,0x82, + 0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C, + 0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9, + 0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6, + 0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3, + 0xC4,0xC5,0xC6,0xC7,0xC8,0x39,0x38,0x37,0x36}, + + Buffer() {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D, + 0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A, + 0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, + 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34, + 0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41, + 0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E, + 0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B, + 0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68, + 0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75, + 0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80,0x81,0x82, + 0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C, + 0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9, + 0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6, + 0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3, + 0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0, + 0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD, + 0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA, + 0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, + 0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0x00,0x01,0x39,0x38,0x37, + 0x36}, + Buffer() {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D, + 0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A, + 0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, + 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34, + 0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41, + 0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E, + 0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B, + 0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68, + 0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75, + 0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80,0x81,0x82, + 0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C, + 0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9, + 0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6, + 0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3, + 0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0, + 0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD, + 0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA, + 0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, + 0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0x00,0x01,0x39,0x38,0x37, + 0x36}, + + // X - Field Unit + + Buffer() {0x7F,0,0,0,0,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x7F,0,0,0,0x76,0x98,0,0}, + + Buffer() {0x07,0,0,0,0,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x07,0,0,0,0x76,0x98,0,0}, + + Buffer() {0x8d,0,0,0,0,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x8d,0,0,0,0x76,0x98,0,0}, + + Buffer() {0x8d,0x8c,0,0,0,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x8d,0x8c,0,0,0x76,0x98,0,0}, + + Buffer() {0x8d,0x8c,0x8b,0x8a,0,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x8d,0x8c,0x8b,0x8a,0x76,0x98,0,0}, + + Buffer() {0xff,0xff,0xff,0xff,0x01,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0xff,0xff,0xff,0xff,0x01,0x39,0x38,0x37,0x36}, + + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x39,0x38,0x37,0x36}, + + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x39,0x38,0x37,0x36}, + + Buffer() {0x58,0xc7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0,0x39,0x38,0x37,0x36}, + Buffer() {0x58,0xc7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0,0x39,0x38,0x37,0x36}, + + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0,0x39,0x38,0x37,0x36}, + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0,0x39,0x38,0x37,0x36}, + + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x39,0x38,0x37,0x36}, + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x39,0x38,0x37,0x36}, + + // X - Buffer Field + + Buffer() {0xAB,0x54,0x86,0x91,0,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0xAB,0x54,0x86,0x91,0x76,0x98,0,0}, + + Buffer() {0x07,0,0,0,0,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x07,0,0,0,0x76,0x98,0,0}, + + Buffer() {0x8d,0,0,0,0,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x8d,0,0,0,0x76,0x98,0,0}, + + Buffer() {0x8d,0x8c,0,0,0,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x8d,0x8c,0,0,0x76,0x98,0,0}, + + Buffer() {0x8d,0x8c,0x8b,0x8a,0,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x8d,0x8c,0x8b,0x8a,0x76,0x98,0,0}, + + Buffer() {0xff,0xff,0xff,0xff,0x01,0,0,0,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0xff,0xff,0xff,0xff,0x01,0x39,0x38,0x37,0x36}, + + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x39,0x38,0x37,0x36}, + + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x76,0x98,0,0,0,0,0,0}, + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x39,0x38,0x37,0x36}, + + Buffer() {0x58,0xc7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0,0x39,0x38,0x37,0x36}, + Buffer() {0x58,0xc7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0,0x39,0x38,0x37,0x36}, + + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0,0x39,0x38,0x37,0x36}, + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0,0x39,0x38,0x37,0x36}, + + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x39,0x38,0x37,0x36}, + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x39,0x38,0x37,0x36}, + }) + + // Expected results: 64-bit, 32-bit + Name(p004, Package() { + + // X - Integer + + Buffer() {0x81,0x82,0x32,0x54,0x76,0x58,0,0,0,0}, + Buffer() {0x81,0x82,0x32,0x54,0x76,0x58}, + + // X - String + + Buffer() {0x81,0x82,0x71,0x77,0x72,0x74}, + Buffer() {0x81,0x82,0x71,0x77,0x72,0x74}, + + Buffer() {0x81,0x82,0x73,0x76,0x6E,0x6D,0x6A,0x6B,0x6C}, + Buffer() {0x81,0x82,0x73,0x76,0x6E,0x6D,0x6A,0x6B,0x6C}, + + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x7A,0x79,0x71}, + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x7A,0x79,0x71}, + + Buffer() {0x81,0x82,0x61,0x62,0x63,0x64,0x65,0x66,0x7A,0x79,0x71}, + Buffer() {0x81,0x82,0x61,0x62,0x63,0x64,0x65,0x66,0x7A,0x79,0x71}, + + Buffer() {0x81,0x82,0x39,0x38,0x37,0x36}, + Buffer() {0x81,0x82,0x39,0x38,0x37,0x36}, + + Buffer() {0x81,0x82,0x61,0x42,0x63,0x44}, + Buffer() {0x81,0x82,0x61,0x42,0x63,0x44}, + + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x39,0x38,0x37,0x36,0x35,0x34}, + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x39,0x38,0x37,0x36,0x35,0x34}, + + Buffer() {0x81,0x82,0x64,0x61,0x46,0x65,0x43,0x42,0x61,0x61,0x62,0x62,0x64,0x64,0x66,0x66,0x65,0x65}, + Buffer() {0x81,0x82,0x64,0x61,0x46,0x65,0x43,0x42,0x61,0x61,0x62,0x62,0x64,0x64,0x66,0x66,0x65,0x65}, + + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x43,0x64,0x65,0x46}, + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x43,0x64,0x65,0x46}, + + Buffer() {0x81,0x82,0x46,0x64,0x65,0x41,0x63,0x62,0x30,0x31,0x33,0x32,0x35,0x34,0x37,0x36,0x39,0x38}, + Buffer() {0x81,0x82,0x46,0x64,0x65,0x41,0x63,0x62,0x30,0x31,0x33,0x32,0x35,0x34,0x37,0x36,0x39,0x38}, + + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x39,0x38,0x37,0x36,0x35,0x34,0x30}, + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x39,0x38,0x37,0x36,0x35,0x34,0x30}, + + Buffer() {0x81,0x82,0x66,0x64,0x65,0x61,0x63,0x62,0x30,0x31,0x33,0x32,0x35,0x34,0x37,0x36,0x39,0x38,0x30}, + Buffer() {0x81,0x82,0x66,0x64,0x65,0x61,0x63,0x62,0x30,0x31,0x33,0x32,0x35,0x34,0x37,0x36,0x39,0x38,0x30}, + + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x31,0x32,0x32,0x33,0x33,0x34, + 0x34,0x35,0x35,0x36,0x36,0x37,0x37,0x38,0x38,0x39,0x39,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32, + 0x31,0x39,0x39,0x39,0x38,0x33,0x33,0x33,0x37,0x37,0x34,0x34}, + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x31,0x32,0x32,0x33,0x33,0x34, + 0x34,0x35,0x35,0x36,0x36,0x37,0x37,0x38,0x38,0x39,0x39,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32, + 0x31,0x39,0x39,0x39,0x38,0x33,0x33,0x33,0x37,0x37,0x34,0x34}, + + Buffer() {0x81,0x82,0x61,0x62,0x63,0x64,0x65,0x66,0x61,0x41,0x62,0x62,0x63,0x63,0x64,0x64,0x65,0x65, + 0x66,0x66,0x66,0x66,0x65,0x65,0x64,0x64,0x63,0x63,0x61,0x61,0x62,0x62,0x64,0x64,0x65,0x65, + 0x66,0x66,0x61,0x61,0x61,0x61,0x62,0x62,0x62,0x62,0x65,0x65,0x65,0x66,0x66,0x66,0x64,0x64}, + Buffer() {0x81,0x82,0x61,0x62,0x63,0x64,0x65,0x66,0x61,0x41,0x62,0x62,0x63,0x63,0x64,0x64,0x65,0x65, + 0x66,0x66,0x66,0x66,0x65,0x65,0x64,0x64,0x63,0x63,0x61,0x61,0x62,0x62,0x64,0x64,0x65,0x65, + 0x66,0x66,0x61,0x61,0x61,0x61,0x62,0x62,0x62,0x62,0x65,0x65,0x65,0x66,0x66,0x66,0x64,0x64}, + + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65, + 0x66,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x66,0x65,0x64,0x62,0x63,0x61, + 0x31,0x31,0x32,0x32,0x33,0x33,0x34,0x34,0x35,0x35,0x36,0x36,0x37,0x37,0x38,0x38,0x66, + 0x64,0x65,0x61,0x63,0x62}, + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65, + 0x66,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x66,0x65,0x64,0x62,0x63,0x61, + 0x31,0x31,0x32,0x32,0x33,0x33,0x34,0x34,0x35,0x35,0x36,0x36,0x37,0x37,0x38,0x38,0x66, + 0x64,0x65,0x61,0x63,0x62}, + + Buffer() {0x81,0x82,0x64,0x65,0x66,0x61,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61, + 0x62,0x63,0x64,0x65,0x66,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x66,0x65, + 0x64,0x62,0x63,0x61,0x31,0x31,0x32,0x32,0x33,0x33,0x34,0x34,0x35,0x35,0x36,0x36,0x37, + 0x37,0x38,0x38,0x66,0x64,0x65,0x61,0x63,0x62}, + Buffer() {0x81,0x82,0x64,0x65,0x66,0x61,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61, + 0x62,0x63,0x64,0x65,0x66,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x66,0x65, + 0x64,0x62,0x63,0x61,0x31,0x31,0x32,0x32,0x33,0x33,0x34,0x34,0x35,0x35,0x36,0x36,0x37, + 0x37,0x38,0x38,0x66,0x64,0x65,0x61,0x63,0x62}, + + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x31,0x32,0x32,0x33, + 0x33,0x34,0x34,0x35,0x35,0x36,0x36,0x37,0x37,0x38,0x38,0x39,0x39,0x39,0x38,0x37,0x36, + 0x35,0x34,0x33,0x32,0x31,0x39,0x39,0x39,0x38,0x33,0x33,0x33,0x37,0x37,0x34,0x34,0x7A}, + Buffer() {0x81,0x82,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x31,0x32,0x32,0x33, + 0x33,0x34,0x34,0x35,0x35,0x36,0x36,0x37,0x37,0x38,0x38,0x39,0x39,0x39,0x38,0x37,0x36, + 0x35,0x34,0x33,0x32,0x31,0x39,0x39,0x39,0x38,0x33,0x33,0x33,0x37,0x37,0x34,0x34,0x7A}, + + // X - Buffer + + Buffer() {0x81,0x82,0x91,0x22,0x83}, + Buffer() {0x81,0x82,0x91,0x22,0x83}, + + Buffer() {0x81,0x82,0x80}, + Buffer() {0x81,0x82,0x80}, + + Buffer() {0x81,0x82,0x81,0x82}, + Buffer() {0x81,0x82,0x81,0x82}, + + Buffer() {0x81,0x82,0x83,0x84,0x85,0x86}, + Buffer() {0x81,0x82,0x83,0x84,0x85,0x86}, + + Buffer() {0x81,0x82,0x87,0x98,0x99,0x9A,0x9B}, + Buffer() {0x81,0x82,0x87,0x98,0x99,0x9A,0x9B}, + + Buffer() {0x81,0x82,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3}, + Buffer() {0x81,0x82,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3}, + + Buffer() {0x81,0x82,0xA4,0xA5,0xA6,0xA7,0xB8,0xB9,0xBA,0xBB,0xBC}, + Buffer() {0x81,0x82,0xA4,0xA5,0xA6,0xA7,0xB8,0xB9,0xBA,0xBB,0xBC}, + + Buffer() {0x81,0x82,0x91,0x92,0x93,0x94,0x5F,0x60,0x61,0x62,0x63,0x0A,0x0B, + 0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, + 0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25, + 0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, + 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C, + 0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59, + 0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66, + 0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73, + 0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80, + 0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D, + 0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A, + 0x9B,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, + 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4, + 0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1, + 0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8}, + Buffer() {0x81,0x82,0x91,0x92,0x93,0x94,0x5F,0x60,0x61,0x62,0x63,0x0A,0x0B, + 0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, + 0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25, + 0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, + 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C, + 0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59, + 0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66, + 0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73, + 0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80, + 0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D, + 0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A, + 0x9B,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, + 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4, + 0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1, + 0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8}, + + Buffer() {0x81,0x82,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B, + 0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, + 0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25, + 0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, + 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C, + 0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59, + 0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66, + 0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73, + 0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80, + 0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D, + 0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A, + 0x9B,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, + 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4, + 0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1, + 0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE, + 0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB, + 0xDC,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8, + 0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5, + 0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0x00,0x01}, + Buffer() {0x81,0x82,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B, + 0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, + 0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25, + 0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, + 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C, + 0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59, + 0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66, + 0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73, + 0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80, + 0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D, + 0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A, + 0x9B,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, + 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4, + 0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1, + 0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE, + 0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB, + 0xDC,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8, + 0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5, + 0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0x00,0x01}, + + // X - Field Unit + + Buffer() {0x81,0x82,0x7F,0,0,0,0,0,0,0}, + Buffer() {0x81,0x82,0x7F,0,0,0}, + + Buffer() {0x81,0x82,0x07,0,0,0,0,0,0,0}, + Buffer() {0x81,0x82,0x07,0,0,0}, + + Buffer() {0x81,0x82,0x8D,0,0,0,0,0,0,0}, + Buffer() {0x81,0x82,0x8D,0,0,0}, + + Buffer() {0x81,0x82,0x8D,0x8C,0,0,0,0,0,0}, + Buffer() {0x81,0x82,0x8D,0x8C,0,0}, + + Buffer() {0x81,0x82,0x8D,0x8C,0x8B,0x8A,0,0,0,0}, + Buffer() {0x81,0x82,0x8D,0x8C,0x8B,0x8A}, + + Buffer() {0x81,0x82,0xFF,0xFF,0xFF,0xFF,0x01,0,0,0}, + Buffer() {0x81,0x82,0xFF,0xFF,0xFF,0xFF,0x01}, + + Buffer() {0x81,0x82,0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C}, + Buffer() {0x81,0x82,0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C}, + + Buffer() {0x81,0x82,0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC}, + Buffer() {0x81,0x82,0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC}, + + Buffer() {0x81,0x82,0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0}, + Buffer() {0x81,0x82,0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0}, + + Buffer() {0x81,0x82,0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0}, + Buffer() {0x81,0x82,0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0}, + + Buffer() {0x81,0x82,0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + Buffer() {0x81,0x82,0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + + // X - Buffer Field + + Buffer() {0x81,0x82,0xAB,0x54,0x86,0x91,0,0,0,0}, + Buffer() {0x81,0x82,0xAB,0x54,0x86,0x91}, + + Buffer() {0x81,0x82,0x07,0,0,0,0,0,0,0}, + Buffer() {0x81,0x82,0x07,0,0,0}, + + Buffer() {0x81,0x82,0x8D,0,0,0,0,0,0,0}, + Buffer() {0x81,0x82,0x8D,0,0,0}, + + Buffer() {0x81,0x82,0x8D,0x8C,0,0,0,0,0,0}, + Buffer() {0x81,0x82,0x8D,0x8C,0,0}, + + Buffer() {0x81,0x82,0x8D,0x8C,0x8B,0x8A,0,0,0,0}, + Buffer() {0x81,0x82,0x8D,0x8C,0x8B,0x8A}, + + Buffer() {0x81,0x82,0xFF,0xFF,0xFF,0xFF,0x01,0,0,0}, + Buffer() {0x81,0x82,0xFF,0xFF,0xFF,0xFF,0x01}, + + Buffer() {0x81,0x82,0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C}, + Buffer() {0x81,0x82,0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C}, + + Buffer() {0x81,0x82,0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC}, + Buffer() {0x81,0x82,0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC}, + + Buffer() {0x81,0x82,0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0}, + Buffer() {0x81,0x82,0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0}, + + Buffer() {0x81,0x82,0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0}, + Buffer() {0x81,0x82,0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0}, + + Buffer() {0x81,0x82,0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + Buffer() {0x81,0x82,0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + }) + + // Expected results: 64-bit, 32-bit + Name(p005, Package() { + + // X - Integer + + Buffer() {0x32,0x54,0x76,0x58,0,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x32,0x54,0x76,0x58,0x81,0x82,0,0}, + + // X - String + + "qwrt81 82", "qwrt81 82", + "svnmjkl81 82", "svnmjkl81 82", + "1234zyq81 82", "1234zyq81 82", + "abcdefzyq81 82", "abcdefzyq81 82", + "987681 82", "987681 82", + "aBcD81 82", "aBcD81 82", + "123456789098765481 82", "123456789098765481 82", + "daFeCBaabbddffee81 82", "daFeCBaabbddffee81 82", + "1234567890abCdeF81 82", "1234567890abCdeF81 82", + "FdeAcb013254769881 82", "FdeAcb013254769881 82", + "1234567890987654081 82", "1234567890987654081 82", + "fdeacb0132547698081 82", "fdeacb0132547698081 82", + + "12345678901122334455667788999876543219998333774481 82", + "12345678901122334455667788999876543219998333774481 82", + + "abcdefaAbbccddeeffffeeddccaabbddeeffaaaabbbbeeefffdd81 82", + "abcdefaAbbccddeeffffeeddccaabbddeeffaaaabbbbeeefffdd81 82", + + "1234567890abcdef9876543210fedbca1122334455667788fdeacb81 82", + "1234567890abcdef9876543210fedbca1122334455667788fdeacb81 82", + + "defa1234567890abcdef9876543210fedbca1122334455667788fdeacb81 82", + "defa1234567890abcdef9876543210fedbca1122334455667788fdeacb81 82", + + "123456789011223344556677889998765432199983337744z81 82", + "123456789011223344556677889998765432199983337744z81 82", + + // X - Buffer + + Buffer() {0x91,0x22,0x83,0x81,0x82}, + Buffer() {0x91,0x22,0x83,0x81,0x82}, + + Buffer() {0x80,0x81,0x82}, + Buffer() {0x80,0x81,0x82}, + + Buffer() {0x81,0x82,0x81,0x82}, + Buffer() {0x81,0x82,0x81,0x82}, + + Buffer() {0x83,0x84,0x85,0x86,0x81,0x82}, + Buffer() {0x83,0x84,0x85,0x86,0x81,0x82}, + + Buffer() {0x87,0x98,0x99,0x9A,0x9B,0x81,0x82}, + Buffer() {0x87,0x98,0x99,0x9A,0x9B,0x81,0x82}, + + Buffer() {0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0x81,0x82}, + Buffer() {0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0x81,0x82}, + + Buffer() {0xA4,0xA5,0xA6,0xA7,0xB8,0xB9,0xBA,0xBB,0xBC,0x81,0x82}, + Buffer() {0xA4,0xA5,0xA6,0xA7,0xB8,0xB9,0xBA,0xBB,0xBC,0x81,0x82}, + + Buffer() {0x91,0x92,0x93,0x94,0x5F,0x60,0x61,0x62,0x63,0x0A,0x0B,0x0C, + 0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, + 0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24, + 0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30, + 0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C, + 0x3D,0x3E,0x3F,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48, + 0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54, + 0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60, + 0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C, + 0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78, + 0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80,0x81,0x82,0x83,0x84, + 0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90, + 0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C, + 0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8, + 0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4, + 0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0, + 0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0x81,0x82}, + Buffer() {0x91,0x92,0x93,0x94,0x5F,0x60,0x61,0x62,0x63,0x0A,0x0B,0x0C, + 0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, + 0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24, + 0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30, + 0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C, + 0x3D,0x3E,0x3F,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48, + 0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54, + 0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60, + 0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C, + 0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78, + 0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80,0x81,0x82,0x83,0x84, + 0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90, + 0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C, + 0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8, + 0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4, + 0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0, + 0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0x81,0x82}, + + Buffer() {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C, + 0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, + 0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24, + 0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30, + 0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C, + 0x3D,0x3E,0x3F,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48, + 0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54, + 0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60, + 0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C, + 0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78, + 0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80,0x81,0x82,0x83,0x84, + 0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90, + 0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C, + 0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8, + 0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4, + 0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0, + 0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC, + 0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8, + 0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4, + 0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0, + 0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC, + 0xFD,0xFE,0xFF,0x00,0x01,0x81,0x82}, + Buffer() {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C, + 0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, + 0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24, + 0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30, + 0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C, + 0x3D,0x3E,0x3F,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48, + 0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54, + 0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60, + 0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C, + 0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78, + 0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80,0x81,0x82,0x83,0x84, + 0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90, + 0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C, + 0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8, + 0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4, + 0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0, + 0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC, + 0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8, + 0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4, + 0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0, + 0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC, + 0xFD,0xFE,0xFF,0x00,0x01,0x81,0x82}, + + // X - Field Unit + + Buffer() {0x7F,0,0,0,0,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x7F,0,0,0,0x81,0x82,0,0}, + + Buffer() {0x07,0,0,0,0,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x07,0,0,0,0x81,0x82,0,0}, + + Buffer() {0x8D,0,0,0,0,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x8D,0,0,0,0x81,0x82,0,0}, + + Buffer() {0x8D,0x8c,0,0,0,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x8D,0x8c,0,0,0x81,0x82,0,0}, + + Buffer() {0x8D,0x8c,0x8b,0x8a,0,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x8D,0x8c,0x8b,0x8a,0x81,0x82,0,0}, + + Buffer() {0xFF,0xFF,0xFF,0xFF,0x01,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0xFF,0xFF,0xFF,0xFF,0x01,0x81,0x82}, + + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x81,0x82}, + + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x81,0x82}, + + Buffer() {0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x00,0x81,0x82}, + Buffer() {0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x00,0x81,0x82}, + + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0,0x81,0x82}, + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0,0x81,0x82}, + + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x81,0x82}, + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x81,0x82}, + + // X - Buffer Field + + Buffer() {0xAB,0x54,0x86,0x91,0,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0xAB,0x54,0x86,0x91,0x81,0x82,0,0}, + + Buffer() {0x07,0,0,0,0,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x07,0,0,0,0x81,0x82,0,0}, + + Buffer() {0x8D,0,0,0,0,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x8D,0,0,0,0x81,0x82,0,0}, + + Buffer() {0x8D,0x8c,0,0,0,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x8D,0x8c,0,0,0x81,0x82,0,0}, + + Buffer() {0x8D,0x8c,0x8b,0x8a,0,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x8D,0x8c,0x8b,0x8a,0x81,0x82,0,0}, + + Buffer() {0xFF,0xFF,0xFF,0xFF,0x01,0,0,0,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0xFF,0xFF,0xFF,0xFF,0x01,0x81,0x82}, + + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x58,0x46,0x37,0x88,0x19,0xFA,0xDE,0x5C,0x81,0x82}, + + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x81,0x82,0,0,0,0,0,0}, + Buffer() {0x58,0x9A,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x81,0x82}, + + Buffer() {0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x00,0x81,0x82}, + Buffer() {0x58,0xC7,0x37,0x88,0x19,0xFA,0xDE,0xDC,0x00,0x81,0x82}, + + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0,0x81,0x82}, + Buffer() {0x82,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x55,0,0,0,0,0,0,0,0x81,0x82}, + + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x81,0x82}, + Buffer() {0x93,0xAB,0xCD,0xEF,0x99,0x12,0xCD,0x52,0x87,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x81,0x82}, + }) + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) +// Store(0x200, df00) +// Store(m488(op, 0, 0x1ed1, 0, 0, 0), Local7) +// Store(0x300, df00) +// Store(m488(op, 0, 0x1ed1, 0, 0, 0), Local7) + + } else { + Store(1, FLG1) + + // (Integer ==> All other types) + // (All other types ==> Integer) + Store(2, com2) + Store(p000, PKG1) + Store(p001, PKG2) + m48b(op, 0x103) + + // (String ==> All other types) + // (All other types ==> String) + Store(2, com2) + Store(p002, PKG1) + Store(p003, PKG2) + m48b(op, 0x204) + + // (Buffer ==> All other types) + // (All other types ==> Buffer) + Store(2, com2) + Store(p004, PKG1) + Store(p005, PKG2) + m48b(op, 0x302) + + Store(PKG0, PKG1) + Store(PKG0, PKG2) + Store(0, com2) + Store(0, FLG1) + } +} + +// ConcatenateResTemplate (rtb, rtb, Result) => Buffer +// +// Total scale of unacceptable types: +// Source1: 0x5ef7 +// Source2: 0x5ef7 +// Total scale of acceptable types: +// Source1: 0x0008 +// Source2: 0x0008 +Method(m404, 1) +{ + Name(op, 4) + + ts00("m404") + + if (arg0) { + m486() + Store(0x30b, df00) + Store(0x30b, df01) + Store(m488(op, 0x5fff, 0x5fff, 0, 0, 0), Local7) + } else { + } +} + +// CondRefOf (any, Result) => Boolean +// +// Total scale of unacceptable types: +// Source: 0x0000 +// Total scale of acceptable types: +// Source: 0x5eff +Method(m405, 1) +{ + Name(op, 5) + + ts00("m405") + + if (arg0) { + m486() + +// Error: CondRefOf failes with the Unitialized type + Store(m488(op, 0x0001, 0, 0, 0, 0), Local7) + + } else { + } +} + +// CopyObject (any, Destination) => DataRefObject +// +// Total scale of unacceptable types: +// Source: 0x0000 +// Total scale of acceptable types: +// Source: 0x5eff +Method(m406, 1) +{ + Name(op, 6) + + ts00("m406") + + if (arg0) { + m486() + +// Error: CopyObject failes with the Unitialized type + Store(m488(op, 0x0001, 0, 0, 0, 0), Local7) + + } else { + } +} + +// Decrement (int) => Integer +// +// Total scale of unacceptable types: +// Minuend: 0x1ed1 +// Total scale of acceptable types: +// Minuend: 0x402e +Method(m407, 1) +{ + Name(op, 7) + + Name(ts, "m407") + + ts00(ts) + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + Store(m48d(op, 0x102, 0, 0, 0, 0x12345677, 0x12345677), Local7) + Store(m48d(op, 0x204, 0, 0, 0, 0x9875, 0x9875), Local7) + Store(m48d(op, 0x209, 0, 0, 0, 0xFdeAcb0132547697, 0x32547697), Local7) + Store(m48d(op, 0x302, 0, 0, 0, 0x8280, 0x8280), Local7) + Store(m48d(op, 0x308, 0, 0, 0, 0x0807060504030200, 0x04030200), Local7) + Store(m48d(op, 0x506, 0, 0, 0, 0x5CDEFA1988374657, 0x88374657), Local7) + Store(m48d(op, 0xe06, 0, 0, 0, 0x5CDEFA1988374657, 0x88374657), Local7) + + // Exceptions + + Store(m48d(op, 0x202, 0, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x20a, 0, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x210, 0, 0, 0, "Exc", "Exc"), Local7) + } +} + +// DerefOf ({ref|str}) => Object +// +// Total scale of unacceptable types: +// Source: 0x5fff +// Total scale of acceptable types: +// Source: 0x0000 +Method(m408, 1) +{ + Name(op, 8) + + ts00("m408") + + if (arg0) { + m486() + Store(m488(op, 0x5fff, 0, 0, 0, 0), Local7) + } else { + } +} + +// Divide (int, int, Remainder, Result) => Integer +// +// Total scale of unacceptable types: +// Dividend: 0x1ed1 +// Divisor: 0x1ed1 +// Total scale of acceptable types: +// Dividend: 0x402e +// Divisor: 0x402e +Method(m409, 1) +{ + Name(op, 9) + + ts00("m409") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + Store(m48d(op, 0x102, 0x102, 0, 0, 1, 1), Local7) + Store(m48d(op, 0x103, 0x102, 0, 0, 0x0000000971C214EA, 3), Local7) + Store(m48d(op, 0x204, 0x102, 0, 0, 0, 0), Local7) + Store(m48d(op, 0x209, 0x102, 0, 0, 0x0000000DF2B5C737, 2), Local7) + Store(m48d(op, 0x302, 0x102, 0, 0, 0, 0), Local7) + Store(m48d(op, 0x308, 0x102, 0, 0, 0x0000000070E2C4AA, 0), Local7) + Store(m48d(op, 0x506, 0x102, 0, 0, 0x0000000519FF9D32, 7), Local7) + Store(m48d(op, 0xe06, 0x102, 0, 0, 0x0000000519FF9D32, 7), Local7) + Store(m48d(op, 0x103, 0x204, 0, 0, 0x000120B0A1E2C2D5, 0x00006F2A), Local7) + + // Exceptions + + Store(m48d(op, 0x202, 0x102, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x20a, 0x102, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x210, 0x102, 0, 0, "Exc", "Exc"), Local7) + + Store(m48d(op, 0x102, 0x202, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x102, 0x20a, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x102, 0x210, 0, 0, "Exc", "Exc"), Local7) + } +} + +// Fatal (byt, dwd, int) +// +// iasl: "Fatal operator requires [Integer|String|Buffer]" +// Total scale of unacceptable types: +// Arg: 0x1ed1 +// Total scale of acceptable types: +// Arg: 0x402e +Method(m410, 1) +{ + Name(op, 10) + + ts00("m410") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + } +} + +// FindSetLeftBit (int, Result) => Integer +// +// Total scale of unacceptable types: +// Source: 0x1ed1 +// Total scale of acceptable types: +// Source: 0x402e +Method(m411, 1) +{ + Name(op, 11) + + ts00("m411") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + Store(m48d(op, 0x102, 0, 0, 0, 29, 29), Local7) + Store(m48d(op, 0x204, 0, 0, 0, 16, 16), Local7) + Store(m48d(op, 0x206, 0, 0, 0, 61, 32), Local7) + + // Exceptions + + Store(m48d(op, 0x202, 0, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x20a, 0, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x210, 0, 0, 0, "Exc", "Exc"), Local7) + } +} + +// FindSetRightBit (int, Result) => Integer +// +// Total scale of unacceptable types: +// Source: 0x1ed1 +// Total scale of acceptable types: +// Source: 0x402e +Method(m412, 1) +{ + Name(op, 12) + + ts00("m412") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + Store(m48d(op, 0x102, 0, 0, 0, 4, 4), Local7) + Store(m48d(op, 0x204, 0, 0, 0, 2, 2), Local7) + Store(m48d(op, 0x206, 0, 0, 0, 3, 3), Local7) + + // Exceptions + + Store(m48d(op, 0x202, 0, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x20a, 0, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x210, 0, 0, 0, "Exc", "Exc"), Local7) + } +} + +// FromBCD (int, Result) => Integer +// +// Total scale of unacceptable types: +// BCDValue: 0x1ed1 +// Total scale of acceptable types: +// BCDValue: 0x402e +Method(m413, 1) +{ + Name(op, 13) + + ts00("m413") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + } +} + +// Increment (int) => Integer +// +// Total scale of unacceptable types: +// Addend: 0x1ed1 +// Total scale of acceptable types: +// Addend: 0x402e +Method(m414, 1) +{ + Name(op, 14) + + ts00("m414") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + + Store(m48d(op, 0x102, 0, 0, 0, 0x12345679, 0x12345679), Local7) + Store(m48d(op, 0x204, 0, 0, 0, 0x9877, 0x9877), Local7) + Store(m48d(op, 0x209, 0, 0, 0, 0xFdeAcb0132547699, 0x32547699), Local7) + Store(m48d(op, 0x302, 0, 0, 0, 0x8282, 0x8282), Local7) + Store(m48d(op, 0x308, 0, 0, 0, 0x0807060504030202, 0x04030202), Local7) + Store(m48d(op, 0x506, 0, 0, 0, 0x5CDEFA1988374659, 0x88374659), Local7) + Store(m48d(op, 0xe06, 0, 0, 0, 0x5CDEFA1988374659, 0x88374659), Local7) + + // Exceptions + + Store(m48d(op, 0x202, 0, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x20a, 0, 0, 0, "Exc", "Exc"), Local7) + Store(m48d(op, 0x210, 0, 0, 0, "Exc", "Exc"), Local7) + } +} + +// Index ({str|buf|pkg}, int, Destination) => ObjectReference +// +// Total scale of unacceptable types: +// Source: 0x5fe3 +// Index: 0x1ed1 +// Total scale of acceptable types: +// Source: 0x001c +// Index: 0x402e +Method(m415, 1) +{ + Name(op, 15) + + ts00("m415") + + if (arg0) { + m486() + Store(0x200, df00) + Store(0x104, df01) // Zero + Store(m488(op, 0x5fe3, 0x1ed1, 0, 0, 0), Local7) + +/* +// The action above together with those below generates exception + Store(0x300, df00) + Store(m488(op, 0, 0x1ed1, 0, 0, 0), Local7) + Store(0x400, df00) + Store(m488(op, 0, 0x1ed1, 0, 0, 0), Local7) +*/ + + } else { + } +} + +// LAnd (int, int) => Boolean +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m416, 1) +{ + Name(op, 16) + + ts00("m416") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// LEqual ({int|str|buf}, {int|str|buf}) => Boolean +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m417, 1) +{ + Name(op, 17) + + ts00("m417") + + // Expected results: 64-bit, 32-bit + Name(p000, Package() { + + // X - Integer + + Zero, Zero, + + // X - String + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, + + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + // X - Buffer + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + + // X - Field Unit + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + + // X - Buffer Field + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p001, Package() { + + // X - Integer + + Zero, Zero, + + // X - String + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, + + // X - Buffer + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + + // X - Field Unit + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + + // X - Buffer Field + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p002, Package() { + + // X - Integer + + Zero, Zero, + + // X - String + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, + + // X - Buffer + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, "Exc", "Exc", "Exc", "Exc", + + // X - Field Unit + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + + // X - Buffer Field + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p003, Package() { + + // X - Integer + + Zero, Zero, + + // X - String + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, + + // X - Buffer + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + + // X - Field Unit + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + + // X - Buffer Field + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p004, Package() { + + // X - Integer + + Zero, Zero, + + // X - String + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, + + // X - Buffer + + Zero, Zero, Zero, Zero, Ones, Ones, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + + // X - Field Unit + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + + // X - Buffer Field + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p005, Package() { + + // X - Integer + + Zero, Zero, + + // X - String + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, + + // X - Buffer + + Zero, Zero, Zero, Zero, Ones, Ones, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + + // X - Field Unit + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + + // X - Buffer Field + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + }) + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + Store(1, FLG1) + + // (Integer ==> All other types) + // (All other types ==> Integer) + Store(2, com2) + Store(p000, PKG1) + Store(p001, PKG2) + m48b(op, 0x103) + + // (String ==> All other types) + // (All other types ==> String) + Store(2, com2) + Store(p002, PKG1) + Store(p003, PKG2) + m48b(op, 0x204) + + // (Buffer ==> All other types) + // (All other types ==> Buffer) + Store(2, com2) + Store(p004, PKG1) + Store(p005, PKG2) + m48b(op, 0x302) + + Store(PKG0, PKG1) + Store(PKG0, PKG2) + Store(0, com2) + Store(0, FLG1) + } +} + +// LGreater ({int|str|buf}, {int|str|buf}) => Boolean +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m418, 1) +{ + Name(op, 18) + + ts00("m418") + + // Expected results: 64-bit, 32-bit + Name(p000, Package() { + + // X - Integer, (0) + + Ones, Zero, + + // X - String, (1) + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + Ones, Ones, Ones, Ones, Ones, Zero, + Zero, Zero, Ones, Zero, Zero, Ones, + + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + // X - Buffer, (18) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Ones, Zero, + Ones, Zero, Zero, Zero, Ones, Zero, Ones, Ones, + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, + Ones, Zero, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Ones, Zero, + + // X - Buffer Field, (38) + + Ones, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, + Ones, Zero, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Ones, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p001, Package() { + + // X - Integer, (0) + + Zero, Ones, + + // X - String, (1) + + Ones, Ones, Ones, Ones, Zero, Zero, Ones, Ones, + + Zero, Ones, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + Zero, Zero, Ones, Ones, Zero, Zero, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, + + // X - Buffer, (18) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, + Zero, Ones, Zero, Zero, Ones, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + + // X - Buffer Field, (38) + + Zero, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, + Zero, Ones, Zero, Zero, Ones, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p002, Package() { + + // X - Integer, (0) + + Ones, Ones, + + // X - String, (1) + + Zero, Zero, Zero, Zero, Ones, Ones, Zero, Zero, + + Zero, Zero, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + + Ones, Ones, Zero, Zero, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + // X - Buffer, (18) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Zero, Zero, Zero, Zero, "Exc", "Exc", "Exc", "Exc", + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Zero, Ones, Ones, Zero, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + + // X - Buffer Field, (38) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Zero, Ones, Ones, Zero, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p003, Package() { + + // X - Integer, (0) + + Ones, Ones, + + // X - String, (1) + + Ones, Ones, Ones, Ones, Zero, Zero, Ones, Ones, + + Zero, Zero, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + + Zero, Zero, Ones, Ones, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + // X - Buffer, (18) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + + // X - Buffer Field, (38) + + Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p004, Package() { + + // X - Integer, (0) + + Ones, Ones, + + // X - String, (1) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + + Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, + + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, + + // X - Buffer, (18) + + Zero, Zero, Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + + // X - Buffer Field, (38) + + Zero, Zero, Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p005, Package() { + + // X - Integer, (0) + + Ones, Ones, + + // X - String, (1) + + Ones, Ones, Ones, Ones, Zero, Zero, Ones, Ones, + + Ones, Ones, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + Zero, Zero, Ones, Ones, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + // X - Buffer, (18) + + Ones, Ones, Zero, Zero, Zero, Zero, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Zero, Ones, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + + // X - Buffer Field, (38) + + Ones, Ones, Zero, Zero, Zero, Zero, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Zero, Ones, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + }) + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + Store(1, FLG1) + + // (Integer ==> All other types) + // (All other types ==> Integer) + Store(2, com2) + Store(p000, PKG1) + Store(p001, PKG2) + m48b(op, 0x103) + + // (String ==> All other types) + // (All other types ==> String) + Store(2, com2) + Store(p002, PKG1) + Store(p003, PKG2) + m48b(op, 0x204) + + // (Buffer ==> All other types) + // (All other types ==> Buffer) + Store(2, com2) + Store(p004, PKG1) + Store(p005, PKG2) + m48b(op, 0x302) + + Store(PKG0, PKG1) + Store(PKG0, PKG2) + Store(0, com2) + Store(0, FLG1) + } +} + +// LGreaterEqual ({int|str|buf}, {int|str|buf}) => Boolean +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m419, 1) +{ + Name(op, 19) + + ts00("m419") + + // Expected results: 64-bit, 32-bit + Name(p000, Package() { + + // X - Integer, (0) + + Ones, Zero, + + // X - String, (1) + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + Ones, Ones, Ones, Ones, Ones, Zero, + Zero, Zero, Ones, Zero, Zero, Ones, + + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + // X - Buffer, (18) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Ones, Zero, + Ones, Zero, Zero, Zero, Ones, Zero, Ones, Ones, + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, + Ones, Zero, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Ones, Zero, + + // X - Buffer Field, (38) + + Ones, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, + Ones, Zero, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Ones, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p001, Package() { + + // X - Integer, (0) + + Zero, Ones, + + // X - String, (1) + + Ones, Ones, Ones, Ones, Zero, Zero, Ones, Ones, + + Zero, Ones, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + Zero, Zero, Ones, Ones, Zero, Zero, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, + + // X - Buffer, (18) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, + Zero, Ones, Zero, Zero, Ones, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + + // X - Buffer Field, (38) + + Zero, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, + Zero, Ones, Zero, Zero, Ones, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p002, Package() { + + // X - Integer, (0) + + Ones, Ones, + + // X - String, (1) + + Zero, Zero, Zero, Zero, Ones, Ones, Zero, Zero, + + Ones, Ones, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + + Ones, Ones, Zero, Zero, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + // X - Buffer, (18) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Zero, Zero, Zero, Zero, "Exc", "Exc", "Exc", "Exc", + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Zero, Ones, Ones, Zero, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + + // X - Buffer Field, (38) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Zero, Ones, Ones, Zero, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p003, Package() { + + // X - Integer, (0) + + Ones, Ones, + + // X - String, (1) + + Ones, Ones, Ones, Ones, Zero, Zero, Ones, Ones, + + Ones, Ones, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + + Zero, Zero, Ones, Ones, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + // X - Buffer, (18) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + + // X - Buffer Field, (38) + + Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p004, Package() { + + // X - Integer, (0) + + Ones, Ones, + + // X - String, (1) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + + Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, + + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, + + // X - Buffer, (18) + + Zero, Zero, Ones, Ones, Ones, Ones, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + + // X - Buffer Field, (38) + + Zero, Zero, Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p005, Package() { + + // X - Integer, (0) + + Ones, Ones, + + // X - String, (1) + + Ones, Ones, Ones, Ones, Zero, Zero, Ones, Ones, + + Ones, Ones, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + + Zero, Zero, Ones, Ones, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + // X - Buffer, (18) + + Ones, Ones, Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Zero, Ones, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + + // X - Buffer Field, (38) + + Ones, Ones, Zero, Zero, Zero, Zero, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Zero, Ones, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + }) + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + Store(1, FLG1) + + // (Integer ==> All other types) + // (All other types ==> Integer) + Store(2, com2) + Store(p000, PKG1) + Store(p001, PKG2) + m48b(op, 0x103) + + // (String ==> All other types) + // (All other types ==> String) + Store(2, com2) + Store(p002, PKG1) + Store(p003, PKG2) + m48b(op, 0x204) + + // (Buffer ==> All other types) + // (All other types ==> Buffer) + Store(2, com2) + Store(p004, PKG1) + Store(p005, PKG2) + m48b(op, 0x302) + + Store(PKG0, PKG1) + Store(PKG0, PKG2) + Store(0, com2) + Store(0, FLG1) + } +} + +// LLess ({int|str|buf}, {int|str|buf}) => Boolean +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m420, 1) +{ + Name(op, 20) + + ts00("m420") + + // Expected results: 64-bit, 32-bit + Name(p000, Package() { + + // X - Integer, (0) + + Zero, Ones, + + // X - String, (1) + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + Zero, Zero, Zero, Zero, Zero, Ones, + Ones, Ones, Zero, Ones, Ones, Zero, + + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + // X - Buffer, (18) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Zero, Ones, + Zero, Ones, Ones, Ones, Zero, Ones, Zero, Zero, + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, + Zero, Ones, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Zero, Ones, + + // X - Buffer Field, (38) + + Zero, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, + Zero, Ones, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Zero, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p001, Package() { + + // X - Integer, (0) + + Ones, Zero, + + // X - String, (1) + + Zero, Zero, Zero, Zero, Ones, Ones, Zero, Zero, + + Ones, Zero, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + Ones, Ones, Zero, Zero, Ones, Ones, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, + + // X - Buffer, (18) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, + Ones, Zero, Ones, Ones, Zero, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + + // X - Buffer Field, (38) + + Ones, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, + Ones, Zero, Ones, Ones, Zero, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p002, Package() { + + // X - Integer, (0) + + Zero, Zero, + + // X - String, (1) + + Ones, Ones, Ones, Ones, Zero, Zero, Ones, Ones, + + Zero, Zero, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + + Zero, Zero, Ones, Ones, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + // X - Buffer, (18) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Ones, Ones, Ones, Ones, "Exc", "Exc", "Exc", "Exc", + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Ones, Zero, Zero, Ones, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + + // X - Buffer Field, (38) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Ones, Zero, Zero, Ones, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p003, Package() { + + // X - Integer, (0) + + Zero, Zero, + + // X - String, (1) + + Zero, Zero, Zero, Zero, Ones, Ones, Zero, Zero, + + Zero, Zero, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + + Ones, Ones, Zero, Zero, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + // X - Buffer, (18) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + + // X - Buffer Field, (38) + + Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p004, Package() { + + // X - Integer, (0) + + Zero, Zero, + + // X - String, (1) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + + Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, + + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, + + // X - Buffer, (18) + + Ones, Ones, Zero, Zero, Zero, Zero, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + + // X - Buffer Field, (38) + + Ones, Ones, Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p005, Package() { + + // X - Integer, (0) + + Zero, Zero, + + // X - String, (1) + + Zero, Zero, Zero, Zero, Ones, Ones, Zero, Zero, + + Zero, Zero, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + + Ones, Ones, Zero, Zero, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + // X - Buffer, (18) + + Zero, Zero, Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Ones, Zero, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + + // X - Buffer Field, (38) + + Zero, Zero, Ones, Ones, Ones, Ones, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Ones, Zero, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + }) + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + Store(1, FLG1) + + // (Integer ==> All other types) + // (All other types ==> Integer) + Store(2, com2) + Store(p000, PKG1) + Store(p001, PKG2) + m48b(op, 0x103) + + // (String ==> All other types) + // (All other types ==> String) + Store(2, com2) + Store(p002, PKG1) + Store(p003, PKG2) + m48b(op, 0x204) + + // (Buffer ==> All other types) + // (All other types ==> Buffer) + Store(2, com2) + Store(p004, PKG1) + Store(p005, PKG2) + m48b(op, 0x302) + + Store(PKG0, PKG1) + Store(PKG0, PKG2) + Store(0, com2) + Store(0, FLG1) + } +} + +// LLessEqual ({int|str|buf}, {int|str|buf}) => Boolean +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m421, 1) +{ + Name(op, 21) + + ts00("m421") + + // Expected results: 64-bit, 32-bit + Name(p000, Package() { + + // X - Integer, (0) + + Zero, Ones, + + // X - String, (1) + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + Zero, Zero, Zero, Zero, Zero, Ones, + Ones, Ones, Zero, Ones, Ones, Zero, + + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + // X - Buffer, (18) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Zero, Ones, + Zero, Ones, Ones, Ones, Zero, Ones, Zero, Zero, + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, + Zero, Ones, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Zero, Ones, + + // X - Buffer Field, (38) + + Zero, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Ones, + Zero, Ones, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Zero, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p001, Package() { + + // X - Integer, (0) + + Ones, Zero, + + // X - String, (1) + + Zero, Zero, Zero, Zero, Ones, Ones, Zero, Zero, + + Ones, Zero, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + Ones, Ones, Zero, Zero, Ones, Ones, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, + + // X - Buffer, (18) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, + Ones, Zero, Ones, Ones, Zero, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + + // X - Buffer Field, (38) + + Ones, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, + Ones, Zero, Ones, Ones, Zero, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p002, Package() { + + // X - Integer, (0) + + Zero, Zero, + + // X - String, (1) + + Ones, Ones, Ones, Ones, Zero, Zero, Ones, Ones, + + Ones, Ones, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + + Zero, Zero, Ones, Ones, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + // X - Buffer, (18) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Ones, Ones, Ones, Ones, "Exc", "Exc", "Exc", "Exc", + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Ones, Zero, Zero, Ones, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + + // X - Buffer Field, (38) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Ones, Zero, Zero, Ones, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p003, Package() { + + // X - Integer, (0) + + Zero, Zero, + + // X - String, (1) + + Zero, Zero, Zero, Zero, Ones, Ones, Zero, Zero, + + Ones, Ones, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + + Ones, Ones, Zero, Zero, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + // X - Buffer, (18) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + + // X - Buffer Field, (38) + + Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, + }) + + // Expected results: 64-bit, 32-bit + Name(p004, Package() { + + // X - Integer, (0) + + Zero, Zero, + + // X - String, (1) + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + + Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, + + + Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, + + // X - Buffer, (18) + + Ones, Ones, Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + + // X - Field Unit, (27) + + Zero, Zero, Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + + // X - Buffer Field, (38) + + Ones, Ones, Zero, Zero, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p005, Package() { + + // X - Integer, (0) + + Zero, Zero, + + // X - String, (1) + + Zero, Zero, Zero, Zero, Ones, Ones, Zero, Zero, + + Zero, Zero, Zero, Zero, Ones, Ones, + Zero, Zero, Ones, Ones, Zero, Zero, + + + Ones, Ones, Zero, Zero, Ones, Ones, Zero, Zero, + Ones, Ones, Zero, Zero, Ones, Ones, + + // X - Buffer, (18) + + Zero, Zero, Ones, Ones, Ones, Ones, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Zero, Zero, Zero, Ones, Ones, + + // X - Field Unit, (27) + + Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Ones, Zero, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + + // X - Buffer Field, (38) + + Zero, Zero, Ones, Ones, Ones, Ones, Zero, Zero, Zero, Zero, + Zero, Zero, Zero, Ones, Zero, Ones, Ones, Ones, Zero, Zero, + Zero, Zero, + }) + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + Store(1, FLG1) + + // (Integer ==> All other types) + // (All other types ==> Integer) + Store(2, com2) + Store(p000, PKG1) + Store(p001, PKG2) + m48b(op, 0x103) + + // (String ==> All other types) + // (All other types ==> String) + Store(2, com2) + Store(p002, PKG1) + Store(p003, PKG2) + m48b(op, 0x204) + + // (Buffer ==> All other types) + // (All other types ==> Buffer) + Store(2, com2) + Store(p004, PKG1) + Store(p005, PKG2) + m48b(op, 0x302) + + Store(PKG0, PKG1) + Store(PKG0, PKG2) + Store(0, com2) + Store(0, FLG1) + } +} + +// LNot (int) => Boolean +// +// Total scale of unacceptable types: +// Source: 0x1ed1 +// Total scale of acceptable types: +// Source: 0x402e +Method(m422, 1) +{ + Name(op, 22) + + ts00("m422") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + } +} + +// LNotEqual ({int|str|buf}, {int|str|buf}) => Boolean +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m423, 1) +{ + Name(op, 23) + + ts00("m423") + + // Expected results: 64-bit, 32-bit + Name(p000, Package() { + + // X - Integer + + Ones, Ones, + + // X - String + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, + + + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + "Exc", "Exc", "Exc", "Exc", "Exc", "Exc", + + // X - Buffer + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + + // X - Field Unit + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + + // X - Buffer Field + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p001, Package() { + + // X - Integer + + Ones, Ones, + + // X - String + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, + + // X - Buffer + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + + // X - Field Unit + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + + // X - Buffer Field + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p002, Package() { + + // X - Integer + + Ones, Ones, + + // X - String + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, + + // X - Buffer + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, "Exc", "Exc", "Exc", "Exc", + + // X - Field Unit + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + + // X - Buffer Field + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p003, Package() { + + // X - Integer + + Ones, Ones, + + // X - String + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Zero, Zero, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, + + // X - Buffer + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + + // X - Field Unit + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + + // X - Buffer Field + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p004, Package() { + + // X - Integer + + Ones, Ones, + + // X - String + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, + + // X - Buffer + + Ones, Ones, Ones, Ones, Zero, Zero, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + + // X - Field Unit + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + + // X - Buffer Field + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + }) + + // Expected results: 64-bit, 32-bit + Name(p005, Package() { + + // X - Integer + + Ones, Ones, + + // X - String + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, + + // X - Buffer + + Ones, Ones, Ones, Ones, Zero, Zero, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + + // X - Field Unit + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + + // X - Buffer Field + + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, + Ones, Ones, + }) + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + Store(1, FLG1) + + // (Integer ==> All other types) + // (All other types ==> Integer) + Store(2, com2) + Store(p000, PKG1) + Store(p001, PKG2) + m48b(op, 0x103) + + // (String ==> All other types) + // (All other types ==> String) + Store(2, com2) + Store(p002, PKG1) + Store(p003, PKG2) + m48b(op, 0x204) + + // (Buffer ==> All other types) + // (All other types ==> Buffer) + Store(2, com2) + Store(p004, PKG1) + Store(p005, PKG2) + m48b(op, 0x302) + + Store(PKG0, PKG1) + Store(PKG0, PKG2) + Store(0, com2) + Store(0, FLG1) + } +} + +// LOr (int, int) => Boolean +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m424, 1) +{ + Name(op, 24) + + ts00("m424") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// Match (pkg, byt, int, byt, int, int) => Ones | Integer +// +// Total scale of unacceptable types: +// +// Total Currently excluded from it +// SearchPackage: 0x5eef +// MatchObject1: 0x1ed1 +// MatchObject2: 0x1ed1 0x1ed1 (causes error) +// StartIndex: 0x1ed1 0x1ed1 (causes error) +// Total scale of acceptable types: +// SearchPackage: 0x0010 +// MatchObject1: 0x402e +// MatchObject2: 0x402e +// StartIndex: 0x402e +Method(m425, 1) +{ + Name(op, 25) + + ts00("m425") + + if (arg0) { + m486() + Store(0x400, df00) + Store(0x100, df01) + Store(0x100, df02) + Store(0x100, df03) + Store(0x100, df04) + Store(m488(op, 0x5eef, 0, 0x1ed1, 0x0000, 0x0000), Local7) + } else { + } +} + +// Mid ({str|buf}, int, int, Result) => Buffer or String +// +// Total scale of unacceptable types: +// +// Total Currently excluded from it +// Source: 0x1ed1 +// Index: 0x1ed1 0x0400 Op.Region (causes error) +// Length: 0x1ed1 0x0400 Op.Region (causes error) +// Total scale of acceptable types: +// Source: 0x402e +// Index: 0x402e +// Length: 0x402e +Method(m426, 1) +{ + Name(op, 26) + + ts00("m426") + + if (arg0) { + m486() + Store(0x200, df00) + Store(0x100, df01) + Store(0x100, df02) + Store(m488(op, 0x1ed1, 0x1ad1, 0x1ad1, 0, 0), Local7) + } else { + } +} + +// Mod (int, int, Result) => Integer +// +// Total scale of unacceptable types: +// Dividend: 0x1ed1 +// Divisor: 0x1ed1 +// Total scale of acceptable types: +// Dividend: 0x402e +// Divisor: 0x402e +Method(m427, 1) +{ + Name(op, 27) + + ts00("m427") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// Multiply (int, int, Result) => Integer +// +// Total scale of unacceptable types: +// Multiplicand: 0x1ed1 +// Multiplier: 0x1ed1 +// Total scale of acceptable types: +// Multiplicand: 0x402e +// Multiplier: 0x402e +Method(m428, 1) +{ + Name(op, 28) + + ts00("m428") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// NAnd (int, int, Result) => Integer +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m429, 1) +{ + Name(op, 29) + + ts00("m429") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// NOr (int, int, Result) => Integer +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m430, 1) +{ + Name(op, 30) + + ts00("m430") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// Not (int, Result) => Integer +// +// Total scale of unacceptable types: +// Source: 0x1ed1 +// Total scale of acceptable types: +// Source: 0x402e +Method(m431, 1) +{ + Name(op, 31) + + ts00("m431") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + } +} + +// ObjectType (any) => Integer +// +// Total scale of unacceptable types: +// Object: 0x0000 +// Total scale of acceptable types: +// Object: 0x5eff +Method(m432, 1) +{ + Name(op, 32) + + ts00("m432") + + if (arg0) { + m486() + +// Error: ObjectType failes with the Unitialized type + Store(m488(op, 0x0001, 0, 0, 0, 0), Local7) + + } else { + } +} + +// Or (int, int, Result) => Integer +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m433, 1) +{ + Name(op, 33) + + ts00("m433") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// RefOf (any) => ObjectReference +// +// Total scale of unacceptable types: +// Object: 0x0000 +// Total scale of acceptable types: +// Object: 0x5eff +Method(m434, 1) +{ + Name(op, 34) + + ts00("m434") + + if (arg0) { + m486() + +// Error: RefOf failes with the Unitialized type + Store(m488(op, 0x0001, 0, 0, 0, 0), Local7) + + } else { + } +} + +// Release (mux) +// +// Total scale of unacceptable types: +// SyncObject: 0x5cff +// Total scale of acceptable types: +// SyncObject: 0x0200 +Method(m435, 1) +{ + Name(op, 35) + + ts00("m435") + + if (arg0) { + m486() + Store(m488(op, 0x5cff, 0, 0, 0, 0), Local7) + } else { + } +} + +// Reset (evt) +// +// Total scale of unacceptable types: +// SyncObject: 0x5e7f +// Total scale of acceptable types: +// SyncObject: 0x0080 +Method(m436, 1) +{ + Name(op, 36) + + ts00("m436") + + if (arg0) { + m486() + Store(m488(op, 0x5e7f, 0, 0, 0, 0), Local7) + } else { + } +} + +// Return ({any|ref}) +// +// Total scale of unacceptable types: +// Arg: 0x0000 +// Total scale of acceptable types: +// Arg: 0x5eff +Method(m437, 1) +{ + Name(op, 37) + + ts00("m437") + + if (arg0) { + m486() + +// Error: Return failes with the Unitialized type + Store(m488(op, 0x0001, 0, 0, 0, 0), Local7) + + } else { + } +} + +// ShiftLeft (int, int, Result) => Integer +// +// Total scale of unacceptable types: +// Source: 0x1ed1 +// ShiftCount: 0x1ed1 +// Total scale of acceptable types: +// Source: 0x402e +// ShiftCount: 0x402e +Method(m438, 1) +{ + Name(op, 38) + + ts00("m438") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// ShiftRight (int, int, Result) => Integer +// +// Total scale of unacceptable types: +// Source: 0x1ed1 +// ShiftCount: 0x1ed1 +// Total scale of acceptable types: +// Source: 0x402e +// ShiftCount: 0x402e +Method(m439, 1) +{ + Name(op, 39) + + ts00("m439") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// Signal (evt) +// +// Total scale of unacceptable types: +// SyncObject: 0x5e7f +// Total scale of acceptable types: +// SyncObject: 0x0080 +Method(m440, 1) +{ + Name(op, 40) + + ts00("m440") + + if (arg0) { + m486() + Store(m488(op, 0x5e7f, 0, 0, 0, 0), Local7) + } else { + } +} + +// SizeOf ({int|str|buf|pkg}) => Integer +// +// Total scale of unacceptable types: +// ObjectName: 0x5ee3 +// Total scale of acceptable types: +// ObjectName: 0x004c +Method(m441, 1) +{ + Name(op, 41) + + ts00("m441") + + if (arg0) { + m486() + Store(m488(op, 0x5ee3, 0, 0, 0, 0), Local7) + } else { + } +} + +// Sleep (int) +// +// Total scale of unacceptable types: +// MilliSeconds: 0x1ed1 +// Total scale of acceptable types: +// MilliSeconds: 0x402e +Method(m442, 1) +{ + Name(op, 42) + + ts00("m442") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + } +} + +// Stall (int) +// +// Total scale of unacceptable types: +// MicroSeconds: 0x1ed1 +// Total scale of acceptable types: +// MicroSeconds: 0x402e +Method(m443, 1) +{ + Name(op, 43) + + ts00("m443") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + } +} + +// Store (any, Destination) => DataRefObject +// +// Total scale of unacceptable types: +// Source: 0x0000 +// Total scale of acceptable types: +// Source: 0x5eff +Method(m444, 1) +{ + Name(op, 44) + + ts00("m444") + + if (arg0) { + m486() + +// Error: Store failes with the Unitialized type + Store(m488(op, 0x0001, 0, 0, 0, 0), Local7) + + } else { + } +} + +// Subtract (int, int, Result) => Integer +// +// Total scale of unacceptable types: +// Minuend: 0x1ed1 +// Subtrahend: 0x1ed1 +// Total scale of acceptable types: +// Minuend: 0x402e +// Subtrahend: 0x402e +Method(m445, 1) +{ + Name(op, 45) + + ts00("m445") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// ToBCD (int, Result) => Integer +// +// Total scale of unacceptable types: +// Value: 0x1ed1 +// Total scale of acceptable types: +// Value: 0x402e +Method(m446, 1) +{ + Name(op, 46) + + ts00("m446") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + } +} + +// ToBuffer ({int|str|buf}, Result) => Buffer +// +// Total scale of unacceptable types: +// Data: 0x1ed1 +// Total scale of acceptable types: +// Data: 0x402e +Method(m447, 1) +{ + Name(op, 47) + + ts00("m447") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + } +} + +// ToDecimalString ({int|str|buf}, Result) => String +// +// Total scale of unacceptable types: +// Data: 0x1ed1 +// Total scale of acceptable types: +// Data: 0x402e +Method(m448, 1) +{ + Name(op, 48) + + ts00("m448") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + Store(m48d(op, 0x102, 0, 0, 0, "305419896", "305419896"), Local7) + Store(m48d(op, 0x204, 0, 0, 0, "9876", "9876"), Local7) + Store(m48d(op, 0x209, 0, 0, 0, "FdeAcb0132547698", "FdeAcb0132547698"), Local7) + Store(m48d(op, 0x302, 0, 0, 0, "129,130", "129,130"), Local7) + Store(m48d(op, 0x303, 0, 0, 0, "131,132,133,134", "131,132,133,134"), Local7) + Store(m48d(op, 0x506, 0, 0, 0, "6692061083885586008", "88,70,55,136,25,250,198,82"), Local7) + Store(m48d(op, 0xe06, 0, 0, 0, "6692061083885586008", "88,70,55,136,25,250,198,82"), Local7) + } +} + +// ToHexString ({int|str|buf}, Result) => String +// +// Total scale of unacceptable types: +// Data: 0x1ed1 +// Total scale of acceptable types: +// Data: 0x402e +Method(m449, 1) +{ + Name(op, 49) + + ts00("m449") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + Store(m48d(op, 0x102, 0, 0, 0, "0000000012345678", "12345678"), Local7) + Store(m48d(op, 0x204, 0, 0, 0, "9876", "9876"), Local7) + Store(m48d(op, 0x209, 0, 0, 0, "FdeAcb0132547698", "FdeAcb0132547698"), Local7) + Store(m48d(op, 0x302, 0, 0, 0, "81,82", "81,82"), Local7) + Store(m48d(op, 0x303, 0, 0, 0, "83,84,85,86", "83,84,85,86"), Local7) + Store(m48d(op, 0x506, 0, 0, 0, "6692061083885586008", "58,46,37,88,19,FA,C6,52"), Local7) + Store(m48d(op, 0xe06, 0, 0, 0, "6692061083885586008", "58,46,37,88,19,FA,C6,52"), Local7) + } +} + +// ToInteger ({int|str|buf}, Result) => Integer +// +// Total scale of unacceptable types: +// Data: 0x1ed1 +// Total scale of acceptable types: +// Data: 0x402e +Method(m450, 1) +{ + Name(op, 50) + + ts00("m450") + + if (arg0) { + m486() + Store(m488(op, 0x1ed1, 0, 0, 0, 0), Local7) + } else { + Store(m48d(op, 0x102, 0, 0, 0, 0x12345678, 0x12345678), Local7) + Store(m48d(op, 0x204, 0, 0, 0, 0x9876, 0x9876), Local7) + Store(m48d(op, 0x211, 0, 0, 0, 0xF1dAB98e0D794Bc5, 0xD794BC5), Local7) + Store(m48d(op, 0x302, 0, 0, 0, 0x8281, 0x8281), Local7) + Store(m48d(op, 0x303, 0, 0, 0, 0x86858483, 0x86858483), Local7) + Store(m48d(op, 0x506, 0, 0, 0, 0x52C6FA1988374658, 0x88374658), Local7) + Store(m48d(op, 0xe06, 0, 0, 0, 0x52C6FA1988374658, 0x88374658), Local7) + } +} + +// ToString (buf, int, Result) => String +// +// Total scale of unacceptable types: +// Source: 0x1ed1 +// Length: 0x1ed1 +// Total scale of acceptable types: +// Source: 0x402e +// Length: 0x402e +Method(m451, 1) +{ + Name(op, 51) + + ts00("m451") + + if (arg0) { + m486() + Store(0x300, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// Wait (evt, int) => Boolean +// +// Total scale of unacceptable types: +// SyncObject: 0x5e7f +// SyncObject: 0x1ed1 +// Total scale of acceptable types: +// SyncObject: 0x0080 +// SyncObject: 0x402e +Method(m452, 1) +{ + Name(op, 52) + + ts00("m452") + + if (arg0) { + m486() + Store(0x700, df00) + Store(0x100, df01) + Store(m488(op, 0x5e7f, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +// XOr (int, int, Result) => Integer +// +// Total scale of unacceptable types: +// Source1: 0x1ed1 +// Source2: 0x1ed1 +// Total scale of acceptable types: +// Source1: 0x402e +// Source2: 0x402e +Method(m453, 1) +{ + Name(op, 53) + + ts00("m453") + + if (arg0) { + m486() + Store(0x100, df00) + Store(0x100, df01) + Store(m488(op, 0x1ed1, 0x1ed1, 0, 0, 0), Local7) + } else { + } +} + +Method(m460, 1) +{ +if (1) { + m400(arg0) + m401(arg0) + m402(arg0) + m403(arg0) + m404(arg0) + m405(arg0) + m406(arg0) + m407(arg0) + m408(arg0) + m409(arg0) + m410(arg0) + m411(arg0) + m412(arg0) + m413(arg0) + m414(arg0) + m415(arg0) + m416(arg0) + m417(arg0) + m418(arg0) + m419(arg0) + m420(arg0) + m421(arg0) + m422(arg0) + m423(arg0) + m424(arg0) + m425(arg0) + m426(arg0) + m427(arg0) + m428(arg0) + m429(arg0) + m430(arg0) + m431(arg0) + m432(arg0) + m433(arg0) + m434(arg0) + m435(arg0) + m436(arg0) + m437(arg0) + m438(arg0) + m439(arg0) + m440(arg0) + m441(arg0) + m442(arg0) + m443(arg0) + m444(arg0) + m445(arg0) + m446(arg0) + m447(arg0) + m448(arg0) + m449(arg0) + m450(arg0) + m451(arg0) + m452(arg0) + m453(arg0) +} else { +// m400(arg0) +// m401(arg0) +// m402(arg0) +// m403(arg0) +// m407(arg0) +// m409(arg0) +// m411(arg0) +// m412(arg0) +// m414(arg0) +// m417(arg0) +// m418(arg0) +// m448(arg0) +// m449(arg0) +// m450(arg0) + +// m400(arg0) + m401(arg0) +} + +if (0) { + +Name(xxxx, 0) +Name(b000, Buffer(10) {}) +Name(s000, "000000000000000000000000000000") + +Store("-=-=-=-=-=-=-=-=-=-=-=", Debug) + +Store(LGreater(10, 5), Local0) +Store(Local0, Debug) +Store(LGreater(5, 10), Local0) +Store(Local0, Debug) + +Store(LGreater("11", 0x11), Local0) +Store(Local0, Debug) + +Store(LEqual("11", 0x11), Local0) +Store(Local0, Debug) + +Store("11", xxxx) +Store(xxxx, Debug) + + +Store(LGreater("11", 0x0fffffff), Local0) +Store(Local0, Debug) + +Store(LGreater(0x12, "11"), Local0) +Store(Local0, Debug) + +Store("1234567890abCdeF", xxxx) +Store(xxxx, Debug) + +Store("FdeAcb0132547698", xxxx) +Store(xxxx, Debug) + +Store("FdeAcb0132547698", xxxx) +Store(xxxx, Debug) + +// [ACPI Debug] Integer: 0x90ABCDEF +// [ACPI Debug] Integer: 0x32547698 + +Store("qwrt", b000) +Store(b000, Debug) + +// 71 77 72 74 00 00 00 00 00 00 + +Store(0xABEDF18942345678, s000) +Store(s000, Debug) + +// "ABEDF18942345678" + +Store("ABEDF18942345678", b000) +Store(b000, Debug) + +// 41 42 45 44 46 31 38 39 34 32 +} + +} + diff --git a/tests/aslts/src/runtime/common/conversion/rDECL.asl b/tests/aslts/src/runtime/common/conversion/rDECL.asl new file mode 100644 index 000000000..f70b55cf6 --- /dev/null +++ b/tests/aslts/src/runtime/common/conversion/rDECL.asl @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2006, Intel Corp. + * Copyright (C) 2006, Valery Podrezov <valery.a.podrezov@intel.com> + * Copyright (C) 2006, Fiodor Suietov <fiodor.f.suietov@intel.com> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// Implicit Result Object Conversion + +Include("../../../../runtime/common/conversion/rproc.asl") +Include("../../../../runtime/common/conversion/rtest.asl") diff --git a/tests/aslts/src/runtime/common/conversion/rproc.asl b/tests/aslts/src/runtime/common/conversion/rproc.asl new file mode 100644 index 000000000..84b117316 --- /dev/null +++ b/tests/aslts/src/runtime/common/conversion/rproc.asl @@ -0,0 +1,110 @@ +/* + * Copyright (c) 2006, Intel Corp. + * Copyright (C) 2006, Valery Podrezov <valery.a.podrezov@intel.com> + * Copyright (C) 2006, Fiodor Suietov <fiodor.f.suietov@intel.com> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +Name(z066, 66) + +// Verify result +// +// arg0 - name of test +// arg1 - results Package +// arg2 - index of four results +// arg3 - indication of Result +// arg4 - indication of ComputationalData +// arg5 - Result +// arg6 - ComputationalData +Method(m4c1, 7) +{ + Name(tmp0, 0) + Name(tmp1, 0) + Name(lpC0, 0) + + Multiply(arg2, 4, lpC0) + + if (arg3) { + + // Result + + // Benchmark of Result + Store(DeRefOf(Index(arg1, lpC0)), Local0) + Increment(lpC0) + Store(DeRefOf(Index(arg1, lpC0)), Local1) + + Store(ObjectType(arg5), tmp0) + + if (F64) { + Store(ObjectType(Local0), tmp1) + if (LNotEqual(tmp0, tmp1)) { + err(arg0, z066, 0, 0, 0, tmp0, tmp1) + } elseif (LNotEqual(arg5, Local0)) { + err(arg0, z066, 1, 0, 0, arg5, Local0) + } + } else { + Store(ObjectType(Local1), tmp1) + if (LNotEqual(tmp0, tmp1)) { + err(arg0, z066, 2, 0, 0, tmp0, tmp1) + } elseif (LNotEqual(arg5, Local1)) { + err(arg0, z066, 3, 0, 0, arg5, Local1) + } + } + } else { + Increment(lpC0) + } + + if (arg4) { + + // ComputationalData + + // Benchmark of ComputationalData + + Increment(lpC0) + Store(DeRefOf(Index(arg1, lpC0)), Local2) + Increment(lpC0) + Store(DeRefOf(Index(arg1, lpC0)), Local3) + + Store(ObjectType(arg6), tmp0) + + if (F64) { + Store(ObjectType(Local2), tmp1) + if (LNotEqual(tmp0, tmp1)) { + err(arg0, z066, 4, 0, 0, tmp0, tmp1) + } elseif (LNotEqual(arg6, Local2)) { + err(arg0, z066, 5, 0, 0, arg6, Local2) + } + } else { + Store(ObjectType(Local3), tmp1) + if (LNotEqual(tmp0, tmp1)) { + err(arg0, z066, 6, 0, 0, tmp0, tmp1) + } elseif (LNotEqual(arg6, Local3)) { + err(arg0, z066, 7, 0, 0, arg6, Local3) + } + } + } +} diff --git a/tests/aslts/src/runtime/common/conversion/rtest.asl b/tests/aslts/src/runtime/common/conversion/rtest.asl new file mode 100644 index 000000000..2b5c685b8 --- /dev/null +++ b/tests/aslts/src/runtime/common/conversion/rtest.asl @@ -0,0 +1,1414 @@ +/* + * Copyright (c) 2006, Intel Corp. + * Copyright (C) 2006, Valery Podrezov <valery.a.podrezov@intel.com> + * Copyright (C) 2006, Fiodor Suietov <fiodor.f.suietov@intel.com> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + ============================ + !!!!!!!!!!!!!!!!!!!!!!!!!!!! + IT IS IN PROGRESS !!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!! + ============================ +*/ + +// Implicit Result Object Conversion, complex test + +Name(z067, 67) + +// Integers +Name(ii00, 0) +Name(ii10, 0) + +// Strings +Name(ss00, "") +Name(ss10, "!@#$%^&*()_+=-[]{}") + +// Buffers +Name(bb00, Buffer(1) {}) +Name(bb80, Buffer(1) {}) +// Inside 32-bit Integer +Name(bb01, Buffer(3) {}) +Name(bb81, Buffer(3) {}) +// 32-bit Integer +Name(bb02, Buffer(4) {}) +Name(bb82, Buffer(4) {}) +// Inside 64-bit Integer +Name(bb03, Buffer(5) {}) +Name(bb83, Buffer(5) {}) +// Inside 64-bit Integer +Name(bb04, Buffer(8) {}) +Name(bb84, Buffer(8) {}) +// Size exceeding result +Name(bb05, Buffer(20) {}) +Name(bb85, Buffer(20) {}) + +// Buffer Fields +Name(bbff, Buffer(160) {}) +CreateField(bbff, 5, 27, bf00) +CreateField(bbff, 32, 47, bf01) +CreateField(bbff, 79, 27, bf10) +CreateField(bbff, 106, 47, bf11) +// Incomplete last byte +CreateField(bbff, 153, 111, bf02) +CreateField(bbff, 264, 111, bf12) +// Incomplete extra byte +CreateField(bbff, 375, 119, bf03) +CreateField(bbff, 494, 119, bf13) +// Size exceeding result +CreateField(bbff, 654, 160, bf04) +CreateField(bbff, 814, 160, bf14) +// 32-bit Integer +CreateField(bbff, 974, 32, bf05) +CreateField(bbff, 1006, 32, bf15) +// 64-bit Integer +CreateField(bbff, 1038, 64, bf06) +CreateField(bbff, 1102, 64, bf16) + +// Set all bytes of Buffer bbff to 0xff +Method(m565) +{ + Name(lpN0, 160) + Name(lpC0, 0) + + While (lpN0) { + + Store(0xff, Index(bbff, lpC0)) + + Decrement(lpN0) + Increment(lpC0) + } +} + +// Acquire (mux, wrd) => Boolean +Method(m500, 1) +{ + Name(ts, "m500") + ts00(ts) + + Mutex(mt00, 0) + Name(b000, Buffer() {0x00}) + + Store(Acquire(mt00, 0), ii10) + m4c0(ts, ii10, ZERO, ZERO) + + Store(Acquire(mt00, 0x0010), ss10) + m4c0(ts, ss10, "0000000000000000", "00000000") + + Store(Acquire(mt00, 0x0020), bb80) + m4c0(ts, bb80, b000, b000) +} + +// Add (int, int, Result) => Integer +Method(m501, 1) +{ + Name(ts, "m501") + ts00(ts) + + Name(b000, Buffer() {0x63}) + Name(b001, Buffer() {0x63}) + Name(b002, Buffer() {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, + 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f}) + Name(b003, Buffer() {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, + 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f}) + Name(b004, Buffer() {0x63,0xF4,0x9C,0x52,0x13,0xCF,0x8A,0,0,0,0,0,0,0,0,0}) + Name(b005, Buffer() {0x63,0xF4,0x9C,0x52,0,0,0,0,0,0,0,0,0,0,0,0}) + + // Integers + Store(Add(0x123456789abcda, 0x789abcda023789, ii00), ii10) + m4c0(ts, ii00, 0x008ACF13529CF463, 0x529CF463) + m4c0(ts, ii10, 0x008ACF13529CF463, 0x529CF463) + + // Strings + Store(Add(0x123456789abcda, 0x789abcda023789, ss00), ss10) + m4c0(ts, ss00, "008ACF13529CF463", "529CF463") + m4c0(ts, ss10, "008ACF13529CF463", "529CF463") + + // Buffers smaller than result + Store(Add(0x123456789abcda, 0x789abcda023789, bb00), bb80) + m4c0(ts, bb00, b000, b001) + m4c0(ts, bb80, b000, b001) + + // Buffers greater than result + Store(Add(0x123456789abcda, 0x789abcda023789, b002), b003) + m4c0(ts, b002, b004, b005) + m4c0(ts, b003, b004, b005) + + // Set fields (their source buffer) to zero + +// Store(bbff, Debug) + + m565() + Store(Add(0x123456789abcda, 0x789abcda023789, bf00), bf10) + m4c0(ts, bf00, b004, b005) + m4c0(ts, bf10, b004, b005) + +// !!! check the contents of bbff !!!!!!!!! + +// Store(bbff, Debug) +} + +// And (int, int, Result) => Integer +Method(m502, 1) +{ + Name(ts, "m502") + ts00(ts) +} + +// Concatenate ({int|str|buf}, {int|str|buf}, Result) => ComputationalData +Method(m503, 1) +{ + m563() + m564() +} + +Method(m563) +{ + Name(ts, "m503,s+s") + + // s+s -->> s -->> all combinations of Result and ComputationalData + + // Result 64-bit, 32-bit, ComputationalData 64-bit, 32-bit + Name(p000, Package() { + + // ============= With Result + + 0x00ABCDEF12345678, 0x12345678, 0x00ABCDEF12345678, 0x12345678, + 0x00ABCDEF12345678, 0x12345678, "abcdef12345678", "abcdef12345678", + 0x00ABCDEF12345678, 0x12345678, Buffer() {0x61}, Buffer() {0x61}, + 0x00ABCDEF12345678, 0x12345678, 0x04636261, 0x04636261, + 0x00ABCDEF12345678, 0x12345678, 0x0000666564636261, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + "abcdef12345678", "abcdef12345678", 0x00ABCDEF12345678, 0x12345678, + "abcdef12345678", "abcdef12345678", "abcdef12345678", "abcdef12345678", + "abcdef12345678", "abcdef12345678", Buffer() {0x61}, Buffer() {0x61}, + "abcdef12345678", "abcdef12345678", 0x04636261, 0x04636261, + "abcdef12345678", "abcdef12345678", 0x0000666564636261, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + Buffer() {0x61}, Buffer() {0x61}, 0x00ABCDEF12345678, 0x12345678, + Buffer() {0x61}, Buffer() {0x61}, "abcdef12345678", "abcdef12345678", + Buffer() {0x61}, Buffer() {0x61}, Buffer() {0x61}, Buffer() {0x61}, + Buffer() {0x61}, Buffer() {0x61}, 0x04636261, 0x04636261, + Buffer() {0x61}, Buffer() {0x61}, 0x0000666564636261, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + 0x0000000004636261, 0x04636261, 0x00ABCDEF12345678, 0x12345678, + 0x0000000004636261, 0x04636261, "abcdef12345678", "abcdef12345678", + 0x0000000004636261, 0x04636261, Buffer() {0x61}, Buffer() {0x61}, + 0x0000000004636261, 0x04636261, 0x0000000004636261, 0x04636261, + 0x0000000004636261, 0x04636261, 0x0000666564636261, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + 0x00ABCDEF12345678, 0x12345678, + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + "abcdef12345678", "abcdef12345678", + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + Buffer() {0x61}, Buffer() {0x61}, + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + 0x0000000004636261, 0x04636261, + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + + // ============= Result omited + + 0,0, 0x00ABCDEF12345678, 0x12345678, + 0,0, "abcdef12345678", "abcdef12345678", + 0,0, Buffer() {0x61}, Buffer() {0x61}, + 0,0, 0x04636261, 0x04636261, + 0,0, 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + + // ============= Store omited + + 0x00ABCDEF12345678, 0x12345678, 0,0, + "abcdef12345678", "abcdef12345678", 0,0, + Buffer() {0x61}, Buffer() {0x61}, 0,0, + 0x04636261, 0x04636261, 0,0, + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, 0,0, + + // ============= Particular additional cases + + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63}, Buffer() {0x61,0x62,0x63}, + Buffer() {0x61,0x62,0x63}, Buffer() {0x61,0x62,0x63}, + Buffer() {0x61,0x62,0x63,0x64}, Buffer() {0x61,0x62,0x63,0x64}, + Buffer() {0x61,0x62,0x63,0x64}, Buffer() {0x61,0x62,0x63,0x64}, + + Buffer() {0x61,0x62,0x63,0x64,0x65}, Buffer() {0x61,0x62,0x63,0x64,0x65}, + Buffer() {0x61,0x62,0x63,0x64,0x65}, Buffer() {0x61,0x62,0x63,0x64,0x65}, + + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + }) + + Store("abcdef", Local0) + Store("12345678", Local1) + + m562(ts, Local0, Local1, p000) + + // Source values are not corrupted + + Store(ObjectType(Local0), Local2) + if (LNotEqual(Local2, 2)) { + err(ts, z067, 0, 0, 0, Local2, 2) + } elseif (LNotEqual(Local0, "abcdef")) { + err(ts, z067, 1, 0, 0, Local0, "abcdef") + } + + Store(ObjectType(Local1), Local2) + if (LNotEqual(Local2, 2)) { + err(ts, z067, 2, 0, 0, Local2, 2) + } elseif (LNotEqual(Local1, "12345678")) { + err(ts, z067, 3, 0, 0, Local1, "12345678") + } +} + +Method(m564) +{ + Name(ts, "m503,b+b") + + // b+b -->> b -->> all combinations of Result and ComputationalData + + // Result 64-bit, 32-bit, ComputationalData 64-bit, 32-bit + Name(p000, Package() { + + // ============= With Result + + // i,i + 0x3231666564636261, 0x64636261, 0x3231666564636261, 0x64636261, + // i,s + 0x3231666564636261, 0x64636261, + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + // i,b + 0x3231666564636261, 0x64636261, Buffer() {0x61}, Buffer() {0x61}, + // i,bf(i,i) + 0x3231666564636261, 0x64636261, 0x04636261, 0x04636261, + // i,bf(i,b) + 0x3231666564636261, 0x64636261, + 0x0000666564636261, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + // s,i + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + 0x3231666564636261, 0x64636261, + // s,s + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + // s,b + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + Buffer() {0x61}, + Buffer() {0x61}, + // s,bf(i,i) + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + 0x0000000004636261, + 0x04636261, + // s,bf(i,b) + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + 0x0000666564636261, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + // b,i + Buffer() {0x61}, Buffer() {0x61}, 0x3231666564636261, 0x64636261, + // b,s + Buffer() {0x61}, Buffer() {0x61}, + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + // b,b + Buffer() {0x61}, Buffer() {0x61}, Buffer() {0x61}, Buffer() {0x61}, + // b,bf(i,i) + Buffer() {0x61}, Buffer() {0x61}, 0x04636261, 0x04636261, + // b,bf(i,b) + Buffer() {0x61}, Buffer() {0x61}, 0x0000666564636261, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + // bf(i,i),i + 0x0000000004636261, 0x04636261, 0x3231666564636261, 0x64636261, + // bf(i,i),s + 0x0000000004636261, 0x04636261, + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + // bf(i,i),b + 0x0000000004636261, 0x04636261, Buffer() {0x61}, Buffer() {0x61}, + // bf(i,i),bf(i,i) + 0x0000000004636261, 0x04636261, 0x0000000004636261, 0x04636261, + // bf(i,i),bf(i,b) + 0x0000000004636261, 0x04636261, 0x0000666564636261, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + // bf(i,b),i + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + 0x3231666564636261, 0x64636261, + // bf(i,b),s + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + // bf(i,b),b + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + Buffer() {0x61}, Buffer() {0x61}, + // bf(i,b),bf(i,i) + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + 0x0000000004636261, 0x04636261, + // bf(i,b),bf(i,b) + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + + // ============= Result omited + + // ,i + 0,0, 0x3231666564636261, 0x64636261, + // ,s + 0,0, "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + // ,b + 0,0, Buffer() {0x61}, Buffer() {0x61}, + // ,bf(i,i) + 0,0, 0x04636261, 0x04636261, + // b,bf(i,b) + 0,0, 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, + + // ============= Store omited + + // i, + 0x3231666564636261, 0x64636261, 0,0, + // s, + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + "61 62 63 64 65 66 31 32 33 34 35 36 37 38", + 0,0, + // b, + Buffer() {0x61}, Buffer() {0x61}, 0,0, + // bf(i,i), + 0x04636261, 0x04636261, 0,0, + // bf(i,b), + 0x0000666564636261, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}, 0,0, + + // ============= Particular additional cases + + // Buffer Field, incomplete last byte + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38}, + // Buffer Field, incomplete extra byte + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00}, + // Buffer Field, size exceeding result + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + // Buffer, inside 32-bit Integer + Buffer() {0x61,0x62,0x63}, Buffer() {0x61,0x62,0x63}, + Buffer() {0x61,0x62,0x63}, Buffer() {0x61,0x62,0x63}, + // Buffer, 32-bit Integer + Buffer() {0x61,0x62,0x63,0x64}, Buffer() {0x61,0x62,0x63,0x64}, + Buffer() {0x61,0x62,0x63,0x64}, Buffer() {0x61,0x62,0x63,0x64}, + // Buffer, inside 64-bit Integer + Buffer() {0x61,0x62,0x63,0x64,0x65}, Buffer() {0x61,0x62,0x63,0x64,0x65}, + Buffer() {0x61,0x62,0x63,0x64,0x65}, Buffer() {0x61,0x62,0x63,0x64,0x65}, + // Buffer, 64-bit Integer + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32}, + // Buffer, size exceeding result + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + Buffer() {0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32, + 0x33,0x34,0x35,0x36,0x37,0x38,0x00,0x00, + 0x00,0x00,0x00,0x00}, + }) + + Name(b000, Buffer() {0x61,0x62,0x63,0x64,0x65,0x66}) + Name(b001, Buffer() {0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38}) + + Store(b000, Local0) + Store(b001, Local1) + + m562(ts, Local0, Local1, p000) + + // Source values are not corrupted + + Store(ObjectType(Local0), Local2) + if (LNotEqual(Local2, 3)) { + err(ts, z067, 4, 0, 0, Local2, 3) + } elseif (LNotEqual(Local0, b000)) { + err(ts, z067, 5, 0, 0, Local0, b000) + } + + Store(ObjectType(Local1), Local2) + if (LNotEqual(Local2, 3)) { + err(ts, z067, 6, 0, 0, Local2, 3) + } elseif (LNotEqual(Local1, b001)) { + err(ts, z067, 7, 0, 0, Local1, b001) + } +} + +// arg0 - name of test +// arg1 - Source1 +// arg2 - Source2 +// arg3 - results +Method(m562, 4) +{ + ts00(arg0) + + // ============= With Result + // ii,is,ib,ibf + // si,ss,sb,sbf + // bi,bs,bb,bbf + // bfi,bfs,bfb,bfbf + + // i,i + Store(Concatenate(arg1, arg2, ii00), ii10) + m4c1(arg0, arg3, 0, 1, 1, ii00, ii10) + // i,s + Store(Concatenate(arg1, arg2, ii00), ss10) + m4c1(arg0, arg3, 1, 1, 1, ii00, ss10) + // i,b + Store(Concatenate(arg1, arg2, ii00), bb80) + m4c1(arg0, arg3, 2, 1, 1, ii00, bb80) + // i,bf(i,i) + Store(Concatenate(arg1, arg2, ii00), bf10) + m4c1(arg0, arg3, 3, 1, 1, ii00, bf10) + // i,bf(i,b) + Store(Concatenate(arg1, arg2, ii00), bf11) + m4c1(arg0, arg3, 4, 1, 1, ii00, bf11) + + // s,i + Store(Concatenate(arg1, arg2, ss00), ii10) + m4c1(arg0, arg3, 5, 1, 1, ss00, ii10) + // s,s + Store(Concatenate(arg1, arg2, ss00), ss10) + m4c1(arg0, arg3, 6, 1, 1, ss00, ss10) + // s,b + Store(Concatenate(arg1, arg2, ss00), bb80) + m4c1(arg0, arg3, 7, 1, 1, ss00, bb80) + // s,bf(i,i) + Store(Concatenate(arg1, arg2, ss00), bf10) + m4c1(arg0, arg3, 8, 1, 1, ss00, bf10) + // s,bf(i,b) + Store(Concatenate(arg1, arg2, ss00), bf11) + m4c1(arg0, arg3, 9, 1, 1, ss00, bf11) + + // b,i + Store(Concatenate(arg1, arg2, bb00), ii10) + m4c1(arg0, arg3, 10, 1, 1, bb00, ii10) + // b,s + Store(Concatenate(arg1, arg2, bb00), ss10) + m4c1(arg0, arg3, 11, 1, 1, bb00, ss10) + // b,b + Store(Concatenate(arg1, arg2, bb00), bb80) + m4c1(arg0, arg3, 12, 1, 1, bb00, bb80) + // b,bf(i,i) + Store(Concatenate(arg1, arg2, bb00), bf10) + m4c1(arg0, arg3, 13, 1, 1, bb00, bf10) + // b,bf(i,b) + Store(Concatenate(arg1, arg2, bb00), bf11) + m4c1(arg0, arg3, 14, 1, 1, bb00, bf11) + + // bf(i,i),i + Store(Concatenate(arg1, arg2, bf00), ii10) + m4c1(arg0, arg3, 15, 1, 1, bf00, ii10) + // bf(i,i),s + Store(Concatenate(arg1, arg2, bf00), ss10) + m4c1(arg0, arg3, 16, 1, 1, bf00, ss10) + // bf(i,i),b + Store(Concatenate(arg1, arg2, bf00), bb80) + m4c1(arg0, arg3, 17, 1, 1, bf00, bb80) + // bf(i,i),bf(i,i) + Store(Concatenate(arg1, arg2, bf00), bf10) + m4c1(arg0, arg3, 18, 1, 1, bf00, bf10) + // bf(i,i),bf(i,b) + Store(Concatenate(arg1, arg2, bf00), bf11) + m4c1(arg0, arg3, 19, 1, 1, bf00, bf11) + + // bf(i,b),i + Store(Concatenate(arg1, arg2, bf01), ii10) + m4c1(arg0, arg3, 20, 1, 1, bf01, ii10) + // bf(i,b),s + Store(Concatenate(arg1, arg2, bf01), ss10) + m4c1(arg0, arg3, 21, 1, 1, bf01, ss10) + // bf(i,b),b + Store(Concatenate(arg1, arg2, bf01), bb80) + m4c1(arg0, arg3, 22, 1, 1, bf01, bb80) + // bf(i,b),bf(i,i) + Store(Concatenate(arg1, arg2, bf01), bf10) + m4c1(arg0, arg3, 23, 1, 1, bf01, bf10) + // bf(i,b),bf(i,b) + Store(Concatenate(arg1, arg2, bf01), bf11) + m4c1(arg0, arg3, 24, 1, 1, bf01, bf11) + + // ============= Result omited + // ,i,s,b,bf + + // ,i + Store(Concatenate(arg1, arg2), ii10) + m4c1(arg0, arg3, 25, 0, 1, 0, ii10) + // ,s + Store(Concatenate(arg1, arg2), ss10) + m4c1(arg0, arg3, 26, 0, 1, 0, ss10) + // ,b + Store(Concatenate(arg1, arg2), bb80) + m4c1(arg0, arg3, 27, 0, 1, 0, bb80) + // ,bf(i,i) + Store(Concatenate(arg1, arg2), bf10) + m4c1(arg0, arg3, 28, 0, 1, 0, bf10) + // b,bf(i,b) + Store(Concatenate(arg1, arg2), bf11) + m4c1(arg0, arg3, 29, 0, 1, 0, bf11) + + // ============= Store omited + // i,s,b,bf, + + // i, + Concatenate(arg1, arg2, ii00) + m4c1(arg0, arg3, 30, 1, 0, ii00, 0) + // s, + Concatenate(arg1, arg2, ss00) + m4c1(arg0, arg3, 31, 1, 0, ss00, 0) + // b, + Concatenate(arg1, arg2, bb00) + m4c1(arg0, arg3, 32, 1, 0, bb00, 0) + // bf(i,i), + Concatenate(arg1, arg2, bf00) + m4c1(arg0, arg3, 33, 1, 0, bf00, 0) + // bf(i,b), + Concatenate(arg1, arg2, bf01) + m4c1(arg0, arg3, 34, 1, 0, bf01, 0) + + // ============= Particular additional cases + + // Buffer Field, incomplete last byte + Store(Concatenate(arg1, arg2, bf02), bf12) + m4c1(arg0, arg3, 35, 1, 1, bf02, bf12) + + // Buffer Field, incomplete extra byte + Store(Concatenate(arg1, arg2, bf03), bf13) + m4c1(arg0, arg3, 36, 1, 1, bf03, bf13) + + // Buffer Field, size exceeding result + Store(Concatenate(arg1, arg2, bf04), bf14) + m4c1(arg0, arg3, 37, 1, 1, bf04, bf14) + + // Buffer, inside 32-bit Integer + Store(Concatenate(arg1, arg2, bb01), bb81) + m4c1(arg0, arg3, 38, 1, 1, bb01, bb81) + + // Buffer, 32-bit Integer + Store(Concatenate(arg1, arg2, bb02), bb82) + m4c1(arg0, arg3, 39, 1, 1, bb02, bb82) + + // Buffer, inside 64-bit Integer + Store(Concatenate(arg1, arg2, bb03), bb83) + m4c1(arg0, arg3, 40, 1, 1, bb03, bb83) + + // Buffer, 64-bit Integer + Store(Concatenate(arg1, arg2, bb04), bb84) + m4c1(arg0, arg3, 41, 1, 1, bb04, bb84) + + // Buffer, size exceeding result + Store(Concatenate(arg1, arg2, bb05), bb85) + m4c1(arg0, arg3, 42, 1, 1, bb05, bb85) +} + +// ConcatenateResTemplate (rtb, rtb, Result) => Buffer +Method(m504, 1) +{ + Name(op, 4) + + Name(ts, "m504") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// CondRefOf (any, Result) => Boolean +Method(m505, 1) +{ + Name(op, 0) + + Name(ts, "m505") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// CopyObject (any, Destination) => DataRefObject +Method(m506, 1) +{ + Name(op, 0) + + Name(ts, "m506") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Decrement (int) => Integer +Method(m507, 1) +{ + Name(op, 0) + + Name(ts, "m507") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// DerefOf ({ref|str}) => Object +Method(m508, 1) +{ + Name(op, 0) + + Name(ts, "m508") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Divide (int, int, Remainder, Result) => Integer +Method(m509, 1) +{ + Name(op, 0) + + Name(ts, "m509") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// FindSetLeftBit (int, Result) => Integer +Method(m511, 1) +{ + Name(op, 0) + + Name(ts, "m511") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// FindSetRightBit (int, Result) => Integer +Method(m512, 1) +{ + Name(op, 0) + + Name(ts, "m512") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// FromBCD (int, Result) => Integer +Method(m513, 1) +{ + Name(op, 0) + + Name(ts, "m513") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Increment (int) => Integer +Method(m514, 1) +{ + Name(op, 0) + + Name(ts, "m514") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Index ({str|buf|pkg}, int, Destination) => ObjectReference +Method(m515, 1) +{ + Name(op, 0) + + Name(ts, "m515") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// LAnd (int, int) => Boolean +Method(m516, 1) +{ + Name(op, 0) + + Name(ts, "m516") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// LEqual ({int|str|buf}, {int|str|buf}) => Boolean +Method(m517, 1) +{ + Name(op, 0) + + Name(ts, "m517") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// LGreater ({int|str|buf}, {int|str|buf}) => Boolean +Method(m518, 1) +{ + Name(op, 0) + + Name(ts, "m518") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// LGreaterEqual ({int|str|buf}, {int|str|buf}) => Boolean +Method(m519, 1) +{ + Name(op, 0) + + Name(ts, "m519") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// LLess ({int|str|buf}, {int|str|buf}) => Boolean +Method(m520, 1) +{ + Name(op, 0) + + Name(ts, "m520") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// LLessEqual ({int|str|buf}, {int|str|buf}) => Boolean +Method(m521, 1) +{ + Name(op, 0) + + Name(ts, "m521") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// LNot (int) => Boolean +Method(m522, 1) +{ + Name(op, 0) + + Name(ts, "m522") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// LNotEqual ({int|str|buf}, {int|str|buf}) => Boolean +Method(m523, 1) +{ + Name(op, 0) + + Name(ts, "m523") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// LOr (int, int) => Boolean +Method(m524, 1) +{ + Name(op, 0) + + Name(ts, "m524") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Match (pkg, byt, int, byt, int, int) => Ones | Integer +Method(m525, 1) +{ + Name(op, 0) + + Name(ts, "m525") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Mid ({str|buf}, int, int, Result) => Buffer or String +Method(m526, 1) +{ + Name(op, 0) + + Name(ts, "m526") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Mod (int, int, Result) => Integer +Method(m527, 1) +{ + Name(op, 0) + + Name(ts, "m527") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Multiply (int, int, Result) => Integer +Method(m528, 1) +{ + Name(op, 0) + + Name(ts, "m528") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// NAnd (int, int, Result) => Integer +Method(m529, 1) +{ + Name(op, 0) + + Name(ts, "m529") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// NOr (int, int, Result) => Integer +Method(m530, 1) +{ + Name(op, 0) + + Name(ts, "m530") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Not (int, Result) => Integer +Method(m531, 1) +{ + Name(op, 0) + + Name(ts, "m531") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// ObjectType (any) => Integer +Method(m532, 1) +{ + Name(op, 0) + + Name(ts, "m532") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Or (int, int, Result) => Integer +Method(m533, 1) +{ + Name(op, 0) + + Name(ts, "m533") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// RefOf (any) => ObjectReference +Method(m534, 1) +{ + Name(op, 0) + + Name(ts, "m534") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Return ({any|ref}) +Method(m537, 1) +{ + Name(op, 0) + + Name(ts, "m537") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// ShiftLeft (int, int, Result) => Integer +Method(m538, 1) +{ + Name(op, 0) + + Name(ts, "m538") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// ShiftRight (int, int, Result) => Integer +Method(m539, 1) +{ + Name(op, 0) + + Name(ts, "m539") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// SizeOf ({int|str|buf|pkg}) => Integer +Method(m541, 1) +{ + Name(op, 0) + + Name(ts, "m541") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Store (any, Destination) => DataRefObject +Method(m544, 1) +{ + Name(ts, "m544") + + ts00(ts) + + Name(ss00, "DEF") + Store("ABC", ss00) + + Store(ObjectType(ss00), Local0) + if (LNotEqual(Local0, 2)) { + err(ts, z067, 8, 0, 0, Local0, 2) + } elseif (LNotEqual(ss00, "ABC")) { + err(ts, z067, 9, 0, 0, ss00, "ABC") + } + + // If the string is shorter than the buffer, the buffer size is reduced. + + Name(b000, Buffer(200) {}) + Name(b001, Buffer() {0x41,0x42,0x43,0x44,0x45,0x46}) + + Store("ABCDEF", b000) + Store(ObjectType(b000), Local0) + Store(SizeOf(b000), Local1) + + if (LNotEqual(Local0, 3)) { + err(ts, z067, 10, 0, 0, Local0, 3) + } elseif (LNotEqual(Local1, 6)) { + err(ts, z067, 11, 0, 0, Local1, 6) + } elseif (LNotEqual(b000, b001)) { + err(ts, z067, 12, 0, 0, b000, b001) + } + +/* + Store("================ 000000000:", Debug) + Store(Local0, Debug) + Store(Local1, Debug) + + + CopyObject("ABC", b000) + Store(SizeOf(b000), Local0) + Store(ObjectType(b000), Local1) + + Store("================ 000000000:", Debug) + Store(Local0, Debug) + Store(Local1, Debug) +*/ +} + +// Subtract (int, int, Result) => Integer +Method(m545, 1) +{ + Name(op, 0) + + Name(ts, "m545") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// ToBCD (int, Result) => Integer +Method(m546, 1) +{ + Name(op, 0) + + Name(ts, "m546") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// ToBuffer ({int|str|buf}, Result) => Buffer +Method(m547, 1) +{ + Name(op, 0) + + Name(ts, "m547") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// ToDecimalString ({int|str|buf}, Result) => String +Method(m548, 1) +{ + Name(op, 0) + + Name(ts, "m548") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// ToHexString ({int|str|buf}, Result) => String +Method(m549, 1) +{ + Name(op, 0) + + Name(ts, "m549") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// ToInteger ({int|str|buf}, Result) => Integer +Method(m550, 1) +{ + Name(op, 0) + + Name(ts, "m550") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// ToString (buf, int, Result) => String +Method(m551, 1) +{ + Name(op, 0) + + Name(ts, "m551") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// Wait (evt, int) => Boolean +Method(m552, 1) +{ + Name(op, 0) + + Name(ts, "m552") + + ts00(ts) + + if (arg0) { + } else { + } +} + +// XOr (int, int, Result) => Integer +Method(m553, 1) +{ + Name(op, 0) + + Name(ts, "m553") + + ts00(ts) + + if (arg0) { + } else { + } +} + +Method(m560, 1) +{ +/* + m500(arg0) + m501(arg0) + m502(arg0) + m503(arg0) + m504(arg0) + m505(arg0) + m506(arg0) + m507(arg0) + m508(arg0) + m509(arg0) + m511(arg0) + m512(arg0) + m513(arg0) + m514(arg0) + m515(arg0) + m516(arg0) + m517(arg0) + m518(arg0) + m519(arg0) + m520(arg0) + m521(arg0) + m522(arg0) + m523(arg0) + m524(arg0) + m525(arg0) + m526(arg0) + m527(arg0) + m528(arg0) + m529(arg0) + m530(arg0) + m531(arg0) + m532(arg0) + m533(arg0) + m534(arg0) + m537(arg0) + m538(arg0) + m539(arg0) + m541(arg0) + m544(arg0) + m545(arg0) + m546(arg0) + m547(arg0) + m548(arg0) + m549(arg0) + m550(arg0) + m551(arg0) + m552(arg0) + m553(arg0) +*/ + + m500(arg0) + m501(arg0) + m502(arg0) + m503(arg0) + m544(arg0) +} |