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 * Run Tests Parameters Technique (RTPT)
31 *
32 * Tese parameters have effect only when
33 * running a group of tests (collections)
34 * such as all Functional tests, all Complex
35 * tests, all Exceptions tests, Full test
36 * (all enumerated above tests).
37 *
38 * Main flag:
39 * 0 - run unconditionally all tests
40 * 1 - run all the tests whit non-zero params
41 * 2 - run all the tests whit zero params
42 * 3 - run all the tests whit params equal to RUN1
43 * 4 - run one the particular test specified so:
44 *     RUN2 - index of collection
45 *     RUN3 - index of the test inside the collection
46 */
47Name(RUN0, 0)	// main flag
48Name(RUN1, 0)	// level
49Name(RUN2, 0)	// collection
50Name(RUN3, 0)	// test
51Name(RTPT, 0)	// validity of RTPT mode
52
53// FUNCTIONAL
54
55Name(W000, 0) // arithmetic
56Name(W001, 0) // bfield
57Name(W002, 0) // constant
58Name(W003, 0) // control
59Name(W004, 0) // descriptor
60Name(W005, 0) // extern
61Name(W006, 0) // local
62Name(W007, 0) // logic
63Name(W008, 0) // manipulation
64Name(W009, 0) // name
65Name(W00a, 0) // reference
66Name(W00b, 0) // region
67Name(W00c, 0) // synchronization
68Name(W00d, 0) // table
69Name(W01a, 0) // module
70
71// COMPLEX
72
73Name(W00e, 0) // misc
74Name(W00f, 0) // provoke
75Name(W010, 0) // operand
76Name(W011, 0) // result
77Name(W012, 0) // namespace
78Name(W022, 0) // badasl
79
80// EXCEPTIONS
81
82Name(W013, 0) // exc
83Name(W014, 0) // exc_operand
84Name(W015, 0) // exc_result
85Name(W016, 0) // exc_ref
86
87// DEMO
88
89Name(W017, 0) // Bugs (0-N)
90
91// IMPL
92
93Name(W021, 0) // dynobj
94
95// SERVICE
96
97Name(W018, 0) // condbranches
98
99// Identity2MS
100
101Name(W019, 0) // abbu
102
103// Reserved names
104
105Name(W020, 0)
106
107/*
108 * Set RTPT technique.
109 * Should be invoked in MAIN files of
110 * ALL functional, complex, exceptions,...
111 */
112Method(SRTP, 1) {
113	Store(arg0, RTPT)
114}
115
116
117/*
118 * Set up the particular desirable set of tests to be run
119 *
120 * Tese parameters have effect only when
121 * running a group of test cases or even
122 * collections) such as all Functional tests,
123 * all Complex tests, all Exceptions tests,
124 * Full test (all enumerated above tests)
125 * compiled all as one DefinitionBlock.
126 *
127 * Parameters:
128 *
129 * RUN0 - main flag
130 * 0 - run unconditionally all tests
131 * 1 - run all the tests whit non-zero params
132 * 2 - run all the tests whit zero params
133 * 3 - run all the tests whit params equal to RUN1
134 * 4 - run one the particular test specified in this way:
135 *     RUN2 - index of collection
136 *            1 - functional
137 *            2 - complex
138 *            3 - exceptions
139 *     RUN3 - index of the test inside the collection
140 * RUN1 - level
141 * RUN2 - collection
142 * RUN3 - test
143 */
144Method(RTPI) {
145
146// PARAMETRES OF MODE
147
148Store(0, RUN0) // main flag
149Store(0, RUN1) // level
150Store(1, RUN2) // collection
151Store(3, RUN3) // test
152
153// FUNCTIONAL, collection # 1
154
155Store(1, W000) // arithmetic        0
156Store(1, W001) // bfield            1
157Store(1, W002) // constant          2
158Store(1, W003) // control           3
159Store(1, W004) // descriptor        4
160Store(1, W005) // extern            5
161Store(1, W006) // local             6
162Store(1, W007) // logic             7
163Store(1, W008) // manipulation      8
164Store(1, W009) // name              9
165Store(1, W00a) // reference        10
166Store(1, W00b) // region           11
167Store(1, W00c) // synchronization  12
168Store(1, W00d) // table            13
169
170// COMPLEX, collection # 2
171
172Store(1, W00e) // misc              0
173Store(1, W00f) // provoke           1
174Store(1, W010) // operand           2
175Store(1, W011) // result            3
176Store(1, W021) // dynobj            4
177Store(1, W012) // RESERVED, not in use
178
179// EXCEPTIONS, collection # 3
180
181Store(1, W013) // exc               0
182Store(1, W014) // exc_operand       1,2
183Store(1, W015) // exc_result        3,4
184Store(1, W016) // exc_ref           5
185Store(1, W019) // exc_tbl           6
186
187// DEMO
188
189Store(1, W017) // Bugs (0-N)		0
190
191// SERVICE
192
193Store(1, W018) // condbranches	0
194}
195
196/*
197 * Variables below allow to exclude code which causes crashes
198 * or hangs or prevents execution of other tests.
199 *
200 * ATTENTION: all these variables should be set to 1 eventually
201 *            (after all bugs fixing).
202 *
203 * Lyout of variable name: y<xxx> - xxx is the number of bug
204 *        0 - dont run
205 * non-zero - run
206 *
207 * ATTENTION: see all the qXXX & rnXX conditions of the particular
208 *            tests (which also provide the temporary exclusion).
209 *
210 * ATTENTION: all disablings must go through this technique of
211 *            y<xxx> disable/enable variables.
212 *
213 * y<xxx>   - prevents undesirable consequences of the surrounded
214 *            code (crashes, hangs etc. of tests). Should be finally
215 *            set to non-zero (after the product-bug fixing) so
216 *            enabling execution of the surrounded code.
217 * X<xxx>   - surrounds particular Bugs. Used mostly to point out
218 *            the reasons of test failures (xxx - number of bug)
219 *            not to review the results of tests each time anew.
220 *            So, as a rule these variables are set to non-zero.
221 */
222
223/*
224 * Bugs
225 */
226Name(y078, 0)
227Name(y083, 0)
228Name(y084, 1)
229Name(y098, 1)
230Name(y100, 0)
231Name(y103, 1)
232Name(y104, 1)
233Name(y105, 1)
234Name(y106, 0)
235Name(y111, 1)
236Name(y113, 0)
237Name(y114, 0)
238Name(y118, 0)	// elements of Package are NamedX, failed access to Field Unit and Buffer Field
239Name(y119, 0)
240Name(y120, 0)
241Name(y121, 0)
242Name(y126, 0)
243Name(y127, 0)	// Automatic dereference of Index in CopyObject
244Name(y128, 1)
245Name(y132, 0)
246Name(y133, 0)	// Write access automatic dereference for Index reference
247Name(y134, 0)
248Name(y135, 0)
249Name(y136, 1)	// CopyObject(A, B) for Buffers causes implicit
250Name(y157, 1)	// problems when ParameterTypes declaration data omitted
251Name(y164, 1)	// tests m22d and m26b of reference test
252Name(y176, 0)
253Name(y178, 1)	// Non-constant Bank values works since ACPICA release 20071211
254Name(y182, 1)
255Name(y192, 1)	// AcpiExec is able to emulate access to BankField Objects since ACPICA release 20071211
256Name(y200, 0)	// The code path taken after exception in AcpiPsParseLoop is incorrect
257Name(y203, 0)	// ObjectType operation falls into infinite loop for ring of RefOf references
258Name(y204, 0)	// SizeOf operation falls into infinite loop for ring of RefOf references
259Name(y205, 0)	// Store-to-Debug operation falls into infinite loop for ring of RefOf references
260Name(y206, 0)	// ObjectType operation falls into infinite loop for ring of Index references
261Name(y207, 0)	// SizeOf operation falls into infinite loop for ring of Index references
262Name(y208, 0)	// Store-to-Debug operation falls into infinite loop for ring of Index references
263Name(y213, 0)	// Crash
264Name(y214, 0)	// Crash on repeated duplication of an OpRegion by CopyObject
265Name(y215, 0)	// Exception AE_BUFFER_OVERFLOW when IndexName Field exceeds 32 bits
266Name(y216, 0)	// exception AE_NOT_FOUND on CreateField under specific conditions
267Name(y217, 0)	// Dynamic OpRegion _REG method execution problem
268Name(y220, 0)	// Inconsistent "Access is available/unavailable" _REG method calls
269Name(y221, 1)	// Alternating access to OpRegions covering different ranges
270Name(y222, 0)	// Alternating access to OpRegions of different Address Spaces
271Name(y223, 1)	// DataTableRegion with the non-constant *Strings works since ACPICA release 20071211
272Name(y224, 0)	// AcpiExec is unable to emulate access to IndexField Objects
273Name(y238, 0)	// the jumping over levels in releasing mutexes is not prohibited
274Name(y242, 0)	// Releasing the mutex the first Acquired on the non-zero level makes Releasing the residuary mutexes of that level impossible
275Name(y243, 0)	// the normal work with mutexes is broken after the mutex Release order violation
276Name(y248, 0)	// Incorrect ReferenceCount on Switch operation
277Name(y251, 0)	// AE_ALREADY_EXISTS on multi-threading on Switch operator
278Name(y260, 0)	// For a DDBHandle Object ObjectType unexpectedly results in AE_AML_INTERNAL
279Name(y261, 0)	// Crash when DDBHandle parameter of Load is an Indexed Reference
280Name(y262, 0)	// Unexpected AE_STACK_OVERFLOW for a method call expression with nested calls
281Name(y263, 0)	// The sequence of evaluating operands of expression with the named objects is violated
282Name(y264, 0)	// Crash on re-writing named element of Package
283Name(y275, 0)	// Pop result from bottom principle doesn't work
284Name(y276, 0)	// 'Large Reference Count' on AML code with LoadTable/UnLoad in a slack mode
285Name(y281, 0)	// Normal strings as the LoadTable parameters can cause the matching table to be not found
286Name(y282, 0)	// Crash when the Buffer Object parameter of Load is used after an exception in it
287Name(y283, 1)	// When the Object parameter of Load is a Field the checksum of the supplied SSDT should be verified
288Name(y284, 1)	// An exception should be emitted on Load if the Length field of SSDT exceeds length of its source
289Name(y286, 1)	// After an exception the elements of the Package passed to Unload are unexpectedly deleted
290Name(y287, 0)	// If any string to match a proper field on LoadTable exceeds field's length an exception should be emitted
291Name(y288, 0)	// iASL unexpectedly forbids ParameterData of Loadtable to be LocalX or UserTerm
292Name(y289, 0)	// Search of the table matched Loadtable parameters should be restricted to XSDT
293Name(y290, 0)	// AcpiExec is unable to emulate Load from OpRegion
294Name(y292, 0)	// Different second and third UnLoad execution with the same argument behavior
295Name(y293, 0)	// Incorrect zero-length Buffer to String conversion
296Name(y294, 0)	// _ERR method can not be evaluated when AE_OWNER_ID_LIMIT is emitted
297Name(y296, 0)	// AE_AML_INTERNAL unexpectedly occurs when the Loadtable ParameterData and its Target differ in the types
298Name(y297, 0)	// After AE_LIMIT the further work of ACPICA mutex framework looks unstable
299Name(y300, 0)	// Recursive calls to methods with the internal names (and Switches) should be provided
300Name(y301, 0)	// Recursive call on the same thread to the Serialized method with the internal objects (Swithces) causes AE_AML_INTERNAL
301Name(y302, 0)	// Scope operation doesn't work for the root node Location
302
303
304/*
305 * Issues (replace them with the Bug indexes)
306 */
307
308Name(y349, 0)	// to clarify what is the proper behaviour when Serialized Method is invoked recursively (now hangs)
309Name(y350, 0)	// TermalZone AE_AML_NO_RETURN_VALUE exception
310Name(y361, 0)	// OperationRegion in Result tests
311Name(y362, 0)	// Investigate and uncomment m4ba
312
313Name(y364, 0)	// if (Derefof(Refof(bf76))) exception in m61b-m06e
314Name(y365, 0)	// Increment(Derefof(Refof(bf76))) exception in m61b-m64l
315Name(y366, 0)	// exception on Store(Package, Derefof(Arg(Int/Str/Buf)))
316Name(y367, 0)	// Increment(Refof(Named))) exception in m692-m00b
317
318
319Name(y500, 0)	// Deletion of Named Object due to DeRefOf(m000())
320Name(y501, 0)	// Increment/Decrement for String/Buffer Named Object
321Name(y502, 0)	// Exceptions on DeRefOf(Index(p000, 0))
322Name(y503, 0)	// AE_AML_OPERAND_TYPE => AE_AML_NO_RETURN_VALUE
323Name(y504, 0)	// Exception on CopyObject(ThermalZone, ...)
324Name(y505, 0)	// Buffer Field and Field Unit types should allow SizeOf()
325Name(y506, 0)	// exc_ref: crash for DerefOf
326Name(y507, 0)	// ref: read of ArgX-RefOf_References without DerefOf
327Name(y508, 0)	// all about ThermalZone
328Name(y509, 0)	// all about Method
329Name(y510, 0)	// all about OperationRegion
330Name(y511, 0)	// all about Device
331Name(y512, 0)	// the checking causes unexpected exception
332Name(y513, 0)	// m005(Index(s021, 1, Local0), RefOf(i020))
333			// m005(RefOf(i000), RefOf(i061))
334Name(y514, 0)	// repeated attempts to overwrite RefOf_Reference-ArgX cause exceptions
335// Name(y515, 0)	// Uninitialized element of Package (the same as y127)
336Name(y516, 0)	// write from {Integer/String/Buffer} to Package
337Name(y517, 0)	// Buffer Field (and Field Unit) as elements of Package
338Name(y518, 0)	// utdelete-0487 [07] UtUpdateRefCount : **** Warning
339			// **** Large Reference Count (EAEA) in object 00466BC8
340Name(y519, 0)	// ArgX term effectively becomes a LocalX term
341			// Store(x,ArgX-Object) should be identical to Store(x,LocalX)
342Name(y520, 0)	// ArgX term effectively becomes a LocalX term
343			// CopyObject(x,ArgX-Object) should be identical to CopyObject(x,LocalX)
344			// Now, DerefOf(arg0) causes exception
345Name(y521, 0)	// Store reference to NamedX
346Name(y522, 1)	// CopyObject reference to NamedX
347Name(y523, 0)	// Store(RefOf(NamedX), NamedX)
348Name(y524, 0)	// Store(RefOf(NamedX), DerefOf(Expr_resulting_in_ORef))
349Name(y525, 0)	// Store(RefOf(NamedX), RefOf(Named_X))
350Name(y526, 0)	// CopyObject(RefOf(NamedX), ArgX-ORef-to-Named_X)
351Name(y527, 0)	// The code path taken after AE_OWNER_ID_LIMIT is incorrect
352
353
354Name(y600, 0)	// Some oprators (not all) doesn't provide passing invocation
355			// of Method as a parameter to them (though iASL succeeds).
356			// Looks that Method is simply not invoked. But, since it doesn't
357			// now look as an important feature for those particular operators
358			// we don't file bug in this respect but exclude tesing.
359Name(y601, 0)	// The Reference issues to be thought over in the future
360Name(y602, 1)	// generalized - new specs of String to Integer conversion
361Name(y603, 0)	// bunch of anomalies with references to be splited to separate bugs,
362			// mostly - cyclical references (rings of references).
363
364Name(y900, 0)	// Allow immediate Index(Buffer(){}), Index("qwerty"), Index(Package(){})
365Name(y901, 1)	// Predicate generates Implicit Return
366Name(y902, 1)	// Expected is that Serialized method being invoked recursively on the same thread:
367			// 1) 0 - doesn't cause
368			// 2) otherwise - causes
369			// exception in case it has either internal objects (including Methods) or Switches
370
371
372/*
373 * functional/reference
374 *
375 * Exclude temporary the relevant checking.
376 *
377 * All them should be set to non-zero after
378 * clarifying the relevant issue, or provided
379 * with the comment clarifying what is wrong in
380 * the sub-test - dont remove them even in the
381 * latter case.
382 */
383Name(q001, 1) // Dereference of Store(Index(x,x,Index(x,x)), Index(x,x))
384Name(q002, 0) // The chain of Index_References
385Name(q003, 0) // CURRENTLY: compiler failed CopyObject(xx, Index(xx,xx))
386
387Name(q004, 0) // Implicit Operand conversion on MS contradicts ACPI Spec
388Name(q005, 0) // Method object as a Source of Index operation is treated as a call to that Method
389Name(q006, 0) // on MS Name of an Object as an element of Package is treated as String
390Name(q007, 0) // Disregard of the length Buffer Fields on MS are read as Buffers
391Name(q008, 0) // On MS Store to LocalX containing a reference causes indirect access
392Name(q009, 0) // It looks like on MS writing to a narrow Field Unit is splited on pieces
393Name(q00a, 0) // On MS writing to unmodified bits of Field OpRegion implemented differently
394Name(q00b, 0) // On MS Break in Switch is not implemented
395
396/*
397 * The non-zero value flags allow to run the relevant part of sub-tests.
398 *
399 * Each sub-test is conditioned by some rn0*.
400 *
401 * ATTENTION: many sub-tests conditioned by rn01-rn04 are not run now
402 *            in general mode, they should be investigated.
403 */
404Name(rn00, 1) // Correct, no any remarks
405Name(rn01, 0) // Investigation needed
406Name(rn02, 0) // Classified as a bug
407Name(rn03, 0) // Causes exception
408Name(rn04, 0) // Regression
409
410
411Name(rn05, 0) // Long-time tests of bug-demo collection
412Name(rn06, 0) // 1 - CopyObject and Store of Method doesn't evaluate that Method
413
414/*
415 * Indicators of bugs.
416 */
417Name(X104, 1)
418
419Name(X114, 1)
420Name(X127, 1)
421Name(X128, 1)
422Name(X131, 1)
423Name(X132, 1)
424Name(X133, 1)
425Name(X153, 1) // Store() to Named Target allows to update the Source
426Name(X170, 1)
427Name(X191, 1)
428Name(X192, 1)
429Name(X193, 1) // 32-bit mode optional storing of Not, NAnd, or NOr
430		  // ASL operators result to Buffer Field produces 64-bit
431Name(X194, 1) // Unexpected implicit result object conversion when the
432		  // Target operand of ToBuffer operator is a Named Buffer
433Name(X195, 0) // Increment and Decrement of an either String or Buffer
434		  // Object will not change the type of the Object to Integer (~ y501)
435
436
437/*
438 * Flag, allows (when non-zero) access to the internal objects of method.
439 *
440 * No entry of type Method should occur in the declared path specified for search.
441 */
442Name(FLG9, 0)
443
444/*
445 * Set up run4 to non-zero when compile aslts (affects actually only Identity2MS)
446 * for to run on MS, and reset it to zero when compile to run on ACPICA
447 *
448 *   for ACPICA - 0
449 *   for MS     - non-zero
450 */
451Name(run4, 0)
452
453/*
454 * Current release of ASLTS test suite
455 *
456 * Layout:
457 *   now simply incremental number
458 *
459 * Releases:
460 *
461 *   31.12.2004 - 1
462 *   31.07.2005 - 2
463 *   16.11.2005 - 3
464 *   21.07.2006 - 4, (1115 files), with ACPICA version 20060721 released
465 *   25.12.2006 - 5, (1277 files, 382 folder, 15.3 MB, 2006 tests, 38(44) test cases, 278 bugs of ACPICA)
466 *   01.03.2007 - 6, (1403 files, 415 folder, 17.0 MB, 2227 tests, 40(46) test cases, 305 bugs of ACPICA)
467 *   21.03.2007 - 7, (1409 files, 417 folder, 17.1 MB, 2236 tests, 40(46) test cases, 307 bugs of ACPICA)
468 *   December 2011: - 0x15 (ACPI 5.0)
469 *   April 2011: - 0x16, iASL fix for StartDependentFunction* descriptors to account for descriptor length.
470 */
471Name(REL0, 0x16)
472
473/*
474 * Settings number, used to adjust the aslts tests for different releases of ACPICA
475 *
476 * SETN - settings number of aslts:
477 *        0 - release from Bob
478 *        1 - release from Bob + my updates
479 *        2 - new architecture of Method calculation
480 *        3 - fixed bug 263,266
481 *        4 - fixed bugs 275,276
482 *        5 - fixed bugs 262 (corresponds to the 20070320 release of ACPICA)
483 *        6 - 20074403
484 *        all the greater - not used yet
485 *
486 * Used for to adjust some skippings of tests for different ACPICA releases
487 * (set up this value manually). See Method SET2 below.
488 *
489 * Note: the value 5 of SETN corresponds to the 20070320 release of ACPICA.
490 */
491Name(SETN, 5)
492
493/*
494 * Adjust some skippings of tests for different ACPICA releases
495 *
496 * arg0 - settings number of aslts (see SETN for comment)
497 */
498Method(SET2, 1, Serialized) {
499
500	Store(arg0, Local0)
501
502/*
503	if (ABUU) {
504		Store(0, Local0)
505	} else {
506		Store(arg0, Local0)
507	}
508*/
509
510	Switch (ToInteger (Local0)) {
511	Case (0) {
512		Store(0, y135)
513		Store(1, y900)
514		Store(0, y901)
515		Store(1, FLG9)
516		Store(0, y263)
517		Store(0, y275)
518		Store(0, y276)
519	}
520	Case (1) {
521		Store(1, y135)
522		Store(0, y900)
523		Store(0, y901)
524		Store(1, FLG9)
525		Store(0, y263)
526		Store(0, y275)
527		Store(0, y276)
528	}
529	Case (2) {
530		Store(0, y135)
531		Store(0, y900)
532		Store(1, y901)
533		Store(0, FLG9)
534		Store(0, y263)
535		Store(0, y275)
536		Store(0, y276)
537	}
538	Case (3) {
539		Store(0, y135)
540		Store(1, y900)
541		Store(0, y901)
542		Store(1, FLG9)
543		Store(1, y263)
544		Store(0, y275)
545		Store(0, y276)
546		Store(0, y262)
547	}
548	Case (4) {
549		Store(0, y135) // Store of Index reference to another element of the same Package causes hang
550		Store(1, y900) // Allow immediate Index(Buffer(){}), Index("qwerty"), Index(Package(){})
551		Store(0, y901) // Predicate generates Implicit Return
552		Store(1, FLG9) // Non-zero allows accessing internal objects of method
553		Store(1, y263) // The sequence of evaluating operands of expression with the named objects is violated
554		Store(1, y275) // Pop result from bottom principle doesn't work
555		Store(1, y276) // 'Large Reference Count' on AML code with LoadTable/UnLoad in a slack mode
556		Store(0, y262) // Unexpected AE_STACK_OVERFLOW for a method call expression with nested calls
557		Store(0, y251) // AE_ALREADY_EXISTS on multi-threading on Switch operator
558		Store(0, y300) // Recursive calls to methods with the internal names (and Switches) should be provided
559	}
560	Case (5) {
561		Store(0, y135)
562		Store(1, y900)
563		Store(1, y901) // Predicate generates Implicit Return since ACPICA release 20080926
564		Store(1, FLG9)
565		Store(1, y263)
566		Store(1, y275)
567		Store(1, y276)
568		Store(1, y262)
569		Store(0, y251)
570		Store(0, y300)
571	}
572	Case (6) {
573		Store(0, y135)
574		Store(1, y900)
575		Store(0, y901)
576		Store(1, FLG9)
577		Store(1, y263)
578		Store(1, y275)
579		Store(1, y276)
580		Store(1, y262)
581		Store(1, y251)
582		Store(1, y300)
583		Store(0, y902)
584	}
585
586	}
587
588	if (LNot(run4)){
589		Concatenate("Release of parent ACPICA code 0x", Revision, Debug)
590		Concatenate("Release of ASLTS test suite  0x", REL0, Debug)
591		Concatenate("Settings of ASLTS test suite 0x", arg0, Debug)
592	}
593}
594