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