OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.target/] [x86_64/] [abi/] [test_passing_floats.c] - Blame information for rev 841

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 149 jeremybenn
/* This is an autogenerated file. Do not edit.  */
2
 
3
#include "defines.h"
4
#include "macros.h"
5
#include "args.h"
6
 
7
struct IntegerRegisters iregs;
8
struct FloatRegisters fregs;
9
unsigned int num_iregs, num_fregs;
10
 
11
/* This struct holds values for argument checking.  */
12
struct
13
{
14
  float f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23;
15
} values_float;
16
 
17
struct
18
{
19
  double f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23;
20
} values_double;
21
 
22
struct
23
{
24
  ldouble f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23;
25
} values_ldouble;
26
 
27
void
28
fun_check_float_passing_float8_values (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED)
29
{
30
  /* Check argument values.  */
31
  assert (values_float.f0 == f0);
32
  assert (values_float.f1 == f1);
33
  assert (values_float.f2 == f2);
34
  assert (values_float.f3 == f3);
35
  assert (values_float.f4 == f4);
36
  assert (values_float.f5 == f5);
37
  assert (values_float.f6 == f6);
38
  assert (values_float.f7 == f7);
39
 
40
}
41
 
42
void
43
fun_check_float_passing_float8_regs (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED)
44
{
45
  /* Check register contents.  */
46
  check_float_arguments;
47
}
48
 
49
void
50
fun_check_float_passing_float16_values (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED, float f8 ATTRIBUTE_UNUSED, float f9 ATTRIBUTE_UNUSED, float f10 ATTRIBUTE_UNUSED, float f11 ATTRIBUTE_UNUSED, float f12 ATTRIBUTE_UNUSED, float f13 ATTRIBUTE_UNUSED, float f14 ATTRIBUTE_UNUSED, float f15 ATTRIBUTE_UNUSED)
51
{
52
  /* Check argument values.  */
53
  assert (values_float.f0 == f0);
54
  assert (values_float.f1 == f1);
55
  assert (values_float.f2 == f2);
56
  assert (values_float.f3 == f3);
57
  assert (values_float.f4 == f4);
58
  assert (values_float.f5 == f5);
59
  assert (values_float.f6 == f6);
60
  assert (values_float.f7 == f7);
61
  assert (values_float.f8 == f8);
62
  assert (values_float.f9 == f9);
63
  assert (values_float.f10 == f10);
64
  assert (values_float.f11 == f11);
65
  assert (values_float.f12 == f12);
66
  assert (values_float.f13 == f13);
67
  assert (values_float.f14 == f14);
68
  assert (values_float.f15 == f15);
69
 
70
}
71
 
72
void
73
fun_check_float_passing_float16_regs (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED, float f8 ATTRIBUTE_UNUSED, float f9 ATTRIBUTE_UNUSED, float f10 ATTRIBUTE_UNUSED, float f11 ATTRIBUTE_UNUSED, float f12 ATTRIBUTE_UNUSED, float f13 ATTRIBUTE_UNUSED, float f14 ATTRIBUTE_UNUSED, float f15 ATTRIBUTE_UNUSED)
74
{
75
  /* Check register contents.  */
76
  check_float_arguments;
77
}
78
 
79
void
80
fun_check_float_passing_float20_values (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED, float f8 ATTRIBUTE_UNUSED, float f9 ATTRIBUTE_UNUSED, float f10 ATTRIBUTE_UNUSED, float f11 ATTRIBUTE_UNUSED, float f12 ATTRIBUTE_UNUSED, float f13 ATTRIBUTE_UNUSED, float f14 ATTRIBUTE_UNUSED, float f15 ATTRIBUTE_UNUSED, float f16 ATTRIBUTE_UNUSED, float f17 ATTRIBUTE_UNUSED, float f18 ATTRIBUTE_UNUSED, float f19 ATTRIBUTE_UNUSED)
81
{
82
  /* Check argument values.  */
83
  assert (values_float.f0 == f0);
84
  assert (values_float.f1 == f1);
85
  assert (values_float.f2 == f2);
86
  assert (values_float.f3 == f3);
87
  assert (values_float.f4 == f4);
88
  assert (values_float.f5 == f5);
89
  assert (values_float.f6 == f6);
90
  assert (values_float.f7 == f7);
91
  assert (values_float.f8 == f8);
92
  assert (values_float.f9 == f9);
93
  assert (values_float.f10 == f10);
94
  assert (values_float.f11 == f11);
95
  assert (values_float.f12 == f12);
96
  assert (values_float.f13 == f13);
97
  assert (values_float.f14 == f14);
98
  assert (values_float.f15 == f15);
99
  assert (values_float.f16 == f16);
100
  assert (values_float.f17 == f17);
101
  assert (values_float.f18 == f18);
102
  assert (values_float.f19 == f19);
103
 
104
}
105
 
