VirtualBox

source: vbox/trunk/src/VBox/VMM/testcase/tstIEMAImpl.h@ 94415

Last change on this file since 94415 was 94413, checked in by vboxsync, 3 years ago

VMM/IEM,tstIEMAImpl: A handful of FPU instructions produces different results on AMD, it seems. bugref:9898

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 37.0 KB
Line 
1/* $Id: tstIEMAImpl.h 94413 2022-03-31 12:20:53Z vboxsync $ */
2/** @file
3 * IEM Assembly Instruction Helper Testcase, Data Header File.
4 */
5
6/*
7 * Copyright (C) 2022 Oracle Corporation
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 */
17
18#ifndef VMM_INCLUDED_SRC_testcase_tstIEMAImpl_h
19#define VMM_INCLUDED_SRC_testcase_tstIEMAImpl_h
20#ifndef RT_WITHOUT_PRAGMA_ONCE
21# pragma once
22#endif
23
24#include <iprt/types.h>
25
26
27/** @name Integer binary tests.
28 * @{ */
29typedef struct BINU8_TEST_T
30{
31 uint32_t fEflIn;
32 uint32_t fEflOut;
33 uint8_t uDstIn;
34 uint8_t uDstOut;
35 uint8_t uSrcIn;
36 uint8_t uMisc;
37} BINU8_TEST_T;
38
39typedef struct BINU16_TEST_T
40{
41 uint32_t fEflIn;
42 uint32_t fEflOut;
43 uint16_t uDstIn;
44 uint16_t uDstOut;
45 uint16_t uSrcIn;
46 uint16_t uMisc;
47} BINU16_TEST_T;
48
49typedef struct BINU32_TEST_T
50{
51 uint32_t fEflIn;
52 uint32_t fEflOut;
53 uint32_t uDstIn;
54 uint32_t uDstOut;
55 uint32_t uSrcIn;
56 uint32_t uMisc;
57} BINU32_TEST_T;
58
59typedef struct BINU64_TEST_T
60{
61 uint32_t fEflIn;
62 uint32_t fEflOut;
63 uint64_t uDstIn;
64 uint64_t uDstOut;
65 uint64_t uSrcIn;
66 uint64_t uMisc;
67} BINU64_TEST_T;
68/** @} */
69
70
71/** @name mult/div (PFNIEMAIMPLBINU8, PFNIEMAIMPLBINU16, PFNIEMAIMPLBINU32, PFNIEMAIMPLBINU64)
72 * @{ */
73typedef struct MULDIVU8_TEST_T
74{
75 uint32_t fEflIn;
76 uint32_t fEflOut;
77 uint16_t uDstIn;
78 uint16_t uDstOut;
79 uint8_t uSrcIn;
80 int32_t rc;
81} MULDIVU8_TEST_T;
82
83typedef struct MULDIVU16_TEST_T
84{
85 uint32_t fEflIn;
86 uint32_t fEflOut;
87 uint16_t uDst1In;
88 uint16_t uDst1Out;
89 uint16_t uDst2In;
90 uint16_t uDst2Out;
91 uint16_t uSrcIn;
92 int32_t rc;
93} MULDIVU16_TEST_T;
94
95typedef struct MULDIVU32_TEST_T
96{
97 uint32_t fEflIn;
98 uint32_t fEflOut;
99 uint32_t uDst1In;
100 uint32_t uDst1Out;
101 uint32_t uDst2In;
102 uint32_t uDst2Out;
103 uint32_t uSrcIn;
104 int32_t rc;
105} MULDIVU32_TEST_T;
106
107typedef struct MULDIVU64_TEST_T
108{
109 uint32_t fEflIn;
110 uint32_t fEflOut;
111 uint64_t uDst1In;
112 uint64_t uDst1Out;
113 uint64_t uDst2In;
114 uint64_t uDst2Out;
115 uint64_t uSrcIn;
116 int32_t rc;
117} MULDIVU64_TEST_T;
118/** @} */
119
120
121/** @name x87 FPU
122 * @{ */
123typedef struct FPU_LD_CONST_TEST_T
124{
125 uint16_t fFcw;
126 uint16_t fFswIn;
127 uint16_t fFswOut;
128 RTFLOAT80U rdResult;
129} FPU_LD_CONST_TEST_T;
130
131typedef struct FPU_R32_IN_TEST_T
132{
133 uint16_t fFcw;
134 uint16_t fFswIn;
135 uint16_t fFswOut;
136 RTFLOAT80U rdResult;
137 RTFLOAT32U InVal;
138} FPU_R32_IN_TEST_T;
139
140typedef struct FPU_R64_IN_TEST_T
141{
142 uint16_t fFcw;
143 uint16_t fFswIn;
144 uint16_t fFswOut;
145 RTFLOAT80U rdResult;
146 RTFLOAT64U InVal;
147} FPU_R64_IN_TEST_T;
148
149typedef struct FPU_R80_IN_TEST_T
150{
151 uint16_t fFcw;
152 uint16_t fFswIn;
153 uint16_t fFswOut;
154 RTFLOAT80U rdResult;
155 RTFLOAT80U InVal;
156} FPU_R80_IN_TEST_T;
157
158typedef struct FPU_I16_IN_TEST_T
159{
160 uint16_t fFcw;
161 uint16_t fFswIn;
162 uint16_t fFswOut;
163 RTFLOAT80U rdResult;
164 int16_t iInVal;
165} FPU_I16_IN_TEST_T;
166
167typedef struct FPU_I32_IN_TEST_T
168{
169 uint16_t fFcw;
170 uint16_t fFswIn;
171 uint16_t fFswOut;
172 RTFLOAT80U rdResult;
173 int32_t iInVal;
174} FPU_I32_IN_TEST_T;
175
176typedef struct FPU_I64_IN_TEST_T
177{
178 uint16_t fFcw;
179 uint16_t fFswIn;
180 uint16_t fFswOut;
181 RTFLOAT80U rdResult;
182 int64_t iInVal;
183} FPU_I64_IN_TEST_T;
184
185typedef struct FPU_D80_IN_TEST_T
186{
187 uint16_t fFcw;
188 uint16_t fFswIn;
189 uint16_t fFswOut;
190 RTFLOAT80U rdResult;
191 RTPBCD80U InVal;
192} FPU_D80_IN_TEST_T;
193
194typedef struct FPU_ST_R32_TEST_T
195{
196 uint16_t fFcw;
197 uint16_t fFswIn;
198 uint16_t fFswOut;
199 RTFLOAT80U InVal;
200 RTFLOAT32U OutVal;
201} FPU_ST_R32_TEST_T;
202
203typedef struct FPU_ST_R64_TEST_T
204{
205 uint16_t fFcw;
206 uint16_t fFswIn;
207 uint16_t fFswOut;
208 RTFLOAT80U InVal;
209 RTFLOAT64U OutVal;
210} FPU_ST_R64_TEST_T;
211
212typedef struct FPU_ST_R80_TEST_T
213{
214 uint16_t fFcw;
215 uint16_t fFswIn;
216 uint16_t fFswOut;
217 RTFLOAT80U InVal;
218 RTFLOAT80U OutVal;
219} FPU_ST_R80_TEST_T;
220
221typedef struct FPU_ST_I16_TEST_T
222{
223 uint16_t fFcw;
224 uint16_t fFswIn;
225 uint16_t fFswOut;
226 RTFLOAT80U InVal;
227 int16_t iOutVal;
228} FPU_ST_I16_TEST_T;
229
230typedef struct FPU_ST_I32_TEST_T
231{
232 uint16_t fFcw;
233 uint16_t fFswIn;
234 uint16_t fFswOut;
235 RTFLOAT80U InVal;
236 int32_t iOutVal;
237} FPU_ST_I32_TEST_T;
238
239typedef struct FPU_ST_I64_TEST_T
240{
241 uint16_t fFcw;
242 uint16_t fFswIn;
243 uint16_t fFswOut;
244 RTFLOAT80U InVal;
245 int64_t iOutVal;
246} FPU_ST_I64_TEST_T;
247
248typedef struct FPU_ST_D80_TEST_T
249{
250 uint16_t fFcw;
251 uint16_t fFswIn;
252 uint16_t fFswOut;
253 RTFLOAT80U InVal;
254 RTPBCD80U OutVal;
255} FPU_ST_D80_TEST_T;
256
257typedef struct FPU_BINARY_R80_TEST_T
258{
259 uint16_t fFcw;
260 uint16_t fFswIn;
261 uint16_t fFswOut;
262 RTFLOAT80U InVal1;
263 RTFLOAT80U InVal2;
264 RTFLOAT80U OutVal;
265} FPU_BINARY_R80_TEST_T;
266
267typedef struct FPU_BINARY_R64_TEST_T
268{
269 uint16_t fFcw;
270 uint16_t fFswIn;
271 uint16_t fFswOut;
272 RTFLOAT80U InVal1;
273 RTFLOAT64U InVal2;
274 RTFLOAT80U OutVal;
275} FPU_BINARY_R64_TEST_T;
276
277typedef struct FPU_BINARY_R32_TEST_T
278{
279 uint16_t fFcw;
280 uint16_t fFswIn;
281 uint16_t fFswOut;
282 RTFLOAT80U InVal1;
283 RTFLOAT32U InVal2;
284 RTFLOAT80U OutVal;
285} FPU_BINARY_R32_TEST_T;
286
287typedef struct FPU_BINARY_EFL_R80_TEST_T
288{
289 uint16_t fFcw;
290 uint16_t fFswIn;
291 uint16_t fFswOut;
292 RTFLOAT80U InVal1;
293 RTFLOAT80U InVal2;
294 uint32_t fEflOut;
295} FPU_BINARY_EFL_R80_TEST_T;
296
297/** @} */
298
299
300#define TSTIEM_DEFINE_EMPTY_TEST_ARRAY(a_Type, a_Instr) \
301 extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[] = { {0} }; \
302 extern uint32_t const RT_CONCAT(g_cTests_, a_Instr) = 0
303
304#define TSTIEM_DECLARE_TEST_ARRAY(a_szFile, a_Type, a_Instr) \
305 extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[]; \
306 extern uint32_t const RT_CONCAT(g_cTests_, a_Instr)
307
308TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, add_u8 );
309TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, add_u8_locked );
310TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, adc_u8 );
311TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, adc_u8_locked );
312TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sub_u8 );
313TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sub_u8_locked );
314TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sbb_u8 );
315TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sbb_u8_locked );
316TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, or_u8 );
317TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, or_u8_locked );
318TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, xor_u8 );
319TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, xor_u8_locked );
320TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, and_u8 );
321TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, and_u8_locked );
322TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, cmp_u8 );
323TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, test_u8 );
324
325TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, add_u16 );
326TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, add_u16_locked );
327TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, adc_u16 );
328TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, adc_u16_locked );
329TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sub_u16 );
330TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sub_u16_locked );
331TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sbb_u16 );
332TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sbb_u16_locked );
333TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, or_u16 );
334TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, or_u16_locked );
335TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, xor_u16 );
336TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, xor_u16_locked );
337TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, and_u16 );
338TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, and_u16_locked );
339TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, cmp_u16 );
340TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, test_u16 );
341TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, bt_u16 );
342TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btc_u16 );
343TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btc_u16_locked );
344TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btr_u16 );
345TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btr_u16_locked );
346TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, bts_u16 );
347TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, bts_u16_locked );
348TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, arpl );
349TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, bsf_u16_amd );
350TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, bsr_u16_amd );
351TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, imul_two_u16_amd );
352TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, bsf_u16_intel );
353TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, bsr_u16_intel );
354TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, imul_two_u16_intel );
355
356TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, add_u32 );
357TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, add_u32_locked );
358TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, adc_u32 );
359TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, adc_u32_locked );
360TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sub_u32 );
361TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sub_u32_locked );
362TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sbb_u32 );
363TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sbb_u32_locked );
364TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, or_u32 );
365TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, or_u32_locked );
366TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, xor_u32 );
367TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, xor_u32_locked );
368TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, and_u32 );
369TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, and_u32_locked );
370TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, cmp_u32 );
371TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, test_u32 );
372TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, bt_u32 );
373TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btc_u32 );
374TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btc_u32_locked );
375TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btr_u32 );
376TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btr_u32_locked );
377TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, bts_u32 );
378TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, bts_u32_locked );
379TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, bsf_u32_amd );
380TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, bsr_u32_amd );
381TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, imul_two_u32_amd );
382TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, bsf_u32_intel );
383TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, bsr_u32_intel );
384TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, imul_two_u32_intel );
385
386TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, add_u64 );
387TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, add_u64_locked );
388TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, adc_u64 );
389TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, adc_u64_locked );
390TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sub_u64 );
391TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sub_u64_locked );
392TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sbb_u64 );
393TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sbb_u64_locked );
394TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, or_u64 );
395TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, or_u64_locked );
396TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, xor_u64 );
397TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, xor_u64_locked );
398TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, and_u64 );
399TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, and_u64_locked );
400TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, cmp_u64 );
401TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, test_u64 );
402TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, bt_u64 );
403TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btc_u64 );
404TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btc_u64_locked );
405TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btr_u64 );
406TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btr_u64_locked );
407TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, bts_u64 );
408TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, bts_u64_locked );
409TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, bsf_u64_amd );
410TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, bsr_u64_amd );
411TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, imul_two_u64_amd );
412TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, bsf_u64_intel );
413TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, bsr_u64_intel );
414TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, imul_two_u64_intel );
415
416TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shrd_u16_amd );
417TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shld_u16_amd );
418TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shrd_u32_amd );
419TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shld_u32_amd );
420TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shrd_u64_amd );
421TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shld_u64_amd );
422TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shrd_u16_intel );
423TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shld_u16_intel );
424TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shrd_u32_intel );
425TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shld_u32_intel );
426TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shrd_u64_intel );
427TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shld_u64_intel );
428
429TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, inc_u8 );
430TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, inc_u8_locked );
431TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, dec_u8 );
432TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, dec_u8_locked );
433TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, not_u8 );
434TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, not_u8_locked );
435TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, neg_u8 );
436TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, neg_u8_locked );
437
438TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, inc_u16 );
439TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, inc_u16_locked );
440TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, dec_u16 );
441TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, dec_u16_locked );
442TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, not_u16 );
443TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, not_u16_locked );
444TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, neg_u16 );
445TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, neg_u16_locked );
446
447TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, inc_u32 );
448TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, inc_u32_locked );
449TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, dec_u32 );
450TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, dec_u32_locked );
451TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, not_u32 );
452TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, not_u32_locked );
453TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, neg_u32 );
454TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, neg_u32_locked );
455
456TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, inc_u64 );
457TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, inc_u64_locked );
458TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, dec_u64 );
459TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, dec_u64_locked );
460TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, not_u64 );
461TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, not_u64_locked );
462TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, neg_u64 );
463TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, neg_u64_locked );
464
465TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, rol_u8_amd );
466TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, ror_u8_amd );
467TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, rcl_u8_amd );
468TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, rcr_u8_amd );
469TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, shl_u8_amd );
470TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, shr_u8_amd );
471TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, sar_u8_amd );
472TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, rol_u8_intel );
473TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, ror_u8_intel );
474TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, rcl_u8_intel );
475TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, rcr_u8_intel );
476TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, shl_u8_intel );
477TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, shr_u8_intel );
478TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, sar_u8_intel );
479
480TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, rol_u16_amd );
481TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, ror_u16_amd );
482TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, rcl_u16_amd );
483TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, rcr_u16_amd );
484TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shl_u16_amd );
485TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shr_u16_amd );
486TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, sar_u16_amd );
487TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, rol_u16_intel );
488TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, ror_u16_intel );
489TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, rcl_u16_intel );
490TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, rcr_u16_intel );
491TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shl_u16_intel );
492TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shr_u16_intel );
493TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, sar_u16_intel );
494
495TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, rol_u32_amd );
496TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, ror_u32_amd );
497TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, rcl_u32_amd );
498TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, rcr_u32_amd );
499TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shl_u32_amd );
500TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shr_u32_amd );
501TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, sar_u32_amd );
502TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, rol_u32_intel );
503TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, ror_u32_intel );
504TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, rcl_u32_intel );
505TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, rcr_u32_intel );
506TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shl_u32_intel );
507TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shr_u32_intel );
508TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, sar_u32_intel );
509
510TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, rol_u64_amd );
511TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, ror_u64_amd );
512TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, rcl_u64_amd );
513TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, rcr_u64_amd );
514TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shl_u64_amd );
515TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shr_u64_amd );
516TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, sar_u64_amd );
517TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, rol_u64_intel );
518TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, ror_u64_intel );
519TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, rcl_u64_intel );
520TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, rcr_u64_intel );
521TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shl_u64_intel );
522TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shr_u64_intel );
523TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, sar_u64_intel );
524
525TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, mul_u8_amd );
526TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, imul_u8_amd );
527TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, div_u8_amd );
528TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, idiv_u8_amd );
529TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, mul_u8_intel );
530TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, imul_u8_intel );
531TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, div_u8_intel );
532TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, idiv_u8_intel );
533
534TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, mul_u16_amd );
535TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, imul_u16_amd );
536TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, div_u16_amd );
537TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, idiv_u16_amd );
538TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, mul_u16_intel );
539TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, imul_u16_intel );
540TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, div_u16_intel );
541TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, idiv_u16_intel );
542
543TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, mul_u32_amd );
544TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, imul_u32_amd );
545TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, div_u32_amd );
546TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, idiv_u32_amd );
547TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, mul_u32_intel );
548TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, imul_u32_intel );
549TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, div_u32_intel );
550TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, idiv_u32_intel );
551
552TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, mul_u64_amd );
553TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, imul_u64_amd );
554TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, div_u64_amd );
555TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, idiv_u64_amd );
556TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, mul_u64_intel );
557TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, imul_u64_intel );
558TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, div_u64_intel );
559TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, idiv_u64_intel );
560
561TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fld1 );
562TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldl2t );
563TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldl2e );
564TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldpi );
565TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldlg2 );
566TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldln2 );
567TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldz );
568
569TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_R80_IN_TEST_T, fld_r80_from_r80 );
570TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_R64_IN_TEST_T, fld_r80_from_r64 );
571TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_R32_IN_TEST_T, fld_r80_from_r32 );
572TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_I64_IN_TEST_T, fild_r80_from_i64 );
573TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_I32_IN_TEST_T, fild_r80_from_i32 );
574TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_I16_IN_TEST_T, fild_r80_from_i16 );
575TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_D80_IN_TEST_T, fld_r80_from_d80 );
576
577TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_R80_TEST_T, fst_r80_to_r80 );
578TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_R64_TEST_T, fst_r80_to_r64 );
579TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_R32_TEST_T, fst_r80_to_r32 );
580TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I64_TEST_T, fist_r80_to_i64 );
581TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I32_TEST_T, fist_r80_to_i32 );
582TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I16_TEST_T, fist_r80_to_i16 );
583TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I64_TEST_T, fistt_r80_to_i64 );
584TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I32_TEST_T, fistt_r80_to_i32 );
585TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt-Amd, FPU_ST_I16_TEST_T, fistt_r80_to_i16_amd );
586TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt-Intel, FPU_ST_I16_TEST_T, fistt_r80_to_i16_intel );
587TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_D80_TEST_T, fst_r80_to_d80 );
588
589TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fadd_r80_by_r80 );
590TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fsub_r80_by_r80 );
591TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fsubr_r80_by_r80 );
592TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fmul_r80_by_r80 );
593TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fdiv_r80_by_r80 );
594TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fdivr_r80_by_r80 );
595TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fprem_r80_by_r80 );
596TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fprem1_r80_by_r80 );
597TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fscale_r80_by_r80 );
598TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fpatan_r80_by_r80_amd );
599TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fpatan_r80_by_r80_intel );
600TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fyl2x_r80_by_r80_amd );
601TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fyl2x_r80_by_r80_intel );
602TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fyl2xp1_r80_by_r80_amd );
603TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fyl2xp1_r80_by_r80_intel );
604
605TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fadd_r80_by_r64 );
606TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fmul_r80_by_r64 );
607TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fsub_r80_by_r64 );
608TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fsubr_r80_by_r64 );
609TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fdiv_r80_by_r64 );
610TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fdivr_r80_by_r64 );
611
612TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fadd_r80_by_r32 );
613TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fmul_r80_by_r32 );
614TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fsub_r80_by_r32 );
615TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fsubr_r80_by_r32 );
616TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fdiv_r80_by_r32 );
617TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fdivr_r80_by_r32 );
618
619TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fcom_r80_by_r80 );
620TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fucom_r80_by_r80 );
621TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fcom_r80_by_r64 );
622TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fcom_r80_by_r32 );
623
624TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_EFL_R80_TEST_T, fcomi_r80_by_r80 );
625TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_EFL_R80_TEST_T, fucomi_r80_by_r80 );
626
627#endif /* !VMM_INCLUDED_SRC_testcase_tstIEMAImpl_h */
628
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette