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