106
void
107
fun_check_float_passing_float20_regs (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED, float f8 ATTRIBUTE_UNUSED, float f9 ATTRIBUTE_UNUSED, float f10 ATTRIBUTE_UNUSED, float f11 ATTRIBUTE_UNUSED, float f12 ATTRIBUTE_UNUSED, float f13 ATTRIBUTE_UNUSED, float f14 ATTRIBUTE_UNUSED, float f15 ATTRIBUTE_UNUSED, float f16 ATTRIBUTE_UNUSED, float f17 ATTRIBUTE_UNUSED, float f18 ATTRIBUTE_UNUSED, float f19 ATTRIBUTE_UNUSED)
108
{
109
  /* Check register contents.  */
110
  check_float_arguments;
111
}
112
 
113
void
114
fun_check_float_passing_double8_values (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED)
115
{
116
  /* Check argument values.  */
117
  assert (values_double.f0 == f0);
118
  assert (values_double.f1 == f1);
119
  assert (values_double.f2 == f2);
120
  assert (values_double.f3 == f3);
121
  assert (values_double.f4 == f4);
122
  assert (values_double.f5 == f5);
123
  assert (values_double.f6 == f6);
124
  assert (values_double.f7 == f7);
125
 
126
}
127
 
128
void
129
fun_check_float_passing_double8_regs (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED)
130
{
131
  /* Check register contents.  */
132
  check_double_arguments;
133
}
134
 
135
void
136
fun_check_float_passing_double16_values (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED, double f8 ATTRIBUTE_UNUSED, double f9 ATTRIBUTE_UNUSED, double f10 ATTRIBUTE_UNUSED, double f11 ATTRIBUTE_UNUSED, double f12 ATTRIBUTE_UNUSED, double f13 ATTRIBUTE_UNUSED, double f14 ATTRIBUTE_UNUSED, double f15 ATTRIBUTE_UNUSED)
137
{
138
  /* Check argument values.  */
139
  assert (values_double.f0 == f0);
140
  assert (values_double.f1 == f1);
141
  assert (values_double.f2 == f2);
142
  assert (values_double.f3 == f3);
143
  assert (values_double.f4 == f4);
144
  assert (values_double.f5 == f5);
145
  assert (values_double.f6 == f6);
146
  assert (values_double.f7 == f7);
147
  assert (values_double.f8 == f8);
148
  assert (values_double.f9 == f9);
149
  assert (values_double.f10 == f10);
150
  assert (values_double.f11 == f11);
151
  assert (values_double.f12 == f12);
152
  assert (values_double.f13 == f13);
153
  assert (values_double.f14 == f14);
154
  assert (values_double.f15 == f15);
155
 
156
}
157
 
158
void
159
fun_check_float_passing_double16_regs (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED, double f8 ATTRIBUTE_UNUSED, double f9 ATTRIBUTE_UNUSED, double f10 ATTRIBUTE_UNUSED, double f11 ATTRIBUTE_UNUSED, double f12 ATTRIBUTE_UNUSED, double f13 ATTRIBUTE_UNUSED, double f14 ATTRIBUTE_UNUSED, double f15 ATTRIBUTE_UNUSED)
160
{
161
  /* Check register contents.  */
162
  check_double_arguments;
163
}
164
 
165
void
166
fun_check_float_passing_double20_values (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED, double f8 ATTRIBUTE_UNUSED, double f9 ATTRIBUTE_UNUSED, double f10 ATTRIBUTE_UNUSED, double f11 ATTRIBUTE_UNUSED, double f12 ATTRIBUTE_UNUSED, double f13 ATTRIBUTE_UNUSED, double f14 ATTRIBUTE_UNUSED, double f15 ATTRIBUTE_UNUSED, double f16 ATTRIBUTE_UNUSED, double f17 ATTRIBUTE_UNUSED, double f18 ATTRIBUTE_UNUSED, double f19 ATTRIBUTE_UNUSED)
167
{
168
  /* Check argument values.  */
169
  assert (values_double.f0 == f0);
170
  assert (values_double.f1 == f1);
171
  assert (values_double.f2 == f2);
172
  assert (values_double.f3 == f3);
173
  assert (values_double.f4 == f4);
174
  assert (values_double.f5 == f5);
175
  assert (values_double.f6 == f6);
176
  assert (values_double.f7 == f7);
177
  assert (values_double.f8 == f8);
178
  assert (values_double.f9 == f9);
179
  assert (values_double.f10 == f10);
180
  assert (values_double.f11 == f11);
181
  assert (values_double.f12 == f12);
182
  assert (values_double.f13 == f13);
183
  assert (values_double.f14 == f14);
184
  assert (values_double.f15 == f15);
185
  assert (values_double.f16 == f16);
186
  assert (values_double.f17 == f17);
187
  assert (values_double.f18 == f18);
188
  assert (values_double.f19 == f19);
189
 
190
}
191
 
192
void
193
fun_check_float_passing_double20_regs (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED, double f8 ATTRIBUTE_UNUSED, double f9 ATTRIBUTE_UNUSED, double f10 ATTRIBUTE_UNUSED, double f11 ATTRIBUTE_UNUSED, double f12 ATTRIBUTE_UNUSED, double f13 ATTRIBUTE_UNUSED, double f14 ATTRIBUTE_UNUSED, double f15 ATTRIBUTE_UNUSED, double f16 ATTRIBUTE_UNUSED, double f17 ATTRIBUTE_UNUSED, double f18 ATTRIBUTE_UNUSED, double f19 ATTRIBUTE_UNUSED)
194
{
195
  /* Check register contents.  */
196
  check_double_arguments;
197
}
198
 
199
void
200
fun_check_x87_passing_ldouble8_values (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED)
201
{
202
  /* Check argument values.  */
203
  assert (values_ldouble.f0 == f0);
204
  assert (values_ldouble.f1 == f1);
205
  assert (values_ldouble.f2 == f2);
206
  assert (values_ldouble.f3 == f3);
207
  assert (values_ldouble.f4 == f4);
208
  assert (values_ldouble.f5 == f5);
209
  assert (values_ldouble.f6 == f6);
210
  assert (values_ldouble.f7 == f7);
211
 
212
}
213
 
214
void
215
fun_check_x87_passing_ldouble8_regs (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED)
216
{
217
  /* Check register contents.  */
218
  check_ldouble_arguments;
219
}
220
 
221
void
222
fun_check_x87_passing_ldouble16_values (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED, ldouble f8 ATTRIBUTE_UNUSED, ldouble f9 ATTRIBUTE_UNUSED, ldouble f10 ATTRIBUTE_UNUSED, ldouble f11 ATTRIBUTE_UNUSED, ldouble f12 ATTRIBUTE_UNUSED, ldouble f13 ATTRIBUTE_UNUSED, ldouble f14 ATTRIBUTE_UNUSED, ldouble f15 ATTRIBUTE_UNUSED)
223
{
224
  /* Check argument values.  */
225
  assert (values_ldouble.f0 == f0);
226
  assert (values_ldouble.f1 == f1);
227
  assert (values_ldouble.f2 == f2);
228
  assert (values_ldouble.f3 == f3);
229
  assert (values_ldouble.f4 == f4);
230
  assert (values_ldouble.f5 == f5);
231
  assert (values_ldouble.f6 == f6);
232
  assert (values_ldouble.f7 == f7);
233
  assert (values_ldouble.f8 == f8);
234
  assert (values_ldouble.f9 == f9);
235
  assert (values_ldouble.f10 == f10);
236
  assert (values_ldouble.f11 == f11);
237
  assert (values_ldouble.f12 == f12);
238
  assert (values_ldouble.f13 == f13);
239
  assert (values_ldouble.f14 == f14);
240
  assert (values_ldouble.f15 == f15);
241
 
242
}
243
 
244
void
245
fun_check_x87_passing_ldouble16_regs (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED, ldouble f8 ATTRIBUTE_UNUSED, ldouble f9 ATTRIBUTE_UNUSED, ldouble f10 ATTRIBUTE_UNUSED, ldouble f11 ATTRIBUTE_UNUSED, ldouble f12 ATTRIBUTE_UNUSED, ldouble f13 ATTRIBUTE_UNUSED, ldouble f14 ATTRIBUTE_UNUSED, ldouble f15 ATTRIBUTE_UNUSED)
246
{
247
  /* Check register contents.  */
248
  check_ldouble_arguments;
249
}
250
 
