12874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
2f666ad41SAnshuman Khandual /*
3f666ad41SAnshuman Khandual * Copyright (C) 2015 Anshuman Khandual, IBM Corporation.
4f666ad41SAnshuman Khandual */
5f666ad41SAnshuman Khandual #define GPR_1 1
6f666ad41SAnshuman Khandual #define GPR_2 2
7f666ad41SAnshuman Khandual #define GPR_3 3
8f666ad41SAnshuman Khandual #define GPR_4 4
9f666ad41SAnshuman Khandual
10f666ad41SAnshuman Khandual #define FPR_1 0.001
11f666ad41SAnshuman Khandual #define FPR_2 0.002
12f666ad41SAnshuman Khandual #define FPR_3 0.003
13f666ad41SAnshuman Khandual #define FPR_4 0.004
14f666ad41SAnshuman Khandual
15*53fa86e7SMichael Ellerman #define FPR_1_REP 0x3f50624dd2f1a9fcull
16*53fa86e7SMichael Ellerman #define FPR_2_REP 0x3f60624dd2f1a9fcull
17*53fa86e7SMichael Ellerman #define FPR_3_REP 0x3f689374bc6a7efaull
18*53fa86e7SMichael Ellerman #define FPR_4_REP 0x3f70624dd2f1a9fcull
19f666ad41SAnshuman Khandual
20f666ad41SAnshuman Khandual /* Buffer must have 18 elements */
validate_gpr(unsigned long * gpr,unsigned long val)21f666ad41SAnshuman Khandual int validate_gpr(unsigned long *gpr, unsigned long val)
22f666ad41SAnshuman Khandual {
23f666ad41SAnshuman Khandual int i, found = 1;
24f666ad41SAnshuman Khandual
25f666ad41SAnshuman Khandual for (i = 0; i < 18; i++) {
26f666ad41SAnshuman Khandual if (gpr[i] != val) {
27f666ad41SAnshuman Khandual printf("GPR[%d]: %lx Expected: %lx\n",
28f666ad41SAnshuman Khandual i+14, gpr[i], val);
29f666ad41SAnshuman Khandual found = 0;
30f666ad41SAnshuman Khandual }
31f666ad41SAnshuman Khandual }
32f666ad41SAnshuman Khandual
33f666ad41SAnshuman Khandual if (!found)
34f666ad41SAnshuman Khandual return TEST_FAIL;
35f666ad41SAnshuman Khandual return TEST_PASS;
36f666ad41SAnshuman Khandual }
37f666ad41SAnshuman Khandual
38f666ad41SAnshuman Khandual /* Buffer must have 32 elements */
validate_fpr(__u64 * fpr,__u64 val)39*53fa86e7SMichael Ellerman int validate_fpr(__u64 *fpr, __u64 val)
40f666ad41SAnshuman Khandual {
41f666ad41SAnshuman Khandual int i, found = 1;
42f666ad41SAnshuman Khandual
43f666ad41SAnshuman Khandual for (i = 0; i < 32; i++) {
44f666ad41SAnshuman Khandual if (fpr[i] != val) {
45*53fa86e7SMichael Ellerman printf("FPR[%d]: %llx Expected: %llx\n", i, fpr[i], val);
46f666ad41SAnshuman Khandual found = 0;
47f666ad41SAnshuman Khandual }
48f666ad41SAnshuman Khandual }
49f666ad41SAnshuman Khandual
50f666ad41SAnshuman Khandual if (!found)
51f666ad41SAnshuman Khandual return TEST_FAIL;
52f666ad41SAnshuman Khandual return TEST_PASS;
53f666ad41SAnshuman Khandual }
54f666ad41SAnshuman Khandual
55f666ad41SAnshuman Khandual /* Buffer must have 32 elements */
validate_fpr_double(double * fpr,double val)56*53fa86e7SMichael Ellerman int validate_fpr_double(double *fpr, double val)
57f666ad41SAnshuman Khandual {
58f666ad41SAnshuman Khandual int i, found = 1;
59f666ad41SAnshuman Khandual
60f666ad41SAnshuman Khandual for (i = 0; i < 32; i++) {
61f666ad41SAnshuman Khandual if (fpr[i] != val) {
62f666ad41SAnshuman Khandual printf("FPR[%d]: %f Expected: %f\n", i, fpr[i], val);
63f666ad41SAnshuman Khandual found = 0;
64f666ad41SAnshuman Khandual }
65f666ad41SAnshuman Khandual }
66f666ad41SAnshuman Khandual
67f666ad41SAnshuman Khandual if (!found)
68f666ad41SAnshuman Khandual return TEST_FAIL;
69f666ad41SAnshuman Khandual return TEST_PASS;
70f666ad41SAnshuman Khandual }
71