1/*
2 * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without modification,
6 * are permitted provided that the following conditions are met:
7 *
8 * Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 * Redistributions in binary form must reproduce the above copyright notice,
11 * this list of conditions and the following disclaimer in the documentation
12 * and/or other materials provided with the distribution.
13 * Neither the name of Intel Corporation nor the names of its contributors
14 * may be used to endorse or promote products derived from this software
15 * without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29/*
30 * Method execution control
31 *
32 * Switch, Case(Package), Default operators
33 */
34
35/*
36SEE: why exception doesnt occur for uninitialized elements there??????
37SEE: use all the specific cases specified in DOCUMENT 1.
38SEE: add the tests for "Specification of Match should explicitly say
39     that no exceptions occur while this "cruising through the package""
40*/
41
42Name(z072, 72)
43
44// The same as m0df and m0e0 but with Packages
45Method(m0e7, 1)
46{
47	Switch (arg0) {
48
49		// Buffer
50
51		Case (Package(1) {Buffer(1){10}}) {
52			Store(0, Local7)
53		}
54		Case (Package() {Buffer(2){11,12}}) {
55			Store(1, Local7)
56		}
57		Case (Package() {Buffer() {13,14,15}}) {
58			Store(2, Local7)
59		}
60		Case (Package() {Buffer(2){16,17,18}}) {
61			Store(3, Local7)
62		}
63		Case (Package() {Buffer(3){19,20}}) {
64			Store(4, Local7)
65		}
66		Case (Package() {Buffer(3){21,22,23}}) {
67			Store(5, Local7)
68		}
69		Case (Package() {Buffer(4){24,25,26,27}}) {
70			Store(6, Local7)
71		}
72		Case (Package() {Buffer(5){28,29,30,31,32}}) {
73			Store(7, Local7)
74		}
75		Case (Package() {Buffer(8){33,34,35,36,37,38,39,40}}) {
76			Store(8, Local7)
77		}
78		Case (Package() {Buffer(){0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0}}) {
79			Store(9, Local7)
80		}
81		Case (Package() {Buffer(9){41,42,43,44,45,46,47,48,49}}) {
82			Store(10, Local7)
83		}
84		Case (Package() {Buffer(67){0x7d}}) {
85			Store(11, Local7)
86		}
87		Case (Package() {Buffer() {
88			0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,
89			0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
90			0x00,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
91			0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
92			0x10,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
93			0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
94			0x20,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
95			0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
96			0x30,0x41,0x42}}) {
97			Store(12, Local7)
98		}
99		Case (Package() {Buffer(67) {
100			0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,
101			0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
102			0x00,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
103			0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
104			0x10,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
105			0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
106			0x20,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
107			0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
108			0x30,0x41,0x42}}) {
109			Store(13, Local7)
110		}
111		Case (Package() {Buffer(4){0,0,0,0}}) {
112			Store(14, Local7)
113		}
114		Case (Package() {Buffer(8){0,0,0,0,0,0,0,0}}) {
115			Store(15, Local7)
116		}
117		Case (Package() {Buffer(4){0xff,0xff,0xff,0xff}}) {
118			Store(16, Local7)
119		}
120		Case (Package() {Buffer(9){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}}) {
121			Store(17, Local7)
122		}
123		Case (Package() {Buffer(8){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}}) {
124			Store(18, Local7)
125		}
126		Case (Package() {Buffer(5){0xff,0xff,0xff,0xff,0xff}}) {
127			Store(19, Local7)
128		}
129		Case (Package() {Buffer(1){0xff}}) {
130			Store(20, Local7)
131		}
132		Case (Package() {Buffer(1){}}) {
133			Store(21, Local7)
134		}
135		Case (Package() {Buffer(5){}}) {
136			Store(22, Local7)
137		}
138		Case (Package() {Buffer(9){}}) {
139			Store(23, Local7)
140		}
141		Case (Package() {Buffer(9){0xab, 0xcd, 0xef}}) {
142			Store(24, Local7)
143		}
144
145		// String
146
147		Case (Package() {"0321"}) {
148			Store(25, Local7)
149		}
150		Case (Package() {"321"}) {
151			Store(26, Local7)
152		}
153		Case (Package() {"ba9876"}) {
154			Store(27, Local7)
155		}
156		Case (Package() {"c179b3fe"}) {
157			Store(28, Local7)
158		}
159		Case (Package() {"fe7cb391d650a284"}) {
160			Store(29, Local7)
161		}
162		Case (Package() {"ffffffff"}) {
163			Store(30, Local7)
164		}
165		Case (Package() {"ffffffffffffffff"}) {
166			Store(31, Local7)
167		}
168		Case (Package() {"ffffffffff"}) {
169			Store(32, Local7)
170		}
171		Case (Package() {"ff"}) {
172			Store(33, Local7)
173		}
174		Case (Package() {"987654321"}) {
175			Store(34, Local7)
176		}
177		Case (Package() {"0xfe7cb3"}) {
178			Store(35, Local7)
179		}
180
181		// Integer
182
183		Case (Package() {0321}) {
184			Store(36, Local7)
185		}
186		Case (Package() {9876543210}) {
187			Store(37, Local7)
188		}
189		Case (Package() {0xc179b3fe}) {
190			Store(38, Local7)
191		}
192		Case (Package() {0xfe7cb391d650a284}) {
193			Store(39, Local7)
194		}
195		Case (Package() {0}) {
196			Store(40, Local7)
197		}
198		Case (Package() {0xffffffff}) {
199			Store(41, Local7)
200		}
201		Case (Package() {0xffffffffffffffff}) {
202			Store(42, Local7)
203		}
204		Case (Package() {0xff}) {
205			Store(43, Local7)
206		}
207		Case (Package() {0xabcdef}) {
208			Store(44, Local7)
209		}
210
211		Default {
212			Store(45, Local7)
213		}
214	}
215
216	return (Local7)
217}
218
219Method(m0e8, 1)
220{
221	// Integer
222
223	Store(m0e7(0321), Local0)
224	if (LNotEqual(Local0, 36)) {
225		err(arg0, z072, 0, 0, 0, Local0, 36)
226	}
227	Store(m0e7(0xd1), Local0)
228	if (LNotEqual(Local0, 36)) {
229		err(arg0, z072, 1, 0, 0, Local0, 36)
230	}
231	Store(m0e7(9876543210), Local0)
232	if (LNotEqual(Local0, 37)) {
233		err(arg0, z072, 2, 0, 0, Local0, 37)
234	}
235	Store(m0e7(0xc179b3fe), Local0)
236	if (LNotEqual(Local0, 28)) {
237		err(arg0, z072, 4, 0, 0, Local0, 28)
238	}
239	Store(m0e7(0xfe7cb391d650a284), Local0)
240	if (F64) {
241		if (LNotEqual(Local0, 29)) {
242			err(arg0, z072, 0x1005, 0, 0, Local0, 29)
243		}
244	} else {
245		if (LNotEqual(Local0, 39)) {
246			err(arg0, z072, 0x101, 0, 0, Local0, 39)
247		}
248	}
249	Store(m0e7(0), Local0)
250	if (LNotEqual(Local0, 14)) {
251		err(arg0, z072, 6, 0, 0, Local0, 14)
252	}
253	Store(m0e7(0xffffffff), Local0)
254	if (LNotEqual(Local0, 16)) {
255		err(arg0, z072, 7, 0, 0, Local0, 16)
256	}
257	Store(m0e7(0xffffffffffffffff), Local0)
258	if (F64) {
259		if (LNotEqual(Local0, 17)) {
260			err(arg0, z072, 8, 0, 0, Local0, 17)
261		}
262	} else {
263		if (LNotEqual(Local0, 16)) {
264			err(arg0, z072, 9, 0, 0, Local0, 16)
265		}
266	}
267	Store(m0e7(0xff), Local0)
268	if (LNotEqual(Local0, 20)) {
269		err(arg0, z072, 10, 0, 0, Local0, 20)
270	}
271	Store(m0e7(0xabcdef), Local0)
272	if (LNotEqual(Local0, 44)) {
273		err(arg0, z072, 11, 0, 0, Local0, 44)
274	}
275}
276
277// The same as m0e3 and m0e4 but with Packages
278Method(m0e9, 1)
279{
280	Switch (ToString(arg0)) {
281
282		// Integer
283
284		Case (Package() {0321}) {
285			Store(0, Local7)
286		}
287		Case (Package() {9876543210}) {
288			Store(1, Local7)
289		}
290		Case (Package() {0xc179b3fe}) {
291			Store(2, Local7)
292		}
293		Case (Package() {0xfe7cb391d650a284}) {
294			Store(3, Local7)
295		}
296		Case (Package() {0}) {
297			Store(4, Local7)
298		}
299		Case (Package() {0xffffffff}) {
300			Store(5, Local7)
301		}
302		Case (Package() {0xffffffffffffffff}) {
303			Store(6, Local7)
304		}
305		Case (Package() {0xff}) {
306			Store(7, Local7)
307		}
308		Case (Package() {0xabcdef}) {
309			Store(8, Local7)
310		}
311
312		// Buffer
313
314		Case (Package() {Buffer(1){10}}) {
315			Store(9, Local7)
316		}
317		Case (Package() {Buffer(2){11,12}}) {
318			Store(10, Local7)
319		}
320		Case (Package() {Buffer() {13,14,15}}) {
321			Store(11, Local7)
322		}
323		Case (Package() {Buffer(2){16,17,18}}) {
324			Store(12, Local7)
325		}
326		Case (Package() {Buffer(3){19,20}}) {
327			Store(13, Local7)
328		}
329		Case (Package() {Buffer(3){21,22,23}}) {
330			Store(14, Local7)
331		}
332		Case (Package() {Buffer(4){24,25,26,27}}) {
333			Store(15, Local7)
334		}
335		Case (Package() {Buffer(5){28,29,30,31,32}}) {
336			Store(16, Local7)
337		}
338		Case (Package() {Buffer(8){33,34,35,36,37,38,39,40}}) {
339			Store(17, Local7)
340		}
341		Case (Package() {Buffer(){0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0}}) {
342			Store(18, Local7)
343		}
344		Case (Package() {Buffer(9){41,42,43,44,45,46,47,48,49}}) {
345			Store(19, Local7)
346		}
347		Case (Package() {Buffer(67){0x7d}}) {
348			Store(20, Local7)
349		}
350		Case (Package() {Buffer() {
351			0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,
352			0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
353			0x00,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
354			0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
355			0x10,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
356			0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
357			0x20,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
358			0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
359			0x30,0x41,0x42}}) {
360			Store(21, Local7)
361		}
362		Case (Package() {Buffer(67) {
363			0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,
364			0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
365			0x00,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
366			0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
367			0x10,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
368			0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
369			0x20,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
370			0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
371			0x30,0x41,0x42}}) {
372			Store(22, Local7)
373		}
374		Case (Package() {Buffer(4){0,0,0,0}}) {
375			Store(23, Local7)
376		}
377		Case (Package() {Buffer(8){0,0,0,0,0,0,0,0}}) {
378			Store(24, Local7)
379		}
380		Case (Package() {Buffer(4){0xff,0xff,0xff,0xff}}) {
381			Store(25, Local7)
382		}
383		Case (Package() {Buffer(9){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}}) {
384			Store(26, Local7)
385		}
386		Case (Package() {Buffer(8){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}}) {
387			Store(27, Local7)
388		}
389		Case (Package() {Buffer(5){0xff,0xff,0xff,0xff,0xff}}) {
390			Store(28, Local7)
391		}
392		Case (Package() {Buffer(1){0xff}}) {
393			Store(29, Local7)
394		}
395		Case (Package() {Buffer(1){}}) {
396			Store(30, Local7)
397		}
398		Case (Package() {Buffer(5){}}) {
399			Store(31, Local7)
400		}
401		Case (Package() {Buffer(9){}}) {
402			Store(32, Local7)
403		}
404		Case (Package() {Buffer(9){0xab, 0xcd, 0xef}}) {
405			Store(33, Local7)
406		}
407
408		// String
409
410		Case (Package() {"0321"}) {
411			Store(34, Local7)
412		}
413		Case (Package() {"321"}) {
414			Store(35, Local7)
415		}
416		Case (Package() {"ba9876"}) {
417			Store(36, Local7)
418		}
419		Case (Package() {"c179b3fe"}) {
420			Store(37, Local7)
421		}
422		Case (Package() {"fe7cb391d650a284"}) {
423			Store(38, Local7)
424		}
425		Case (Package() {"ffffffff"}) {
426			Store(39, Local7)
427		}
428		Case (Package() {"ffffffffffffffffff"}) {
429			Store(40, Local7)
430		}
431		Case (Package() {"ffffffffffffffff"}) {
432			Store(41, Local7)
433		}
434		Case (Package() {"ffffffffff"}) {
435			Store(42, Local7)
436		}
437		Case (Package() {"ff"}) {
438			Store(43, Local7)
439		}
440		Case (Package() {"fe7cb391d650a2841"}) {
441			Store(44, Local7)
442		}
443		Case (Package() {"987654321"}) {
444			Store(45, Local7)
445		}
446		Case (Package() {"0xfe7cb3"}) {
447			Store(46, Local7)
448		}
449		Case (Package() {"1234q"}) {
450			Store(47, Local7)
451		}
452		Case (Package() {"qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdf"}) {
453			Store(48, Local7)
454		}
455		Case (Package() {""}) {
456			Store(49, Local7)
457		}
458		Case (Package() {" "}) {
459			Store(50, Local7)
460		}
461		Case (Package() {"`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?"}) {
462			Store(51, Local7)
463		}
464		Case (Package() {"abcdef"}) {
465			Store(52, Local7)
466		}
467		Case (Package() {"ABCDEF"}) {
468			Store(53, Local7)
469		}
470
471		Default {
472			Store(54, Local7)
473		}
474	}
475
476	return (Local7)
477}
478
479Method(m0ea, 1)
480{
481	// String
482
483	Store(m0e9("0321"), Local0)
484	if (LNotEqual(Local0, 34)) {
485		err(arg0, z072, 12, 0, 0, Local0, 34)
486	}
487	Store(m0e9("321"), Local0)
488	if (LNotEqual(Local0, 35)) {
489		err(arg0, z072, 13, 0, 0, Local0, 35)
490	}
491	Store(m0e9("ba9876"), Local0)
492	if (LNotEqual(Local0, 36)) {
493		err(arg0, z072, 14, 0, 0, Local0, 36)
494	}
495	Store(m0e9("c179b3fe"), Local0)
496	if (LNotEqual(Local0, 37)) {
497		err(arg0, z072, 15, 0, 0, Local0, 37)
498	}
499	Store(m0e9("fe7cb391d650a284"), Local0)
500	if (LNotEqual(Local0, 38)) {
501		err(arg0, z072, 16, 0, 0, Local0, 38)
502	}
503	Store(m0e9("ffffffff"), Local0)
504	if (LNotEqual(Local0, 39)) {
505		err(arg0, z072, 17, 0, 0, Local0, 39)
506	}
507	Store(m0e9("ffffffffffffffffff"), Local0)
508	if (LNotEqual(Local0, 40)) {
509		err(arg0, z072, 18, 0, 0, Local0, 40)
510	}
511	Store(m0e9("ffffffffffffffff"), Local0)
512	if (LNotEqual(Local0, 41)) {
513		err(arg0, z072, 19, 0, 0, Local0, 41)
514	}
515	Store(m0e9("ffffffffff"), Local0)
516	if (LNotEqual(Local0, 42)) {
517		err(arg0, z072, 20, 0, 0, Local0, 42)
518	}
519	Store(m0e9("ff"), Local0)
520	if (LNotEqual(Local0, 43)) {
521		err(arg0, z072, 21, 0, 0, Local0, 43)
522	}
523	Store(m0e9("fe7cb391d650a2841"), Local0)
524	if (LNotEqual(Local0, 44)) {
525		err(arg0, z072, 22, 0, 0, Local0, 44)
526	}
527	Store(m0e9("987654321"), Local0)
528	if (LNotEqual(Local0, 45)) {
529		err(arg0, z072, 23, 0, 0, Local0, 45)
530	}
531	Store(m0e9("0xfe7cb3"), Local0)
532	if (LNotEqual(Local0, 46)) {
533		err(arg0, z072, 24, 0, 0, Local0, 46)
534	}
535	Store(m0e9("1234q"), Local0)
536	if (LNotEqual(Local0, 47)) {
537		err(arg0, z072, 25, 0, 0, Local0, 47)
538	}
539	Store(m0e9(BIG0), Local0)
540	if (LNotEqual(Local0, 48)) {
541		err(arg0, z072, 26, 0, 0, Local0, 48)
542	}
543	Store(m0e9(""), Local0)
544	if (LNotEqual(Local0, 49)) {
545		err(arg0, z072, 27, 0, 0, Local0, 49)
546	}
547	Store(m0e9(" "), Local0)
548	if (LNotEqual(Local0, 50)) {
549		err(arg0, z072, 28, 0, 0, Local0, 50)
550	}
551	Store(m0e9(ALL0), Local0)
552	if (LNotEqual(Local0, 51)) {
553		err(arg0, z072, 29, 0, 0, Local0, 51)
554	}
555	Store(m0e9("abcdef"), Local0)
556	if (LNotEqual(Local0, 52)) {
557		err(arg0, z072, 30, 0, 0, Local0, 52)
558	}
559	Store(m0e9("ABCDEF"), Local0)
560	if (LNotEqual(Local0, 53)) {
561		err(arg0, z072, 31, 0, 0, Local0, 53)
562	}
563}
564
565// The same as m0e5 and m0e6 but with Packages
566Method(m0eb, 1)
567{
568	Switch (ToBuffer(arg0)) {
569
570		// Integer
571
572		Case (Package() {0321}) {
573			Store(0, Local7)
574		}
575		Case (Package() {9876543210}) {
576			Store(1, Local7)
577		}
578		Case (Package() {0xc179b3fe}) {
579			Store(2, Local7)
580		}
581		Case (Package() {0xfe7cb391d650a284}) {
582			Store(3, Local7)
583		}
584		Case (Package() {0}) {
585			Store(4, Local7)
586		}
587		Case (Package() {0xffffffff}) {
588			Store(5, Local7)
589		}
590		Case (Package() {0xffffffffffffffff}) {
591			Store(6, Local7)
592		}
593		Case (Package() {0xff}) {
594			Store(7, Local7)
595		}
596		Case (Package() {0xabcdef}) {
597			Store(8, Local7)
598		}
599
600		// String
601
602		Case (Package() {"0321"}) {
603			Store(9, Local7)
604		}
605		Case (Package() {"321"}) {
606			Store(10, Local7)
607		}
608		Case (Package() {"ba9876"}) {
609			Store(11, Local7)
610		}
611		Case (Package() {"c179b3fe"}) {
612			Store(12, Local7)
613		}
614		Case (Package() {"fe7cb391d650a284"}) {
615			Store(13, Local7)
616		}
617		Case (Package() {"ffffffff"}) {
618			Store(14, Local7)
619		}
620		Case (Package() {"ffffffffffffffffff"}) {
621			Store(15, Local7)
622		}
623		Case (Package() {"ffffffffffffffff"}) {
624			Store(16, Local7)
625		}
626		Case (Package() {"ffffffffff"}) {
627			Store(17, Local7)
628		}
629		Case (Package() {"ff"}) {
630			Store(18, Local7)
631		}
632		Case (Package() {"fe7cb391d650a2841"}) {
633			Store(19, Local7)
634		}
635		Case (Package() {"987654321"}) {
636			Store(20, Local7)
637		}
638		Case (Package() {"0xfe7cb3"}) {
639			Store(21, Local7)
640		}
641		Case (Package() {"1234q"}) {
642			Store(22, Local7)
643		}
644		Case (Package() {"qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdf"}) {
645			Store(23, Local7)
646		}
647		Case (Package() {""}) {
648			Store(24, Local7)
649		}
650		Case (Package() {" "}) {
651			Store(25, Local7)
652		}
653		Case (Package() {"`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?"}) {
654			Store(26, Local7)
655		}
656		Case (Package() {"abcdef"}) {
657			Store(27, Local7)
658		}
659		Case (Package() {"ABCDEF"}) {
660			Store(28, Local7)
661		}
662
663		// Buffer
664
665		Case (Package() {Buffer(1){10}}) {
666			Store(29, Local7)
667		}
668		Case (Package() {Buffer(2){11,12}}) {
669			Store(30, Local7)
670		}
671		Case (Package() {Buffer() {13,14,15}}) {
672			Store(31, Local7)
673		}
674		Case (Package() {Buffer(2){16,17,18}}) {
675			Store(32, Local7)
676		}
677		Case (Package() {Buffer(3){19,20}}) {
678			Store(33, Local7)
679		}
680		Case (Package() {Buffer(3){21,22,23}}) {
681			Store(34, Local7)
682		}
683		Case (Package() {Buffer(4){24,25,26,27}}) {
684			Store(35, Local7)
685		}
686		Case (Package() {Buffer(5){28,29,30,31,32}}) {
687			Store(36, Local7)
688		}
689		Case (Package() {Buffer(8){33,34,35,36,37,38,39,40}}) {
690			Store(37, Local7)
691		}
692		Case (Package() {Buffer(){0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0}}) {
693			Store(38, Local7)
694		}
695		Case (Package() {Buffer(9){41,42,43,44,45,46,47,48,49}}) {
696			Store(39, Local7)
697		}
698		Case (Package() {Buffer(257){0x7d}}) {
699			Store(40, Local7)
700		}
701		Case (Package() {Buffer(257) {
702			// 0-127
703			0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,
704			0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
705			0x00,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
706			0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
707			0x10,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
708			0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
709			0x20,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
710			0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
711			0x30,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
712			0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
713			0x40,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
714			0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
715			0x50,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
716			0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
717			0x60,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
718			0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
719
720			// 128-255
721			0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
722			0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
723			0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
724			0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
725			0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
726			0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
727			0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
728			0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
729			0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
730			0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
731			0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
732			0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
733			0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
734			0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
735			0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
736			0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
737			// 256
738			0x01}}) {
739			Store(41, Local7)
740		}
741		Case (Package() {Buffer() {
742			// 0-127
743			0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,
744			0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
745			0x00,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
746			0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
747			0x10,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
748			0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
749			0x20,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
750			0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
751			0x30,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
752			0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
753			0x40,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
754			0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
755			0x50,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
756			0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
757			0x60,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
758			0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
759
760			// 128-255
761			0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
762			0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
763			0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
764			0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
765			0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
766			0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
767			0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
768			0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
769			0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
770			0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
771			0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
772			0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
773			0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
774			0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
775			0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
776			0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
777			// 256
778			0x02}}) {
779			Store(42, Local7)
780		}
781		Case (Package() {Buffer(4){0,0,0,0}}) {
782			Store(43, Local7)
783		}
784		Case (Package() {Buffer(8){0,0,0,0,0,0,0,0}}) {
785			Store(44, Local7)
786		}
787		Case (Package() {Buffer(4){0xff,0xff,0xff,0xff}}) {
788			Store(45, Local7)
789		}
790		Case (Package() {Buffer(9){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}}) {
791			Store(46, Local7)
792		}
793		Case (Package() {Buffer(8){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}}) {
794			Store(47, Local7)
795		}
796		Case (Package() {Buffer(5){0xff,0xff,0xff,0xff,0xff}}) {
797			Store(48, Local7)
798		}
799		Case (Package() {Buffer(1){0xff}}) {
800			Store(49, Local7)
801		}
802		Case (Package() {Buffer(1){}}) {
803			Store(50, Local7)
804		}
805		Case (Package() {Buffer(5){}}) {
806			Store(51, Local7)
807		}
808		Case (Package() {Buffer(9){}}) {
809			Store(52, Local7)
810		}
811		Case (Package() {Buffer(9){0xab, 0xcd, 0xef}}) {
812			Store(53, Local7)
813		}
814
815		Default {
816			Store(54, Local7)
817		}
818	}
819
820	return (Local7)
821}
822
823Method(m0ec, 1)
824{
825	// Buffer
826
827	Store(m0eb(Buffer(1){10}), Local0)
828	if (LNotEqual(Local0, 29)) {
829		err(arg0, z072, 32, 0, 0, Local0, 29)
830	}
831	Store(m0eb(Buffer(2){11,12}), Local0)
832	if (LNotEqual(Local0, 30)) {
833		err(arg0, z072, 33, 0, 0, Local0, 30)
834	}
835	Store(m0eb(Buffer() {13,14,15}), Local0)
836	if (LNotEqual(Local0, 31)) {
837		err(arg0, z072, 34, 0, 0, Local0, 31)
838	}
839	Store(m0eb(Buffer(2){16,17,18}), Local0)
840	if (LNotEqual(Local0, 32)) {
841		err(arg0, z072, 35, 0, 0, Local0, 32)
842	}
843	Store(m0eb(Buffer(3){19,20}), Local0)
844	if (LNotEqual(Local0, 33)) {
845		err(arg0, z072, 36, 0, 0, Local0, 33)
846	}
847	Store(m0eb(Buffer(3){21,22,23}), Local0)
848	if (LNotEqual(Local0, 34)) {
849		err(arg0, z072, 37, 0, 0, Local0, 34)
850	}
851	Store(m0eb(Buffer(4){24,25,26,27}), Local0)
852	if (LNotEqual(Local0, 35)) {
853		err(arg0, z072, 38, 0, 0, Local0, 35)
854	}
855	Store(m0eb(Buffer(5){28,29,30,31,32}), Local0)
856	if (LNotEqual(Local0, 36)) {
857		err(arg0, z072, 39, 0, 0, Local0, 36)
858	}
859	Store(m0eb(Buffer(8){33,34,35,36,37,38,39,40}), Local0)
860	if (LNotEqual(Local0, 37)) {
861		err(arg0, z072, 40, 0, 0, Local0, 37)
862	}
863	Store(m0eb(Buffer(){0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0}), Local0)
864	if (LNotEqual(Local0, 38)) {
865		err(arg0, z072, 41, 0, 0, Local0, 38)
866	}
867	Store(m0eb(Buffer(9){41,42,43,44,45,46,47,48,49}), Local0)
868	if (LNotEqual(Local0, 39)) {
869		err(arg0, z072, 42, 0, 0, Local0, 39)
870	}
871	Store(m0eb(Buffer(257){0x7d}), Local0)
872	if (LNotEqual(Local0, 40)) {
873		err(arg0, z072, 43, 0, 0, Local0, 40)
874	}
875	Store(m0eb(Buffer(257) {
876			// 0-127
877			0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,
878			0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
879			0x00,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
880			0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
881			0x10,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
882			0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
883			0x20,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
884			0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
885			0x30,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
886			0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
887			0x40,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
888			0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
889			0x50,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
890			0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
891			0x60,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
892			0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
893
894			// 128-255
895			0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
896			0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
897			0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
898			0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
899			0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
900			0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
901			0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
902			0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
903			0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
904			0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
905			0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
906			0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
907			0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
908			0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
909			0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
910			0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
911			// 256
912			0x01}), Local0)
913	if (LNotEqual(Local0, 41)) {
914		err(arg0, z072, 44, 0, 0, Local0, 41)
915	}
916	Store(m0eb(Buffer() {
917			// 0-127
918			0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,
919			0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
920			0x00,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
921			0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
922			0x10,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
923			0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
924			0x20,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
925			0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
926			0x30,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
927			0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
928			0x40,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
929			0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
930			0x50,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
931			0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
932			0x60,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
933			0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
934
935			// 128-255
936			0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
937			0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
938			0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
939			0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
940			0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
941			0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
942			0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
943			0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
944			0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
945			0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
946			0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
947			0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
948			0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
949			0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
950			0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
951			0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
952			// 256
953			0x02}), Local0)
954	if (LNotEqual(Local0, 42)) {
955		err(arg0, z072, 45, 0, 0, Local0, 42)
956	}
957	if (F64) {
958		Store(m0eb(Buffer(4){0,0,0,0}), Local0)
959		if (LNotEqual(Local0, 43)) {
960			err(arg0, z072, 46, 0, 0, Local0, 43)
961		}
962		Store(m0eb(Buffer(8){0,0,0,0,0,0,0,0}), Local0)
963		if (LNotEqual(Local0, 4)) {
964			err(arg0, z072, 47, 0, 0, Local0, 4)
965		}
966		Store(m0eb(Buffer(4){0xff,0xff,0xff,0xff}), Local0)
967		if (LNotEqual(Local0, 45)) {
968			err(arg0, z072, 48, 0, 0, Local0, 45)
969		}
970		Store(m0eb(Buffer(8){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}), Local0)
971		if (LNotEqual(Local0, 6)) {
972			err(arg0, z072, 49, 0, 0, Local0, 6)
973		}
974	} else {
975		Store(m0eb(Buffer(4){0,0,0,0}), Local0)
976		if (LNotEqual(Local0, 4)) {
977			err(arg0, z072, 50, 0, 0, Local0, 4)
978		}
979		Store(m0eb(Buffer(8){0,0,0,0,0,0,0,0}), Local0)
980		if (LNotEqual(Local0, 44)) {
981			err(arg0, z072, 51, 0, 0, Local0, 44)
982		}
983		Store(m0eb(Buffer(4){0xff,0xff,0xff,0xff}), Local0)
984		if (LNotEqual(Local0, 5)) {
985			err(arg0, z072, 52, 0, 0, Local0, 5)
986		}
987		Store(m0eb(Buffer(8){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}), Local0)
988		if (LNotEqual(Local0, 47)) {
989			err(arg0, z072, 53, 0, 0, Local0, 47)
990		}
991	}
992
993	Store(m0eb(Buffer(9){0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}), Local0)
994	if (LNotEqual(Local0, 46)) {
995		err(arg0, z072, 54, 0, 0, Local0, 46)
996	}
997	Store(m0eb(Buffer(5){0xff,0xff,0xff,0xff,0xff}), Local0)
998	if (LNotEqual(Local0, 48)) {
999		err(arg0, z072, 55, 0, 0, Local0, 48)
1000	}
1001	Store(m0eb(Buffer(1){0xff}), Local0)
1002	if (LNotEqual(Local0, 49)) {
1003		err(arg0, z072, 56, 0, 0, Local0, 49)
1004	}
1005	Store(m0eb(Buffer(1){}), Local0)
1006	if (LNotEqual(Local0, 24)) {
1007		err(arg0, z072, 57, 0, 0, Local0, 24)
1008	}
1009	Store(m0eb(Buffer(5){}), Local0)
1010	if (LNotEqual(Local0, 51)) {
1011		err(arg0, z072, 58, 0, 0, Local0, 51)
1012	}
1013	Store(m0eb(Buffer(9){}), Local0)
1014	if (LNotEqual(Local0, 52)) {
1015		err(arg0, z072, 59, 0, 0, Local0, 52)
1016	}
1017	Store(m0eb(Buffer(9){0xab, 0xcd, 0xef}), Local0)
1018	if (LNotEqual(Local0, 53)) {
1019		err(arg0, z072, 60, 0, 0, Local0, 53)
1020	}
1021}
1022
1023// Run-method
1024Method(SW09,, Serialized)
1025{
1026	Store("TEST: SW09, Switch, Case, Default operators", Debug)
1027
1028	Name(ts, "SW09")
1029
1030	m0e8(ts)
1031	m0ea(ts)
1032	m0ec(ts)
1033
1034	return (0)
1035}
1036