• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /barrelfish-2018-10-04/lib/acpica/tests/aslts/src/runtime/collections/exceptions/exc_operand/exc_operand2/
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 *  Device
31 *
32 * (verify exceptions caused by the imprope use of Device type objects)
33 */
34
35Name(z098, 98)
36
37Device(dev0) {}
38
39// Expected exceptions:
40//
41// 47 - AE_AML_OPERAND_TYPE
42//
43Method(m4b6,, Serialized)
44{
45	Name(ts, "m4b6")
46
47	Device(dev1) {}
48
49	Event(e000)
50
51	Name(i000, 0)
52
53	// Local Named Object
54/* These are now caught by the compiler - Aug 2015
55
56	Method(m000, 1, Serialized)
57	{
58		Device(dev2) {}
59
60		Store (DerefOf(dev2), Local1)
61		CH06(arg0, 0, 47)
62	}
63*/
64	// Global Named Object
65/* These are now caught by the compiler - Aug 2015
66	Method(m001, 1)
67	{
68		if (y083) {
69			Store (DerefOf(dev0), Local1)
70			CH06(arg0, 1, 47)
71		}
72	}
73*/
74	// Local
75	Method(m002, 1, Serialized)
76	{
77		Device(dev2) {}
78
79		Event(e000)
80
81		CopyObject(dev2, Local0)
82
83		// CondRefOf
84		
85		CondRefOf(Local0, Local1)
86		CH03(ts, z098, 1, 0, 0)
87
88		// CopyObject
89
90		CopyObject(Local0, Local1)
91		CH03(ts, z098, 2, 0, 0)
92
93		// Decrement
94
95		Decrement(Local0)
96		CH06(arg0, 1, 47)
97
98		// DerefOf
99
100		Store (DerefOf(Local0), Local1)
101		CH06(arg0, 2, 47)
102
103		// FindSetLeftBit
104
105		FindSetLeftBit(Local0, Local1)
106		CH06(arg0, 4, 47)
107
108		// FindSetRightBit
109
110		FindSetRightBit(Local0, Local1)
111		CH06(arg0, 6, 47)
112
113		// FromBCD
114
115		FromBCD(Local0, Local1)
116		CH06(arg0, 8, 47)
117
118		// Increment
119
120		Increment(Local0)
121		CH06(arg0, 9, 47)
122
123		// LNot
124
125		Store (LNot(Local0), Local1)
126		CH06(arg0, 10, 47)
127
128		// Not
129
130		Not(Local0, Local1)
131		CH06(arg0, 12, 47)
132
133		// ObjectType
134
135		Store (ObjectType(Local0), Local1)
136		CH03(ts, z098, 3, 0, 0)
137
138		// RefOf
139
140		Store (RefOf(Local0), Local1)
141		CH03(ts, z098, 4, 0, 0)
142
143		// Release
144
145		Release(Local0)
146		CH06(arg0, 13, 47)
147
148		// Reset
149
150		Reset(Local0)
151		CH06(arg0, 14, 47)
152
153		// Signal
154
155		Signal(Local0)
156		CH06(arg0, 15, 47)
157
158		// SizeOf
159
160		Store (SizeOf(Local0), Local1)
161		CH06(arg0, 16, 47)
162
163		// Sleep
164
165		Sleep(Local0)
166		CH06(arg0, 17, 47)
167
168		// Stall
169
170		Stall(Local0)
171		CH06(arg0, 18, 47)
172
173		// Store
174
175		Store(Local0, Local1)
176		CH06(arg0, 19, 47)
177
178		// ToBCD
179
180		ToBCD(Local0, Local1)
181		CH06(arg0, 21, 47)
182
183		// ToBuffer
184
185		ToBuffer(Local0, Local1)
186		CH06(arg0, 23, 47)
187
188		// ToDecimalString
189
190		ToDecimalString(Local0, Local1)
191		CH06(arg0, 25, 47)
192
193		// ToHexString
194
195		ToHexString(Local0, Local1)
196		CH06(arg0, 27, 47)
197
198		// ToInteger
199
200		ToInteger(Local0, Local1)
201		CH06(arg0, 29, 47)
202
203		// Acquire
204
205		Store(Acquire(Local0, 100), Local1)
206		CH06(arg0, 30, 47)
207
208		// Add
209
210		Add(Local0, i000, Local1)
211		CH06(arg0, 33, 47)
212
213		Add(i000, Local0, Local1)
214		CH06(arg0, 34, 47)
215
216		// And
217
218		And(Local0, i000, Local1)
219		CH06(arg0, 37, 47)
220
221		And(i000, Local0, Local1)
222		CH06(arg0, 38, 47)
223
224		// Concatenate
225
226		Concatenate(Local0, i000, Local1)
227		CH06(arg0, 41, 47)
228
229		Concatenate(i000, Local0, Local1)
230		CH06(arg0, 42, 47)
231
232		// ConcatenateResTemplate
233
234		ConcatenateResTemplate(Local0, ResourceTemplate(){}, Local1)
235		CH06(arg0, 45, 47)
236
237		ConcatenateResTemplate(ResourceTemplate(){}, Local0, Local1)
238		CH06(arg0, 46, 47)
239
240		// Divide
241
242		Divide(Local0, i000, Local2)
243		CH06(arg0, 49, 47)
244
245		Divide(i000, Local0, Local2)
246		CH06(arg0, 50, 47)
247
248		Divide(Local0, i000, Local2, Local1)
249		CH06(arg0, 51, 47)
250
251		Divide(i000, Local0, Local2, Local1)
252		CH06(arg0, 52, 47)
253
254		// Fatal
255
256		Fatal(0xff, 0xffffffff, Local0)
257		CH06(arg0, 53, 47)
258
259		// Index
260
261		Index(Local0, 0, Local1)
262		CH06(arg0, 56, 47)
263
264		Index("0", Local0, Local1)
265		CH06(arg0, 57, 47)
266
267		// LEqual
268
269		Store (LEqual(Local0, i000), Local1)
270		CH06(arg0, 58, 47)
271
272		Store (LEqual(i000, Local0), Local1)
273		CH06(arg0, 59, 47)
274
275		// LGreater
276
277		Store (LGreater(Local0, i000), Local1)
278		CH06(arg0, 60, 47)
279
280		Store (LGreater(i000, Local0), Local1)
281		CH06(arg0, 61, 47)
282
283		// LGreaterEqual
284
285		Store (LGreaterEqual(Local0, i000), Local1)
286		CH06(arg0, 62, 0xff)
287
288		Store (LGreaterEqual(i000, Local0), Local1)
289		CH06(arg0, 63, 0xff)
290
291		// LLess
292
293		Store (LLess(Local0, i000), Local1)
294		CH06(arg0, 64, 47)
295
296		Store (LLess(i000, Local0), Local1)
297		CH06(arg0, 65, 47)
298
299		// LLessEqual
300
301		Store (LLessEqual(Local0, i000), Local1)
302		CH06(arg0, 66, 0xff)
303
304		Store (LLessEqual(i000, Local0), Local1)
305		CH06(arg0, 67, 0xff)
306
307		// LNotEqual
308
309		Store (LNotEqual(Local0, i000), Local1)
310		CH06(arg0, 68, 0xff)
311
312		Store (LNotEqual(i000, Local0), Local1)
313		CH06(arg0, 69, 0xff)
314
315		// LOr
316
317		Store (LOr(Local0, i000), Local1)
318		CH06(arg0, 70, 47)
319
320		Store (LOr(i000, Local0), Local1)
321		CH06(arg0, 71, 47)
322
323		// Mod
324
325		Mod(Local0, i000, Local1)
326		CH06(arg0, 74, 47)
327
328		Mod(i000, Local0, Local1)
329		CH06(arg0, 75, 47)
330
331		// Multiply
332
333		Multiply(Local0, i000, Local1)
334		CH06(arg0, 78, 47)
335
336		Multiply(i000, Local0, Local1)
337		CH06(arg0, 79, 47)
338
339		// NAnd
340
341		NAnd(Local0, i000, Local1)
342		CH06(arg0, 82, 47)
343
344		NAnd(i000, Local0, Local1)
345		CH06(arg0, 83, 47)
346
347		// NOr
348
349		NOr(Local0, i000, Local1)
350		CH06(arg0, 86, 47)
351
352		NOr(i000, Local0, Local1)
353		CH06(arg0, 87, 47)
354
355		// Or
356
357		Or(Local0, i000, Local1)
358		CH06(arg0, 90, 47)
359
360		Or(i000, Local0, Local1)
361		CH06(arg0, 91, 47)
362
363		// ShiftLeft
364
365		ShiftLeft(Local0, i000, Local1)
366		CH06(arg0, 94, 47)
367
368		ShiftLeft(i000, Local0, Local1)
369		CH06(arg0, 95, 47)
370
371		// ShiftRight
372
373		ShiftRight(Local0, i000, Local1)
374		CH06(arg0, 98, 47)
375
376		ShiftRight(i000, Local0, Local1)
377		CH06(arg0, 99, 47)
378
379		// Subtract
380
381		Subtract(Local0, i000, Local1)
382		CH06(arg0, 102, 47)
383
384		Subtract(i000, Local0, Local1)
385		CH06(arg0, 103, 47)
386
387		// ToString
388
389		ToString(Local0, 1, Local1)
390		CH06(arg0, 106, 47)
391
392		ToString(i000, Local0, Local1)
393		CH06(arg0, 107, 47)
394
395		// Wait
396
397		Store(Wait(Local0, i000), Local1)
398		CH06(arg0, 108, 47)
399
400		Store(Wait(e000, Local0), Local1)
401		CH06(arg0, 109, 47)
402
403		// XOr
404
405		XOr(Local0, i000, Local1)
406		CH06(arg0, 112, 47)
407
408		XOr(i000, Local0, Local1)
409		CH06(arg0, 113, 47)
410
411		// Mid
412
413		Mid(Local0, 1, 1, Local1)
414		CH06(arg0, 117, 47)
415
416		Mid("123", Local0, 1, Local1)
417		CH06(arg0, 118, 47)
418
419		Mid("123", 1, Local0, Local1)
420		CH06(arg0, 119, 47)
421
422		// Match
423
424		Store (Match(Local0, MTR, 0, MTR, 0, 0), Local1)
425		CH06(arg0, 120, 47)
426
427		Store (Match(Package(){1}, MTR, Local0, MTR, 0, 0), Local1)
428		CH06(arg0, 121, 47)
429
430		Store (Match(Package(){1}, MTR, 0, MTR, Local0, 0), Local1)
431		CH06(arg0, 122, 47)
432
433		Store (Match(Package(){1}, MTR, 0, MTR, 0, Local0), Local1)
434		CH06(arg0, 123, 47)
435	}
436
437	// Reference to Object
438	Method(m003, 3, Serialized)
439	{
440		Name(EXC0, 47)	// AE_AML_OPERAND_TYPE
441
442		Store(ObjectType(arg1), Local0)
443		if (LNotEqual(Local0, 6)) {
444			err(arg0, z098, 200, 0, 0, Local0, 6)
445			return (1)
446		}
447
448		if (arg2) {
449			if (LNot(y503)) {
450				Store(62, EXC0)	// AE_AML_NO_RETURN_VALUE
451			}
452		}
453
454		Store (DeRefOf(arg1), Local1)
455		CH03(ts, z098, 5, 0, 0)
456
457		// CondRefOf
458		
459		CondRefOf(DeRefOf(arg1), Local1)
460		CH06(arg0, 1, EXC0)
461
462		// CopyObject
463
464		CopyObject(DeRefOf(arg1), Local1)
465		CH06(arg0, 2, EXC0)
466
467		// Decrement
468
469		Decrement(DeRefOf(arg1))
470		CH06(arg0, 3, EXC0)
471
472		// DerefOf
473
474		Store (DerefOf(DeRefOf(arg1)), Local1)
475		CH06(arg0, 4, EXC0)
476
477		// FindSetLeftBit
478
479		FindSetLeftBit(DeRefOf(arg1), Local1)
480		CH06(arg0, 6, EXC0)
481
482		// FindSetRightBit
483
484		FindSetRightBit(DeRefOf(arg1), Local1)
485		CH06(arg0, 8, EXC0)
486
487		// FromBCD
488
489		FromBCD(DeRefOf(arg1), Local1)
490		CH06(arg0, 10, EXC0)
491
492		// Increment
493
494		Increment(DeRefOf(arg1))
495		CH06(arg0, 11, EXC0)
496
497		// LNot
498
499		Store (LNot(DeRefOf(arg1)), Local1)
500		CH06(arg0, 12, EXC0)
501
502		// Not
503
504		Not(DeRefOf(arg1), Local1)
505		CH06(arg0, 14, EXC0)
506
507		// ObjectType
508
509		Store (ObjectType(DeRefOf(arg1)), Local1)
510		CH03(ts, z098, 6, 0, 0)
511
512		// RefOf
513
514		Store (RefOf(DeRefOf(arg1)), Local1)
515		CH06(arg0, 15, EXC0)
516
517		// Release
518
519		// Reset
520
521		// Signal
522
523		// SizeOf
524
525		Store (SizeOf(DeRefOf(arg1)), Local1)
526		CH06(arg0, 16, EXC0)
527
528		// Sleep
529
530		Sleep(DeRefOf(arg1))
531		CH06(arg0, 17, EXC0)
532
533		// Stall
534
535		Stall(DeRefOf(arg1))
536		CH06(arg0, 18, EXC0)
537
538		// Store
539
540		Store(DeRefOf(arg1), Local1)
541		CH06(arg0, 19, EXC0)
542
543		// ToBCD
544
545		ToBCD(DeRefOf(arg1), Local1)
546		CH06(arg0, 21, EXC0)
547
548		// ToBuffer
549
550		ToBuffer(DeRefOf(arg1), Local1)
551		CH06(arg0, 23, EXC0)
552
553		// ToDecimalString
554
555		ToDecimalString(DeRefOf(arg1), Local1)
556		CH06(arg0, 25, EXC0)
557
558		// ToHexString
559
560		ToHexString(DeRefOf(arg1), Local1)
561		CH06(arg0, 27, EXC0)
562
563		// ToInteger
564
565		ToInteger(DeRefOf(arg1), Local1)
566		CH06(arg0, 29, EXC0)
567
568		// Acquire
569
570		// Add
571
572		Add(DeRefOf(arg1), i000, Local1)
573		CH06(arg0, 33, EXC0)
574
575		Add(i000, DeRefOf(arg1), Local1)
576		CH06(arg0, 34, EXC0)
577
578		// And
579
580		And(DeRefOf(arg1), i000, Local1)
581		CH06(arg0, 37, EXC0)
582
583		And(i000, DeRefOf(arg1), Local1)
584		CH06(arg0, 38, EXC0)
585
586		// Concatenate
587
588		Concatenate(DeRefOf(arg1), i000, Local1)
589		CH06(arg0, 41, EXC0)
590
591		Concatenate(i000, DeRefOf(arg1), Local1)
592		CH06(arg0, 42, EXC0)
593
594		// ConcatenateResTemplate
595
596		ConcatenateResTemplate(DeRefOf(arg1), ResourceTemplate(){}, Local1)
597		CH06(arg0, 45, EXC0)
598
599		ConcatenateResTemplate(ResourceTemplate(){}, DeRefOf(arg1), Local1)
600		CH06(arg0, 46, EXC0)
601
602		// Divide
603
604		Divide(DeRefOf(arg1), i000, Local2)
605		CH06(arg0, 49, EXC0)
606
607		Divide(i000, DeRefOf(arg1), Local2)
608		CH06(arg0, 50, EXC0)
609
610		Divide(DeRefOf(arg1), i000, Local2, Local1)
611		CH06(arg0, 51, EXC0)
612
613		Divide(i000, DeRefOf(arg1), Local2, Local1)
614		CH06(arg0, 52, EXC0)
615
616		// Fatal
617
618		Fatal(0xff, 0xffffffff, DeRefOf(arg1))
619		CH06(arg0, 53, EXC0)
620
621		// Index
622
623		Index(DeRefOf(arg1), 0, Local1)
624		CH06(arg0, 56, EXC0)
625
626		Index("0", DeRefOf(arg1), Local1)
627		CH06(arg0, 57, EXC0)
628
629		// LEqual
630
631		Store (LEqual(DeRefOf(arg1), i000), Local1)
632		CH06(arg0, 58, EXC0)
633
634		Store (LEqual(i000, DeRefOf(arg1)), Local1)
635		CH06(arg0, 59, EXC0)
636
637		// LGreater
638
639		Store (LGreater(DeRefOf(arg1), i000), Local1)
640		CH06(arg0, 60, EXC0)
641
642		Store (LGreater(i000, DeRefOf(arg1)), Local1)
643		CH06(arg0, 61, EXC0)
644
645		// LGreaterEqual
646
647		Store (LGreaterEqual(DeRefOf(arg1), i000), Local1)
648		CH06(arg0, 62, 0xff)
649
650		Store (LGreaterEqual(i000, DeRefOf(arg1)), Local1)
651		CH06(arg0, 63, 0xff)
652
653		// LLess
654
655		Store (LLess(DeRefOf(arg1), i000), Local1)
656		CH06(arg0, 64, EXC0)
657
658		Store (LLess(i000, DeRefOf(arg1)), Local1)
659		CH06(arg0, 65, EXC0)
660
661		// LLessEqual
662
663		Store (LLessEqual(DeRefOf(arg1), i000), Local1)
664		CH06(arg0, 66, 0xff)
665
666		Store (LLessEqual(i000, DeRefOf(arg1)), Local1)
667		CH06(arg0, 67, 0xff)
668
669		// LNotEqual
670
671		Store (LNotEqual(DeRefOf(arg1), i000), Local1)
672		CH06(arg0, 68, 0xff)
673
674		Store (LNotEqual(i000, DeRefOf(arg1)), Local1)
675		CH06(arg0, 69, 0xff)
676
677		// LOr
678
679		Store (LOr(DeRefOf(arg1), i000), Local1)
680		CH06(arg0, 70, EXC0)
681
682		Store (LOr(i000, DeRefOf(arg1)), Local1)
683		CH06(arg0, 71, EXC0)
684
685		// Mod
686
687		Mod(DeRefOf(arg1), i000, Local1)
688		CH06(arg0, 74, EXC0)
689
690		Mod(i000, DeRefOf(arg1), Local1)
691		CH06(arg0, 75, EXC0)
692
693		// Multiply
694
695		Multiply(DeRefOf(arg1), i000, Local1)
696		CH06(arg0, 78, EXC0)
697
698		Multiply(i000, DeRefOf(arg1), Local1)
699		CH06(arg0, 79, EXC0)
700
701		// NAnd
702
703		NAnd(DeRefOf(arg1), i000, Local1)
704		CH06(arg0, 82, EXC0)
705
706		NAnd(i000, DeRefOf(arg1), Local1)
707		CH06(arg0, 83, EXC0)
708
709		// NOr
710
711		NOr(DeRefOf(arg1), i000, Local1)
712		CH06(arg0, 86, EXC0)
713
714		NOr(i000, DeRefOf(arg1), Local1)
715		CH06(arg0, 87, EXC0)
716
717		// Or
718
719		Or(DeRefOf(arg1), i000, Local1)
720		CH06(arg0, 90, EXC0)
721
722		Or(i000, DeRefOf(arg1), Local1)
723		CH06(arg0, 91, EXC0)
724
725		// ShiftLeft
726
727		ShiftLeft(DeRefOf(arg1), i000, Local1)
728		CH06(arg0, 94, EXC0)
729
730		ShiftLeft(i000, DeRefOf(arg1), Local1)
731		CH06(arg0, 95, EXC0)
732
733		// ShiftRight
734
735		ShiftRight(DeRefOf(arg1), i000, Local1)
736		CH06(arg0, 98, EXC0)
737
738		ShiftRight(i000, DeRefOf(arg1), Local1)
739		CH06(arg0, 99, EXC0)
740
741		// Subtract
742
743		Subtract(DeRefOf(arg1), i000, Local1)
744		CH06(arg0, 102, EXC0)
745
746		Subtract(i000, DeRefOf(arg1), Local1)
747		CH06(arg0, 103, EXC0)
748
749		// ToString
750
751		ToString(DeRefOf(arg1), 1, Local1)
752		CH06(arg0, 106, EXC0)
753
754		ToString(i000, DeRefOf(arg1), Local1)
755		CH06(arg0, 107, EXC0)
756
757		// Wait
758
759		Store(Wait(e000, DeRefOf(arg1)), Local1)
760		CH06(arg0, 109, EXC0)
761
762		// XOr
763
764		XOr(DeRefOf(arg1), i000, Local1)
765		CH06(arg0, 112, EXC0)
766
767		XOr(i000, DeRefOf(arg1), Local1)
768		CH06(arg0, 113, EXC0)
769
770		// Mid
771
772		Mid(DeRefOf(arg1), 1, 1, Local1)
773		CH06(arg0, 117, EXC0)
774
775		Mid("123", DeRefOf(arg1), 1, Local1)
776		CH06(arg0, 118, EXC0)
777
778		Mid("123", 1, DeRefOf(arg1), Local1)
779		CH06(arg0, 119, EXC0)
780
781		// Match
782
783		Store (Match(DeRefOf(arg1), MTR, 0, MTR, 0, 0), Local1)
784		CH06(arg0, 120, EXC0)
785
786		Store (Match(Package(){1}, MTR, DeRefOf(arg1), MTR, 0, 0), Local1)
787		CH06(arg0, 121, EXC0)
788
789		Store (Match(Package(){1}, MTR, 0, MTR, DeRefOf(arg1), 0), Local1)
790		CH06(arg0, 122, EXC0)
791
792		Store (Match(Package(){1}, MTR, 0, MTR, 0, DeRefOf(arg1)), Local1)
793		CH06(arg0, 123, EXC0)
794
795		return (0)
796	}
797
798	// Result of Method invocation
799	Method(m004, 1, Serialized)
800	{
801		Name(i000, 0) // Label to check m000 invocations
802
803		Method(m000)
804		{
805			CopyObject(dev0, Local0)
806			Return (Local0)
807		}
808
809		// CondRefOf
810		
811		CondRefOf(m000(), Local1)
812		CH06(arg0, 1, 47)
813
814		// CopyObject
815
816		CopyObject(m000(), Local1)
817		CH03(ts, z098, 7, 0, 0)
818
819		// Decrement
820
821		Decrement(m000())
822		CH06(arg0, 2, 47)
823
824		// DerefOf
825
826		Store (DerefOf(m000()), Local1)
827		CH06(arg0, 3, 47)
828
829		// FindSetLeftBit
830
831		FindSetLeftBit(m000(), Local1)
832		CH06(arg0, 5, 47)
833
834		// FindSetRightBit
835
836		FindSetRightBit(m000(), Local1)
837		CH06(arg0, 7, 47)
838
839		// FromBCD
840
841		FromBCD(m000(), Local1)
842		CH06(arg0, 9, 47)
843
844		// Increment
845
846		Increment(m000())
847		CH06(arg0, 10, 47)
848
849		// LNot
850
851		Store (LNot(m000()), Local1)
852		CH06(arg0, 11, 47)
853
854		// Not
855
856		Not(m000(), Local1)
857		CH06(arg0, 13, 47)
858
859		// ObjectType
860        /* Nov. 2012: Method invocation as arg to ObjectType is now illegal */
861//
862//		ObjectType(m000())
863//		CH03(ts, z098, 8, 0, 0)
864
865		// RefOf
866
867		Store (RefOf(m000()), Local1)
868		CH06(arg0, 14, 47)
869
870		// Release
871
872		Release(m000())
873		CH06(arg0, 13, 47)
874
875		// Reset
876
877		Reset(m000())
878		CH06(arg0, 14, 47)
879
880		// Signal
881
882		Signal(m000())
883		CH06(arg0, 15, 47)
884
885		// SizeOf
886
887		Store (SizeOf(m000()), Local1)
888		CH06(arg0, 16, 47)
889
890		// Sleep
891
892		Sleep(m000())
893		CH06(arg0, 17, 47)
894
895		// Stall
896
897		Stall(m000())
898		CH06(arg0, 18, 47)
899
900		// Store
901
902		Store(m000(), Local1)
903		CH06(arg0, 19, 47)
904
905		// ToBCD
906
907		ToBCD(m000(), Local1)
908		CH06(arg0, 21, 47)
909
910		// ToBuffer
911
912		ToBuffer(m000(), Local1)
913		CH06(arg0, 23, 47)
914
915		// ToDecimalString
916
917		ToDecimalString(m000(), Local1)
918		CH06(arg0, 25, 47)
919
920		// ToHexString
921
922		ToHexString(m000(), Local1)
923		CH06(arg0, 27, 47)
924
925		// ToInteger
926
927		ToInteger(m000(), Local1)
928		CH06(arg0, 29, 47)
929
930		// Acquire
931
932		Store(Acquire(m000(), 100), Local1)
933		CH06(arg0, 30, 47)
934
935		// Add
936
937		Add(m000(), i000, Local1)
938		CH06(arg0, 33, 47)
939
940		Add(i000, m000(), Local1)
941		CH06(arg0, 34, 47)
942
943		// And
944
945		And(m000(), i000, Local1)
946		CH06(arg0, 37, 47)
947
948		And(i000, m000(), Local1)
949		CH06(arg0, 38, 47)
950
951		// Concatenate
952
953		Concatenate(m000(), i000, Local1)
954		CH06(arg0, 41, 47)
955
956		Concatenate(i000, m000(), Local1)
957		CH06(arg0, 42, 47)
958
959		// ConcatenateResTemplate
960
961		ConcatenateResTemplate(m000(), ResourceTemplate(){}, Local1)
962		CH06(arg0, 45, 47)
963
964		ConcatenateResTemplate(ResourceTemplate(){}, m000(), Local1)
965		CH06(arg0, 46, 47)
966
967		// Divide
968
969		Divide(m000(), i000, Local2)
970		CH06(arg0, 49, 47)
971
972		Divide(i000, m000(), Local2)
973		CH06(arg0, 50, 47)
974
975		Divide(m000(), i000, Local2, Local1)
976		CH06(arg0, 51, 47)
977
978		Divide(i000, m000(), Local2, Local1)
979		CH06(arg0, 52, 47)
980
981		// Fatal
982
983		Fatal(0xff, 0xffffffff, m000())
984		CH06(arg0, 53, 47)
985
986		// Index
987
988		Index(m000(), 0, Local1)
989		CH06(arg0, 56, 47)
990
991		Index("0", m000(), Local1)
992		CH06(arg0, 57, 47)
993
994		// LEqual
995
996		Store (LEqual(m000(), i000), Local1)
997		CH06(arg0, 58, 47)
998
999		Store (LEqual(i000, m000()), Local1)
1000		CH06(arg0, 59, 47)
1001
1002		// LGreater
1003
1004		Store (LGreater(m000(), i000), Local1)
1005		CH06(arg0, 60, 47)
1006
1007		Store (LGreater(i000, m000()), Local1)
1008		CH06(arg0, 61, 47)
1009
1010		// LGreaterEqual
1011
1012		Store (LGreaterEqual(m000(), i000), Local1)
1013		CH06(arg0, 62, 0xff)
1014
1015		Store (LGreaterEqual(i000, m000()), Local1)
1016		CH06(arg0, 63, 0xff)
1017
1018		// LLess
1019
1020		Store (LLess(m000(), i000), Local1)
1021		CH06(arg0, 64, 47)
1022
1023		Store (LLess(i000, m000()), Local1)
1024		CH06(arg0, 65, 47)
1025
1026		// LLessEqual
1027
1028		Store (LLessEqual(m000(), i000), Local1)
1029		CH06(arg0, 66, 0xff)
1030
1031		Store (LLessEqual(i000, m000()), Local1)
1032		CH06(arg0, 67, 0xff)
1033
1034		// LNotEqual
1035
1036		Store (LNotEqual(m000(), i000), Local1)
1037		CH06(arg0, 68, 0xff)
1038
1039		Store (LNotEqual(i000, m000()), Local1)
1040		CH06(arg0, 69, 0xff)
1041
1042		// LOr
1043
1044		Store (LOr(m000(), i000), Local1)
1045		CH06(arg0, 70, 47)
1046
1047		Store (LOr(i000, m000()), Local1)
1048		CH06(arg0, 71, 47)
1049
1050		// Mod
1051
1052		Mod(m000(), i000, Local1)
1053		CH06(arg0, 74, 47)
1054
1055		Mod(i000, m000(), Local1)
1056		CH06(arg0, 75, 47)
1057
1058		// Multiply
1059
1060		Multiply(m000(), i000, Local1)
1061		CH06(arg0, 78, 47)
1062
1063		Multiply(i000, m000(), Local1)
1064		CH06(arg0, 79, 47)
1065
1066		// NAnd
1067
1068		NAnd(m000(), i000, Local1)
1069		CH06(arg0, 82, 47)
1070
1071		NAnd(i000, m000(), Local1)
1072		CH06(arg0, 83, 47)
1073
1074		// NOr
1075
1076		NOr(m000(), i000, Local1)
1077		CH06(arg0, 86, 47)
1078
1079		NOr(i000, m000(), Local1)
1080		CH06(arg0, 87, 47)
1081
1082		// Or
1083
1084		Or(m000(), i000, Local1)
1085		CH06(arg0, 90, 47)
1086
1087		Or(i000, m000(), Local1)
1088		CH06(arg0, 91, 47)
1089
1090		// ShiftLeft
1091
1092		ShiftLeft(m000(), i000, Local1)
1093		CH06(arg0, 94, 47)
1094
1095		ShiftLeft(i000, m000(), Local1)
1096		CH06(arg0, 95, 47)
1097
1098		// ShiftRight
1099
1100		ShiftRight(m000(), i000, Local1)
1101		CH06(arg0, 98, 47)
1102
1103		ShiftRight(i000, m000(), Local1)
1104		CH06(arg0, 99, 47)
1105
1106		// Subtract
1107
1108		Subtract(m000(), i000, Local1)
1109		CH06(arg0, 102, 47)
1110
1111		Subtract(i000, m000(), Local1)
1112		CH06(arg0, 103, 47)
1113
1114		// ToString
1115
1116		ToString(m000(), 1, Local1)
1117		CH06(arg0, 106, 47)
1118
1119		ToString(i000, m000(), Local1)
1120		CH06(arg0, 107, 47)
1121
1122		// Wait
1123
1124		Store(Wait(m000(), i000), Local1)
1125		CH06(arg0, 108, 47)
1126
1127		Store(Wait(e000, m000()), Local1)
1128		CH06(arg0, 109, 47)
1129
1130		// XOr
1131
1132		XOr(m000(), i000, Local1)
1133		CH06(arg0, 112, 47)
1134
1135		XOr(i000, m000(), Local1)
1136		CH06(arg0, 113, 47)
1137
1138		// Mid
1139
1140		Mid(m000(), 1, 1, Local1)
1141		CH06(arg0, 117, 47)
1142
1143		Mid("123", m000(), 1, Local1)
1144		CH06(arg0, 118, 47)
1145
1146		Mid("123", 1, m000(), Local1)
1147		CH06(arg0, 119, 47)
1148
1149		// Match
1150
1151		Store (Match(m000(), MTR, 0, MTR, 0, 0), Local1)
1152		CH06(arg0, 120, 47)
1153
1154		Store (Match(Package(){1}, MTR, m000(), MTR, 0, 0), Local1)
1155		CH06(arg0, 121, 47)
1156
1157		Store (Match(Package(){1}, MTR, 0, MTR, m000(), 0), Local1)
1158		CH06(arg0, 122, 47)
1159
1160		Store (Match(Package(){1}, MTR, 0, MTR, 0, m000()), Local1)
1161		CH06(arg0, 123, 47)
1162	}
1163
1164	// Reference to Object as Result of Method invocation
1165	Method(m005, 1, Serialized)
1166	{
1167		Device(dev2) {}
1168
1169		Name(i000, 0) // Label to check m000 invocations
1170
1171		Method(m000, 2)
1172		{
1173			Store(arg0, i000)
1174			if (LEqual(arg1, 0)) {
1175				Store(Refof(dev0), Local0)
1176			} elseif (LEqual(arg1, 1)) {
1177				Store(Refof(dev2), Local0)
1178			}
1179			Return (Local0)
1180		}
1181
1182		Method(CH00, 2)
1183		{
1184			if (LNotEqual(i000, arg1)) {
1185				err(arg0, z098, 0, 0, 0, i000, arg1)
1186			}
1187		}
1188
1189		Name(lpN0, 2)
1190		Name(lpC0, 0)
1191
1192		While (lpN0) {
1193			Multiply(3, lpC0, Local0)
1194
1195			Store(0, i000)
1196
1197			Store (DerefOf(m000(1, lpC0)), Local1)
1198			CH03(ts, z098, Add(9, lpC0), 0, 0)
1199			CH00(arg0, 1)
1200
1201			Store (DerefOf(DerefOf(m000(2, lpC0))), Local1)
1202			CH06(arg0, Add(1, Local0), 47)
1203			CH00(arg0, 2)
1204
1205			Store (Index(DerefOf(m000(3, lpC0)), 0), Local1)
1206			CH06(arg0, Add(2, Local0), 47)
1207			CH00(arg0, 3)
1208
1209			Store (Match(DerefOf(m000(4, lpC0)), MTR, 0, MTR, 0, 0), Local1)
1210			CH06(arg0, Add(3, Local0), 47)
1211			CH00(arg0, 4)
1212
1213			Decrement(lpN0)
1214			Increment(lpC0)
1215		}
1216	}
1217
1218	CH03(ts, z098, 11, 0, 0)
1219
1220	// Local Named Object
1221//	m000(ts)
1222
1223	// Global Named Object
1224//	m001(ts)
1225
1226	// Local
1227	m002(Concatenate(ts, "-m002"))
1228
1229	// Reference to Local Named Object
1230
1231	m003(Concatenate(ts, "-m003-RefLocName"), RefOf(dev1), 1)
1232
1233	Store(RefOf(dev1), Local0)
1234	m003(Concatenate(ts, "-m003-RefLocName2"), Local0, 1)
1235
1236	CondRefOf(dev1, Local0)
1237	m003(Concatenate(ts, "-m003-CondRefLocName"), Local0, 1)
1238
1239	m003(Concatenate(ts, "-m003-RefGlobName"), RefOf(dev0), 1)
1240
1241	Store(RefOf(dev0), Local0)
1242	m003(Concatenate(ts, "-m003-RefGlobName2"), Local0, 1)
1243
1244	CondRefOf(dev0, Local0)
1245	m003(Concatenate(ts, "-m003-CondRefGlobName"), Local0, 1)
1246
1247	// Reference to Object as element of Package
1248
1249	Name(pp00, Package(){dev0})
1250
1251	if (y113) {
1252		m003(Concatenate(ts, "-m003-Index"), Index(pp00, 0), 0)
1253	}
1254
1255	Store(Index(pp00, 0), Local1)
1256	m003(Concatenate(ts, "-m003-Index2"), Local1, 0)
1257
1258	if (y113) {
1259		m003(Concatenate(ts, "-m003-Index3"), Index(pp00, 0, Local2), 0)
1260	}
1261
1262	Index(pp00, 0, Local3)
1263	m003(Concatenate(ts, "-m003-Index4"), Local3, 0)
1264
1265	Store(Index(pp00, 0, Local4), Local5)
1266	m003(Concatenate(ts, "-m003-Index5"), Local5, 0)
1267
1268	// Result of Method invocation
1269	m004(Concatenate(ts, "-m004"))
1270
1271	// Reference to Object as Result of Method invocation
1272	m005(Concatenate(ts, "-m005"))
1273}
1274