1    /*
2     * Some or all of this work - Copyright (c) 2006 - 2021, 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    Name (Z066, 0x42)
29    /* Verify result */
30    /* */
31    /* arg0 - name of test */
32    /* arg1 - results Package */
33    /* arg2 - index of four results */
34    /* arg3 - indication of Result */
35    /* arg4 - indication of ComputationalData */
36    /* arg5 - Result */
37    /* arg6 - ComputationalData */
38    Method (M4C1, 7, Serialized)
39    {
40        Name (TMP0, 0x00)
41        Name (TMP1, 0x00)
42        Name (LPC0, 0x00)
43        LPC0 = (Arg2 * 0x04)
44        If (Arg3)
45        {
46            /* Result */
47            /* Benchmark of Result */
48            Local0 = DerefOf (Arg1 [LPC0])
49            LPC0++
50            Local1 = DerefOf (Arg1 [LPC0])
51            TMP0 = ObjectType (Arg5)
52            If (F64)
53            {
54                TMP1 = ObjectType (Local0)
55                If ((TMP0 != TMP1))
56                {
57                    ERR (Arg0, Z066, __LINE__, 0x00, 0x00, TMP0, TMP1)
58                }
59                ElseIf ((Arg5 != Local0))
60                {
61                    ERR (Arg0, Z066, __LINE__, 0x00, 0x00, Arg5, Local0)
62                }
63            }
64            Else
65            {
66                TMP1 = ObjectType (Local1)
67                If ((TMP0 != TMP1))
68                {
69                    ERR (Arg0, Z066, __LINE__, 0x00, 0x00, TMP0, TMP1)
70                }
71                ElseIf ((Arg5 != Local1))
72                {
73                    ERR (Arg0, Z066, __LINE__, 0x00, 0x00, Arg5, Local1)
74                }
75            }
76        }
77        Else
78        {
79            LPC0++
80        }
81
82        If (Arg4)
83        {
84            /* ComputationalData */
85            /* Benchmark of ComputationalData */
86            LPC0++
87            Local2 = DerefOf (Arg1 [LPC0])
88            LPC0++
89            Local3 = DerefOf (Arg1 [LPC0])
90            TMP0 = ObjectType (Arg6)
91            If (F64)
92            {
93                TMP1 = ObjectType (Local2)
94                If ((TMP0 != TMP1))
95                {
96                    ERR (Arg0, Z066, __LINE__, 0x00, 0x00, TMP0, TMP1)
97                }
98                ElseIf ((Arg6 != Local2))
99                {
100                    ERR (Arg0, Z066, __LINE__, 0x00, 0x00, Arg6, Local2)
101                }
102            }
103            Else
104            {
105                TMP1 = ObjectType (Local3)
106                If ((TMP0 != TMP1))
107                {
108                    ERR (Arg0, Z066, __LINE__, 0x00, 0x00, TMP0, TMP1)
109                }
110                ElseIf ((Arg6 != Local3))
111                {
112                    ERR (Arg0, Z066, __LINE__, 0x00, 0x00, Arg6, Local3)
113                }
114            }
115        }
116    }
117