251
void
252
fun_check_x87_passing_ldouble20_values (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED, ldouble f8 ATTRIBUTE_UNUSED, ldouble f9 ATTRIBUTE_UNUSED, ldouble f10 ATTRIBUTE_UNUSED, ldouble f11 ATTRIBUTE_UNUSED, ldouble f12 ATTRIBUTE_UNUSED, ldouble f13 ATTRIBUTE_UNUSED, ldouble f14 ATTRIBUTE_UNUSED, ldouble f15 ATTRIBUTE_UNUSED, ldouble f16 ATTRIBUTE_UNUSED, ldouble f17 ATTRIBUTE_UNUSED, ldouble f18 ATTRIBUTE_UNUSED, ldouble f19 ATTRIBUTE_UNUSED)
253
{
254
  /* Check argument values.  */
255
  assert (values_ldouble.f0 == f0);
256
  assert (values_ldouble.f1 == f1);
257
  assert (values_ldouble.f2 == f2);
258
  assert (values_ldouble.f3 == f3);
259
  assert (values_ldouble.f4 == f4);
260
  assert (values_ldouble.f5 == f5);
261
  assert (values_ldouble.f6 == f6);
262
  assert (values_ldouble.f7 == f7);
263
  assert (values_ldouble.f8 == f8);
264
  assert (values_ldouble.f9 == f9);
265
  assert (values_ldouble.f10 == f10);
266
  assert (values_ldouble.f11 == f11);
267
  assert (values_ldouble.f12 == f12);
268
  assert (values_ldouble.f13 == f13);
269
  assert (values_ldouble.f14 == f14);
270
  assert (values_ldouble.f15 == f15);
271
  assert (values_ldouble.f16 == f16);
272
  assert (values_ldouble.f17 == f17);
273
  assert (values_ldouble.f18 == f18);
274
  assert (values_ldouble.f19 == f19);
275
 
276
}
277
 
278
void
279
fun_check_x87_passing_ldouble20_regs (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED, ldouble f8 ATTRIBUTE_UNUSED, ldouble f9 ATTRIBUTE_UNUSED, ldouble f10 ATTRIBUTE_UNUSED, ldouble f11 ATTRIBUTE_UNUSED, ldouble f12 ATTRIBUTE_UNUSED, ldouble f13 ATTRIBUTE_UNUSED, ldouble f14 ATTRIBUTE_UNUSED, ldouble f15 ATTRIBUTE_UNUSED, ldouble f16 ATTRIBUTE_UNUSED, ldouble f17 ATTRIBUTE_UNUSED, ldouble f18 ATTRIBUTE_UNUSED, ldouble f19 ATTRIBUTE_UNUSED)
280
{
281
  /* Check register contents.  */
282
  check_ldouble_arguments;
283
}
284
 
285
#define def_check_float_passing8(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _func1, _func2, TYPE) \
286
  values_ ## TYPE .f0 = _f0; \
287
  values_ ## TYPE .f1 = _f1; \
288
  values_ ## TYPE .f2 = _f2; \
289
  values_ ## TYPE .f3 = _f3; \
290
  values_ ## TYPE .f4 = _f4; \
291
  values_ ## TYPE .f5 = _f5; \
292
  values_ ## TYPE .f6 = _f6; \
293
  values_ ## TYPE .f7 = _f7; \
294
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7); \
295
  \
296
  clear_float_registers; \
297
  fregs.F0._ ## TYPE [0] = _f0; \
298
  fregs.F1._ ## TYPE [0] = _f1; \
299
  fregs.F2._ ## TYPE [0] = _f2; \
300
  fregs.F3._ ## TYPE [0] = _f3; \
301
  fregs.F4._ ## TYPE [0] = _f4; \
302
  fregs.F5._ ## TYPE [0] = _f5; \
303
  fregs.F6._ ## TYPE [0] = _f6; \
304
  fregs.F7._ ## TYPE [0] = _f7; \
305
  num_fregs = 8; \
306
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7);
307
 
308
#define def_check_float_passing16(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _func1, _func2, TYPE) \
309
  values_ ## TYPE .f0 = _f0; \
310
  values_ ## TYPE .f1 = _f1; \
