1 | /* inttest.h |
---|
2 | * |
---|
3 | * XXX: ??? |
---|
4 | * This include file contains the CPU dependent implementation |
---|
5 | * of the following routines needed to test RTEMS floating |
---|
6 | * point support: |
---|
7 | * INTEGER_load( &context ) |
---|
8 | * INTEGER_check( &context ) |
---|
9 | * |
---|
10 | * INTEGER_load - loads the specified floating point context |
---|
11 | * INTEGER_check - checks the specified floating point context |
---|
12 | * |
---|
13 | * NOTE: These routines are VERY CPU dependent and are thus |
---|
14 | * located in in the CPU dependent include file |
---|
15 | * inttest.h. These routines form the core of the |
---|
16 | * floating point context switch test. |
---|
17 | * |
---|
18 | * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. |
---|
19 | * On-Line Applications Research Corporation (OAR). |
---|
20 | * All rights assigned to U.S. Government, 1994. |
---|
21 | * |
---|
22 | * This material may be reproduced by or for the U.S. Government pursuant |
---|
23 | * to the copyright license under the clause at DFARS 252.227-7013. This |
---|
24 | * notice must appear in all copies of this file and its derivatives. |
---|
25 | * |
---|
26 | * $Id$ |
---|
27 | */ |
---|
28 | |
---|
29 | |
---|
30 | #ifndef __INTEGER_TEST_h |
---|
31 | #define __INTEGER_TEST_h |
---|
32 | |
---|
33 | #include <stdio.h> |
---|
34 | #define REG_VARIABLE rtems_unsigned32 |
---|
35 | |
---|
36 | #define INTEGER_DECLARE \ |
---|
37 | REG_VARIABLE int01 = 1; \ |
---|
38 | REG_VARIABLE int02 = 2; \ |
---|
39 | REG_VARIABLE int03 = 3; \ |
---|
40 | REG_VARIABLE int04 = 4; \ |
---|
41 | REG_VARIABLE int05 = 5; \ |
---|
42 | REG_VARIABLE int06 = 6; \ |
---|
43 | REG_VARIABLE int07 = 7; \ |
---|
44 | REG_VARIABLE int08 = 8; \ |
---|
45 | REG_VARIABLE int09 = 9; \ |
---|
46 | REG_VARIABLE int10 = 10; \ |
---|
47 | REG_VARIABLE int11 = 11; \ |
---|
48 | REG_VARIABLE int12 = 12; \ |
---|
49 | REG_VARIABLE int13 = 13; \ |
---|
50 | REG_VARIABLE int14 = 14; \ |
---|
51 | REG_VARIABLE int15 = 15; \ |
---|
52 | REG_VARIABLE int16 = 16; \ |
---|
53 | REG_VARIABLE int17 = 17; \ |
---|
54 | REG_VARIABLE int18 = 18; \ |
---|
55 | REG_VARIABLE int19 = 19; \ |
---|
56 | REG_VARIABLE int20 = 20; \ |
---|
57 | REG_VARIABLE int21 = 21; \ |
---|
58 | REG_VARIABLE int22 = 22; \ |
---|
59 | REG_VARIABLE int23 = 23; \ |
---|
60 | REG_VARIABLE int24 = 24; \ |
---|
61 | REG_VARIABLE int25 = 25; \ |
---|
62 | REG_VARIABLE int26 = 26; \ |
---|
63 | REG_VARIABLE int27 = 27; \ |
---|
64 | REG_VARIABLE int28 = 28; \ |
---|
65 | REG_VARIABLE int29 = 29; \ |
---|
66 | REG_VARIABLE int30 = 30; \ |
---|
67 | REG_VARIABLE int31 = 31; \ |
---|
68 | REG_VARIABLE int32 = 32 |
---|
69 | |
---|
70 | #define INTEGER_LOAD( _factor ) \ |
---|
71 | do { \ |
---|
72 | int01 += _factor; \ |
---|
73 | int02 += _factor; \ |
---|
74 | int03 += _factor; \ |
---|
75 | int04 += _factor; \ |
---|
76 | int05 += _factor; \ |
---|
77 | int06 += _factor; \ |
---|
78 | int07 += _factor; \ |
---|
79 | int08 += _factor; \ |
---|
80 | int09 += _factor; \ |
---|
81 | int10 += _factor; \ |
---|
82 | int11 += _factor; \ |
---|
83 | int12 += _factor; \ |
---|
84 | int13 += _factor; \ |
---|
85 | int14 += _factor; \ |
---|
86 | int15 += _factor; \ |
---|
87 | int16 += _factor; \ |
---|
88 | int17 += _factor; \ |
---|
89 | int18 += _factor; \ |
---|
90 | int19 += _factor; \ |
---|
91 | int20 += _factor; \ |
---|
92 | int21 += _factor; \ |
---|
93 | int22 += _factor; \ |
---|
94 | int23 += _factor; \ |
---|
95 | int24 += _factor; \ |
---|
96 | int25 += _factor; \ |
---|
97 | int26 += _factor; \ |
---|
98 | int27 += _factor; \ |
---|
99 | int28 += _factor; \ |
---|
100 | int29 += _factor; \ |
---|
101 | int30 += _factor; \ |
---|
102 | int31 += _factor; \ |
---|
103 | int32 += _factor; \ |
---|
104 | } while (0) |
---|
105 | |
---|
106 | #define INTEGER_CHECK_ONE( _v, _base, _factor ) \ |
---|
107 | if ( (_v) != ((_base) + (_factor)) ) { \ |
---|
108 | printf("%d: " #_v " wrong -- (0x%x not 0x%x)\n", \ |
---|
109 | task_index, (_v), (_base + _factor)); \ |
---|
110 | } |
---|
111 | |
---|
112 | |
---|
113 | #define INTEGER_CHECK( _factor ) \ |
---|
114 | do { \ |
---|
115 | INTEGER_CHECK_ONE( int01, 1, (_factor) ); \ |
---|
116 | INTEGER_CHECK_ONE( int02, 2, (_factor) ); \ |
---|
117 | INTEGER_CHECK_ONE( int03, 3, (_factor) ); \ |
---|
118 | INTEGER_CHECK_ONE( int04, 4, (_factor) ); \ |
---|
119 | INTEGER_CHECK_ONE( int05, 5, (_factor) ); \ |
---|
120 | INTEGER_CHECK_ONE( int06, 6, (_factor) ); \ |
---|
121 | INTEGER_CHECK_ONE( int07, 7, (_factor) ); \ |
---|
122 | INTEGER_CHECK_ONE( int08, 8, (_factor) ); \ |
---|
123 | INTEGER_CHECK_ONE( int09, 9, (_factor) ); \ |
---|
124 | INTEGER_CHECK_ONE( int10, 10, (_factor) ); \ |
---|
125 | INTEGER_CHECK_ONE( int11, 11, (_factor) ); \ |
---|
126 | INTEGER_CHECK_ONE( int12, 12, (_factor) ); \ |
---|
127 | INTEGER_CHECK_ONE( int13, 13, (_factor) ); \ |
---|
128 | INTEGER_CHECK_ONE( int14, 14, (_factor) ); \ |
---|
129 | INTEGER_CHECK_ONE( int15, 15, (_factor) ); \ |
---|
130 | INTEGER_CHECK_ONE( int16, 16, (_factor) ); \ |
---|
131 | INTEGER_CHECK_ONE( int17, 17, (_factor) ); \ |
---|
132 | INTEGER_CHECK_ONE( int18, 18, (_factor) ); \ |
---|
133 | INTEGER_CHECK_ONE( int19, 19, (_factor) ); \ |
---|
134 | INTEGER_CHECK_ONE( int20, 20, (_factor) ); \ |
---|
135 | INTEGER_CHECK_ONE( int21, 21, (_factor) ); \ |
---|
136 | INTEGER_CHECK_ONE( int22, 22, (_factor) ); \ |
---|
137 | INTEGER_CHECK_ONE( int23, 23, (_factor) ); \ |
---|
138 | INTEGER_CHECK_ONE( int24, 24, (_factor) ); \ |
---|
139 | INTEGER_CHECK_ONE( int25, 25, (_factor) ); \ |
---|
140 | INTEGER_CHECK_ONE( int26, 26, (_factor) ); \ |
---|
141 | INTEGER_CHECK_ONE( int27, 27, (_factor) ); \ |
---|
142 | INTEGER_CHECK_ONE( int28, 28, (_factor) ); \ |
---|
143 | INTEGER_CHECK_ONE( int29, 29, (_factor) ); \ |
---|
144 | INTEGER_CHECK_ONE( int30, 30, (_factor) ); \ |
---|
145 | INTEGER_CHECK_ONE( int31, 31, (_factor) ); \ |
---|
146 | INTEGER_CHECK_ONE( int32, 32, (_factor) ); \ |
---|
147 | } while (0) |
---|
148 | |
---|
149 | #endif |
---|