1 | -- |
---|
2 | -- fp.inc |
---|
3 | -- |
---|
4 | -- Macros to produce a large number of LOCAL floating point variables. This |
---|
5 | -- preprocessing is necessary to insure that the variables are |
---|
6 | -- scoped properly and to avoid duplicating hundreds of lines |
---|
7 | -- of code. |
---|
8 | -- |
---|
9 | -- |
---|
10 | -- DEFICIENCIES: |
---|
11 | -- |
---|
12 | -- 1. This currently does not address whether or not the CPU |
---|
13 | -- actually has hardware floating point. It just does the work. |
---|
14 | -- |
---|
15 | -- COPYRIGHT (c) 1989-1997. |
---|
16 | -- On-Line Applications Research Corporation (OAR). |
---|
17 | -- Copyright assigned to U.S. Government, 1994. |
---|
18 | -- |
---|
19 | -- The license and distribution terms for this file may in |
---|
20 | -- the file LICENSE in this distribution or at |
---|
21 | -- http://www.OARcorp.com/rtems/license.html. |
---|
22 | -- |
---|
23 | -- $Id$ |
---|
24 | |
---|
25 | -- |
---|
26 | -- private definitions for macro use |
---|
27 | -- |
---|
28 | |
---|
29 | -- macro usage EPSILON() |
---|
30 | define(`EPSILON',`0.0005') |
---|
31 | |
---|
32 | -- macro usage FP_CHECK_ONE( value, base, factor ) |
---|
33 | define(`FP_CHECK_ONE',` |
---|
34 | if ( $1 - ( $2 + $3 ) ) > EPSILON or else ( $1 - ( $2 + $3 ) ) < - EPSILON then |
---|
35 | UNSIGNED32_IO.PUT( TASK_INDEX ); |
---|
36 | TEXT_IO.PUT( ": $1 wrong -- (" ); |
---|
37 | FLOAT_IO.PUT( $1 ); |
---|
38 | TEXT_IO.PUT( " not " ); |
---|
39 | FLOAT_IO.PUT( $2 + $3 ); |
---|
40 | TEXT_IO.PUT_LINE( ")" ); |
---|
41 | end if |
---|
42 | ' |
---|
43 | ) |
---|
44 | |
---|
45 | -- macro usage FP_DECLARE |
---|
46 | define(`FP_DECLARE', ` |
---|
47 | FP01 : FLOAT := 1.0; |
---|
48 | FP02 : FLOAT := 2.0; |
---|
49 | FP03 : FLOAT := 3.0; |
---|
50 | FP04 : FLOAT := 4.0; |
---|
51 | FP05 : FLOAT := 5.0; |
---|
52 | FP06 : FLOAT := 6.0; |
---|
53 | FP07 : FLOAT := 7.0; |
---|
54 | FP08 : FLOAT := 8.0; |
---|
55 | FP09 : FLOAT := 9.0; |
---|
56 | FP10 : FLOAT := 10.0; |
---|
57 | FP11 : FLOAT := 11.0; |
---|
58 | FP12 : FLOAT := 12.0; |
---|
59 | FP13 : FLOAT := 13.0; |
---|
60 | FP14 : FLOAT := 14.0; |
---|
61 | FP15 : FLOAT := 15.0; |
---|
62 | FP16 : FLOAT := 16.0; |
---|
63 | FP17 : FLOAT := 17.0; |
---|
64 | FP18 : FLOAT := 18.0; |
---|
65 | FP19 : FLOAT := 19.0; |
---|
66 | FP20 : FLOAT := 20.0; |
---|
67 | FP21 : FLOAT := 21.0; |
---|
68 | FP22 : FLOAT := 22.0; |
---|
69 | FP23 : FLOAT := 23.0; |
---|
70 | FP24 : FLOAT := 24.0; |
---|
71 | FP25 : FLOAT := 25.0; |
---|
72 | FP26 : FLOAT := 26.0; |
---|
73 | FP27 : FLOAT := 27.0; |
---|
74 | FP28 : FLOAT := 28.0; |
---|
75 | FP29 : FLOAT := 29.0; |
---|
76 | FP30 : FLOAT := 30.0; |
---|
77 | FP31 : FLOAT := 31.0; |
---|
78 | FP32 : FLOAT := 32.0 |
---|
79 | ' |
---|
80 | ) |
---|
81 | |
---|
82 | |
---|
83 | -- macro usage FP_LOAD( factor ) |
---|
84 | define(`FP_LOAD',` |
---|
85 | FP01 := FP01 + $1; |
---|
86 | FP02 := FP02 + $1; |
---|
87 | FP03 := FP03 + $1; |
---|
88 | FP04 := FP04 + $1; |
---|
89 | FP05 := FP05 + $1; |
---|
90 | FP06 := FP06 + $1; |
---|
91 | FP07 := FP07 + $1; |
---|
92 | FP08 := FP08 + $1; |
---|
93 | FP09 := FP09 + $1; |
---|
94 | FP10 := FP10 + $1; |
---|
95 | FP11 := FP11 + $1; |
---|
96 | FP12 := FP12 + $1; |
---|
97 | FP13 := FP13 + $1; |
---|
98 | FP14 := FP14 + $1; |
---|
99 | FP15 := FP15 + $1; |
---|
100 | FP16 := FP16 + $1; |
---|
101 | FP17 := FP17 + $1; |
---|
102 | FP18 := FP18 + $1; |
---|
103 | FP19 := FP19 + $1; |
---|
104 | FP20 := FP20 + $1; |
---|
105 | FP21 := FP21 + $1; |
---|
106 | FP22 := FP22 + $1; |
---|
107 | FP23 := FP23 + $1; |
---|
108 | FP24 := FP24 + $1; |
---|
109 | FP25 := FP25 + $1; |
---|
110 | FP26 := FP26 + $1; |
---|
111 | FP27 := FP27 + $1; |
---|
112 | FP28 := FP28 + $1; |
---|
113 | FP29 := FP29 + $1; |
---|
114 | FP30 := FP30 + $1; |
---|
115 | FP31 := FP31 + $1; |
---|
116 | FP32 := FP32 + $1 |
---|
117 | ') |
---|
118 | |
---|
119 | -- macro usage FP_CHECK( factor ) |
---|
120 | define(`FP_CHECK',` |
---|
121 | FP_CHECK_ONE( FP01, 1.0, $1 ); |
---|
122 | FP_CHECK_ONE( FP02, 2.0, $1 ); |
---|
123 | FP_CHECK_ONE( FP03, 3.0, $1 ); |
---|
124 | FP_CHECK_ONE( FP04, 4.0, $1 ); |
---|
125 | FP_CHECK_ONE( FP05, 5.0, $1 ); |
---|
126 | FP_CHECK_ONE( FP06, 6.0, $1 ); |
---|
127 | FP_CHECK_ONE( FP07, 7.0, $1 ); |
---|
128 | FP_CHECK_ONE( FP08, 8.0, $1 ); |
---|
129 | FP_CHECK_ONE( FP09, 9.0, $1 ); |
---|
130 | FP_CHECK_ONE( FP10, 10.0, $1 ); |
---|
131 | FP_CHECK_ONE( FP11, 11.0, $1 ); |
---|
132 | FP_CHECK_ONE( FP12, 12.0, $1 ); |
---|
133 | FP_CHECK_ONE( FP13, 13.0, $1 ); |
---|
134 | FP_CHECK_ONE( FP14, 14.0, $1 ); |
---|
135 | FP_CHECK_ONE( FP15, 15.0, $1 ); |
---|
136 | FP_CHECK_ONE( FP16, 16.0, $1 ); |
---|
137 | FP_CHECK_ONE( FP17, 17.0, $1 ); |
---|
138 | FP_CHECK_ONE( FP18, 18.0, $1 ); |
---|
139 | FP_CHECK_ONE( FP19, 19.0, $1 ); |
---|
140 | FP_CHECK_ONE( FP20, 20.0, $1 ); |
---|
141 | FP_CHECK_ONE( FP21, 21.0, $1 ); |
---|
142 | FP_CHECK_ONE( FP22, 22.0, $1 ); |
---|
143 | FP_CHECK_ONE( FP23, 23.0, $1 ); |
---|
144 | FP_CHECK_ONE( FP24, 24.0, $1 ); |
---|
145 | FP_CHECK_ONE( FP25, 25.0, $1 ); |
---|
146 | FP_CHECK_ONE( FP26, 26.0, $1 ); |
---|
147 | FP_CHECK_ONE( FP27, 27.0, $1 ); |
---|
148 | FP_CHECK_ONE( FP28, 28.0, $1 ); |
---|
149 | FP_CHECK_ONE( FP29, 29.0, $1 ); |
---|
150 | FP_CHECK_ONE( FP30, 30.0, $1 ); |
---|
151 | FP_CHECK_ONE( FP31, 31.0, $1 ); |
---|
152 | FP_CHECK_ONE( FP32, 32.0, $1 ) |
---|
153 | ' |
---|
154 | ) |
---|