311
  values_ ## TYPE .f2 = _f2; \
312
  values_ ## TYPE .f3 = _f3; \
313
  values_ ## TYPE .f4 = _f4; \
314
  values_ ## TYPE .f5 = _f5; \
315
  values_ ## TYPE .f6 = _f6; \
316
  values_ ## TYPE .f7 = _f7; \
317
  values_ ## TYPE .f8 = _f8; \
318
  values_ ## TYPE .f9 = _f9; \
319
  values_ ## TYPE .f10 = _f10; \
320
  values_ ## TYPE .f11 = _f11; \
321
  values_ ## TYPE .f12 = _f12; \
322
  values_ ## TYPE .f13 = _f13; \
323
  values_ ## TYPE .f14 = _f14; \
324
  values_ ## TYPE .f15 = _f15; \
325
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15); \
326
  \
327
  clear_float_registers; \
328
  fregs.F0._ ## TYPE [0] = _f0; \
329
  fregs.F1._ ## TYPE [0] = _f1; \
330
  fregs.F2._ ## TYPE [0] = _f2; \
331
  fregs.F3._ ## TYPE [0] = _f3; \
332
  fregs.F4._ ## TYPE [0] = _f4; \
333
  fregs.F5._ ## TYPE [0] = _f5; \
334
  fregs.F6._ ## TYPE [0] = _f6; \
335
  fregs.F7._ ## TYPE [0] = _f7; \
336
  num_fregs = 8; \
337
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15);
338
 
339
#define def_check_float_passing20(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19, _func1, _func2, TYPE) \
340
  values_ ## TYPE .f0 = _f0; \
341
  values_ ## TYPE .f1 = _f1; \
342
  values_ ## TYPE .f2 = _f2; \
343
  values_ ## TYPE .f3 = _f3; \
344
  values_ ## TYPE .f4 = _f4; \
345
  values_ ## TYPE .f5 = _f5; \
346
  values_ ## TYPE .f6 = _f6; \
347
  values_ ## TYPE .f7 = _f7; \
348
  values_ ## TYPE .f8 = _f8; \
349
  values_ ## TYPE .f9 = _f9; \
350
  values_ ## TYPE .f10 = _f10; \
351
  values_ ## TYPE .f11 = _f11; \
352
  values_ ## TYPE .f12 = _f12; \
353
  values_ ## TYPE .f13 = _f13; \
354
  values_ ## TYPE .f14 = _f14; \
355
  values_ ## TYPE .f15 = _f15; \
356
  values_ ## TYPE .f16 = _f16; \
357
  values_ ## TYPE .f17 = _f17; \
358
  values_ ## TYPE .f18 = _f18; \
359
  values_ ## TYPE .f19 = _f19; \
360
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19); \
361
  \
362
  clear_float_registers; \
363
  fregs.F0._ ## TYPE [0] = _f0; \
364
  fregs.F1._ ## TYPE [0] = _f1; \
365
  fregs.F2._ ## TYPE [0] = _f2; \
366
  fregs.F3._ ## TYPE [0] = _f3; \
367
  fregs.F4._ ## TYPE [0] = _f4; \
368
  fregs.F5._ ## TYPE [0] = _f5; \
369
  fregs.F6._ ## TYPE [0] = _f6; \
370
  fregs.F7._ ## TYPE [0] = _f7; \
371
  num_fregs = 8; \
372
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19);
373
 
374
#define def_check_x87_passing8(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _func1, _func2, TYPE) \
375
  values_ ## TYPE .f0 = _f0; \
376
  values_ ## TYPE .f1 = _f1; \
377
  values_ ## TYPE .f2 = _f2; \
378
  values_ ## TYPE .f3 = _f3; \
379
  values_ ## TYPE .f4 = _f4; \
380
  values_ ## TYPE .f5 = _f5; \
381
  values_ ## TYPE .f6 = _f6; \
382
  values_ ## TYPE .f7 = _f7; \
383
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7); \
384
  \
385
  clear_x87_registers; \
386
  num_fregs = 0; \
387
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7);
388
 
389
#define def_check_x87_passing16(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _func1, _func2, TYPE) \
390
  values_ ## TYPE .f0 = _f0; \
391
  values_ ## TYPE .f1 = _f1; \
392
  values_ ## TYPE .f2 = _f2; \
393
  values_ ## TYPE .f3 = _f3; \
394
  values_ ## TYPE .f4 = _f4; \
395
  values_ ## TYPE .f5 = _f5; \
396
  values_ ## TYPE .f6 = _f6; \
397
  values_ ## TYPE .f7 = _f7; \
398
  values_ ## TYPE .f8 = _f8; \
399
  values_ ## TYPE .f9 = _f9; \
400
  values_ ## TYPE .f10 = _f10; \
401
  values_ ## TYPE .f11 = _f11; \
402
  values_ ## TYPE .f12 = _f12; \
403
  values_ ## TYPE .f13 = _f13; \
404
  values_ ## TYPE .f14 = _f14; \
405
  values_ ## TYPE .f15 = _f15; \
406
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15); \
407
  \
408
  clear_x87_registers; \
409
  num_fregs = 0; \
410
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15);
411
 
412
#define def_check_x87_passing20(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19, _func1, _func2, TYPE) \
413
  values_ ## TYPE .f0 = _f0; \
414
  values_ ## TYPE .f1 = _f1; \
415
  values_ ## TYPE .f2 = _f2; \
416
  values_ ## TYPE .f3 = _f3; \
417
  values_ ## TYPE .f4 = _f4; \
418
  values_ ## TYPE .f5 = _f5; \
419
  values_ ## TYPE .f6 = _f6; \
420
  values_ ## TYPE .f7 = _f7; \
421
  values_ ## TYPE .f8 = _f8; \
422
  values_ ## TYPE .f9 = _f9; \
423
  values_ ## TYPE .f10 = _f10; \
424
  values_ ## TYPE .f11 = _f11; \
425
  values_ ## TYPE .f12 = _f12; \
426
  values_ ## TYPE .f13 = _f13; \
427
  values_ ## TYPE .f14 = _f14; \
428
  values_ ## TYPE .f15 = _f15; \
429
  values_ ## TYPE .f16 = _f16; \
430
  values_ ## TYPE .f17 = _f17; \
431
  values_ ## TYPE .f18 = _f18; \
432
  values_ ## TYPE .f19 = _f19; \
433
  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19); \
434
  \
435
  clear_x87_registers; \
436
  num_fregs = 0; \
437
  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19);
438
 
439
void
440
test_floats_on_stack ()
441
{
442
  def_check_float_passing8(32, 33, 34, 35, 36, 37, 38, 39, fun_check_float_passing_float8_values, fun_check_float_passing_float8_regs, float);
443
 
444
  def_check_float_passing16(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, fun_check_float_passing_float16_values, fun_check_float_passing_float16_regs, float);
445
}
446
 
447
void
448
test_too_many_floats ()
449
{
450
  def_check_float_passing20(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, fun_check_float_passing_float20_values, fun_check_float_passing_float20_regs, float);
451
}
452
 
453
void
454
test_doubles_on_stack ()
455
{
456
  def_check_float_passing8(32, 33, 34, 35, 36, 37, 38, 39, fun_check_float_passing_double8_values, fun_check_float_passing_double8_regs, double);
457
 
458
  def_check_float_passing16(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, fun_check_float_passing_double16_values, fun_check_float_passing_double16_regs, double);
459
}
460
 
461
void
462
test_too_many_doubles ()
463
{
464
  def_check_float_passing20(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, fun_check_float_passing_double20_values, fun_check_float_passing_double20_regs, double);
465
}
466
 
467
void
468
test_long_doubles_on_stack ()
469
{
470
  def_check_x87_passing8(32, 33, 34, 35, 36, 37, 38, 39, fun_check_x87_passing_ldouble8_values, fun_check_x87_passing_ldouble8_regs, ldouble);
471
}
472
 
473
void
474
test_too_many_long_doubles ()
475
{
476
  def_check_x87_passing20(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, fun_check_x87_passing_ldouble20_values, fun_check_x87_passing_ldouble20_regs, ldouble);
477
}
478
 
479
void
480
test_float128s_on_stack ()
481
{
482
}
483
 
484
void
485
test_too_many_float128s ()
486
{
487
}
488
 
489
 
490
int
491
main (void)
492
{
493
  test_floats_on_stack ();
494
  test_too_many_floats ();
495
  test_doubles_on_stack ();
496
  test_too_many_doubles ();
497
  test_long_doubles_on_stack ();
498
  test_too_many_long_doubles ();
499
  test_float128s_on_stack ();
500
  test_too_many_float128s ();
501
  return 0;
502
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.