Changeset 103064 in vbox
- Timestamp:
- Jan 25, 2024 2:41:25 PM (10 months ago)
- Location:
- trunk/src/VBox/VMM/testcase
- Files:
-
- 10 deleted
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/testcase/Makefile.kmk
r103056 r103064 484 484 tstIEMAImplDataInt-xor_u64_locked.bin.gz \ 485 485 \ 486 tstIEMAImplDataFpuBinary1-fadd_r80_by_r80.bin.gz \ 487 tstIEMAImplDataFpuBinary1-fcomi_r80_by_r80.bin.gz \ 488 tstIEMAImplDataFpuBinary1-fcom_r80_by_r80.bin.gz \ 489 tstIEMAImplDataFpuBinary1-fdivr_r80_by_r80.bin.gz \ 490 tstIEMAImplDataFpuBinary1-fdiv_r80_by_r80.bin.gz \ 491 tstIEMAImplDataFpuBinary1-fmul_r80_by_r80.bin.gz \ 492 tstIEMAImplDataFpuBinary1-fpatan_r80_by_r80_amd.bin.gz \ 493 tstIEMAImplDataFpuBinary1-fpatan_r80_by_r80_intel.bin.gz \ 494 tstIEMAImplDataFpuBinary1-fprem1_r80_by_r80.bin.gz \ 495 tstIEMAImplDataFpuBinary1-fprem_r80_by_r80.bin.gz \ 496 tstIEMAImplDataFpuBinary1-fscale_r80_by_r80.bin.gz \ 497 tstIEMAImplDataFpuBinary1-fsubr_r80_by_r80.bin.gz \ 498 tstIEMAImplDataFpuBinary1-fsub_r80_by_r80.bin.gz \ 499 tstIEMAImplDataFpuBinary1-fucomi_r80_by_r80.bin.gz \ 500 tstIEMAImplDataFpuBinary1-fucom_r80_by_r80.bin.gz \ 501 tstIEMAImplDataFpuBinary1-fyl2xp1_r80_by_r80_amd.bin.gz \ 502 tstIEMAImplDataFpuBinary1-fyl2xp1_r80_by_r80_intel.bin.gz \ 503 tstIEMAImplDataFpuBinary1-fyl2x_r80_by_r80_amd.bin.gz \ 504 tstIEMAImplDataFpuBinary1-fyl2x_r80_by_r80_intel.bin.gz \ 505 tstIEMAImplDataFpuBinary2-fadd_r80_by_r32.bin.gz \ 506 tstIEMAImplDataFpuBinary2-fadd_r80_by_r64.bin.gz \ 507 tstIEMAImplDataFpuBinary2-fcom_r80_by_r32.bin.gz \ 508 tstIEMAImplDataFpuBinary2-fcom_r80_by_r64.bin.gz \ 509 tstIEMAImplDataFpuBinary2-fdivr_r80_by_r32.bin.gz \ 510 tstIEMAImplDataFpuBinary2-fdivr_r80_by_r64.bin.gz \ 511 tstIEMAImplDataFpuBinary2-fdiv_r80_by_r32.bin.gz \ 512 tstIEMAImplDataFpuBinary2-fdiv_r80_by_r64.bin.gz \ 513 tstIEMAImplDataFpuBinary2-fiadd_r80_by_i16.bin.gz \ 514 tstIEMAImplDataFpuBinary2-fiadd_r80_by_i32.bin.gz \ 515 tstIEMAImplDataFpuBinary2-ficom_r80_by_i16.bin.gz \ 516 tstIEMAImplDataFpuBinary2-ficom_r80_by_i32.bin.gz \ 517 tstIEMAImplDataFpuBinary2-fidivr_r80_by_i16.bin.gz \ 518 tstIEMAImplDataFpuBinary2-fidivr_r80_by_i32.bin.gz \ 519 tstIEMAImplDataFpuBinary2-fidiv_r80_by_i16.bin.gz \ 520 tstIEMAImplDataFpuBinary2-fidiv_r80_by_i32.bin.gz \ 521 tstIEMAImplDataFpuBinary2-fimul_r80_by_i16.bin.gz \ 522 tstIEMAImplDataFpuBinary2-fimul_r80_by_i32.bin.gz \ 523 tstIEMAImplDataFpuBinary2-fisubr_r80_by_i16.bin.gz \ 524 tstIEMAImplDataFpuBinary2-fisubr_r80_by_i32.bin.gz \ 525 tstIEMAImplDataFpuBinary2-fisub_r80_by_i16.bin.gz \ 526 tstIEMAImplDataFpuBinary2-fisub_r80_by_i32.bin.gz \ 527 tstIEMAImplDataFpuBinary2-fmul_r80_by_r32.bin.gz \ 528 tstIEMAImplDataFpuBinary2-fmul_r80_by_r64.bin.gz \ 529 tstIEMAImplDataFpuBinary2-fsubr_r80_by_r32.bin.gz \ 530 tstIEMAImplDataFpuBinary2-fsubr_r80_by_r64.bin.gz \ 531 tstIEMAImplDataFpuBinary2-fsub_r80_by_r32.bin.gz \ 532 tstIEMAImplDataFpuBinary2-fsub_r80_by_r64.bin.gz \ 533 tstIEMAImplDataFpuLdSt-fild_r80_from_i16.bin.gz \ 534 tstIEMAImplDataFpuLdSt-fild_r80_from_i32.bin.gz \ 535 tstIEMAImplDataFpuLdSt-fild_r80_from_i64.bin.gz \ 536 tstIEMAImplDataFpuLdSt-fistt_r80_to_i16_amd.bin.gz \ 537 tstIEMAImplDataFpuLdSt-fistt_r80_to_i16_intel.bin.gz \ 538 tstIEMAImplDataFpuLdSt-fistt_r80_to_i32.bin.gz \ 539 tstIEMAImplDataFpuLdSt-fistt_r80_to_i64.bin.gz \ 540 tstIEMAImplDataFpuLdSt-fist_r80_to_i16.bin.gz \ 541 tstIEMAImplDataFpuLdSt-fist_r80_to_i32.bin.gz \ 542 tstIEMAImplDataFpuLdSt-fist_r80_to_i64.bin.gz \ 543 tstIEMAImplDataFpuLdSt-fld1.bin.gz \ 544 tstIEMAImplDataFpuLdSt-fldl2e.bin.gz \ 545 tstIEMAImplDataFpuLdSt-fldl2t.bin.gz \ 546 tstIEMAImplDataFpuLdSt-fldlg2.bin.gz \ 547 tstIEMAImplDataFpuLdSt-fldln2.bin.gz \ 548 tstIEMAImplDataFpuLdSt-fldpi.bin.gz \ 549 tstIEMAImplDataFpuLdSt-fldz.bin.gz \ 550 tstIEMAImplDataFpuLdSt-fld_r80_from_d80.bin.gz \ 551 tstIEMAImplDataFpuLdSt-fld_r80_from_r32.bin.gz \ 552 tstIEMAImplDataFpuLdSt-fld_r80_from_r64.bin.gz \ 553 tstIEMAImplDataFpuLdSt-fld_r80_from_r80.bin.gz \ 554 tstIEMAImplDataFpuLdSt-fst_r80_to_d80.bin.gz \ 555 tstIEMAImplDataFpuLdSt-fst_r80_to_r32.bin.gz \ 556 tstIEMAImplDataFpuLdSt-fst_r80_to_r64.bin.gz \ 557 tstIEMAImplDataFpuLdSt-fst_r80_to_r80.bin.gz \ 558 tstIEMAImplDataFpuOther-f2xm1_r80_amd.bin.gz \ 559 tstIEMAImplDataFpuOther-f2xm1_r80_intel.bin.gz \ 560 tstIEMAImplDataFpuOther-fabs_r80.bin.gz \ 561 tstIEMAImplDataFpuOther-fchs_r80.bin.gz \ 562 tstIEMAImplDataFpuOther-fcos_r80_amd.bin.gz \ 563 tstIEMAImplDataFpuOther-fcos_r80_intel.bin.gz \ 564 tstIEMAImplDataFpuOther-fptan_r80_r80_amd.bin.gz \ 565 tstIEMAImplDataFpuOther-fptan_r80_r80_intel.bin.gz \ 566 tstIEMAImplDataFpuOther-frndint_r80.bin.gz \ 567 tstIEMAImplDataFpuOther-fsincos_r80_r80_amd.bin.gz \ 568 tstIEMAImplDataFpuOther-fsincos_r80_r80_intel.bin.gz \ 569 tstIEMAImplDataFpuOther-fsin_r80_amd.bin.gz \ 570 tstIEMAImplDataFpuOther-fsin_r80_intel.bin.gz \ 571 tstIEMAImplDataFpuOther-fsqrt_r80.bin.gz \ 572 tstIEMAImplDataFpuOther-ftst_r80.bin.gz \ 573 tstIEMAImplDataFpuOther-fxam_r80.bin.gz \ 574 tstIEMAImplDataFpuOther-fxtract_r80_r80.bin.gz \ 575 \ 486 576 tstIEMAImplDataSseBinary-addps_u128.bin.gz \ 487 577 tstIEMAImplDataSseBinary-mulps_u128.bin.gz \ … … 567 657 tstIEMAImpl_SDKS = VBoxSoftFloatR3Shared 568 658 tstIEMAImpl_INCS = ../include . 569 tstIEMAImpl_CLEAN = \570 $(tstIEMAImpl_0_OUTDIR)/tstIEMAImplDataFpuLdSt.cpp \571 $(tstIEMAImpl_0_OUTDIR)/tstIEMAImplDataFpuLdSt-Amd.cpp \572 $(tstIEMAImpl_0_OUTDIR)/tstIEMAImplDataFpuLdSt-Intel.cpp \573 $(tstIEMAImpl_0_OUTDIR)/tstIEMAImplDataFpuBinary1.cpp \574 $(tstIEMAImpl_0_OUTDIR)/tstIEMAImplDataFpuBinary1-Amd.cpp \575 $(tstIEMAImpl_0_OUTDIR)/tstIEMAImplDataFpuBinary1-Intel.cpp \576 $(tstIEMAImpl_0_OUTDIR)/tstIEMAImplDataFpuBinary2.cpp \577 $(tstIEMAImpl_0_OUTDIR)/tstIEMAImplDataFpuOther.cpp \578 $(tstIEMAImpl_0_OUTDIR)/tstIEMAImplDataFpuOther-Amd.cpp \579 $(tstIEMAImpl_0_OUTDIR)/tstIEMAImplDataFpuOther-Intel.cpp580 659 tstIEMAImpl_SOURCES = \ 581 660 tstIEMAImpl.cpp \ … … 614 693 tstIEMAImplDataSseBinary.S_DEPS = \ 615 694 $(TSTIEMAIMPL_TEST_DATA_DEPS) 616 617 ## @param 1 The sub-name of the file in question.618 define def_tstIEMAImplData_adjust619 $$(tstIEMAImpl_0_OUTDIR)/tstIEMAImplData$(1).cpp: \620 $$(tstIEMAImpl_DEFPATH)/tstIEMAImplData$(1).cpp \621 $$(tstIEMAImpl_DEFPATH)/tstIEMAImplData.sh \622 $$(tstIEMAImpl_DEFPATH)/tstIEMAImpl.h \623 | $$(tstIEMAImpl_0_OUTDIR)/624 $$(ASH) "$$(tstIEMAImpl_DEFPATH)/tstIEMAImplData.sh" \625 "$$(CP_EXT)" \626 "$$(MV_EXT)" \627 "$$(SED_EXT)" \628 "$$(APPEND_EXT)" \629 "$$(tstIEMAImpl_0_OUTDIR)" \630 "$$(tstIEMAImpl_DEFPATH)" \631 "$(1)"632 endef633 $(evalcall2 def_tstIEMAImplData_adjust,FpuLdSt)634 $(evalcall2 def_tstIEMAImplData_adjust,FpuLdSt-Amd)635 $(evalcall2 def_tstIEMAImplData_adjust,FpuLdSt-Intel)636 $(evalcall2 def_tstIEMAImplData_adjust,FpuBinary1)637 $(evalcall2 def_tstIEMAImplData_adjust,FpuBinary1-Amd)638 $(evalcall2 def_tstIEMAImplData_adjust,FpuBinary1-Intel)639 $(evalcall2 def_tstIEMAImplData_adjust,FpuBinary2)640 $(evalcall2 def_tstIEMAImplData_adjust,FpuOther)641 $(evalcall2 def_tstIEMAImplData_adjust,FpuOther-Amd)642 $(evalcall2 def_tstIEMAImplData_adjust,FpuOther-Intel)643 695 644 696 -
trunk/src/VBox/VMM/testcase/tstIEMAImpl.cpp
r103060 r103064 59 59 * Defined Constants And Macros * 60 60 *********************************************************************************************************************************/ 61 #define ENTRY(a_Name) ENTRY_EX(a_Name, 0)62 #define ENTRY_EX(a_Name, a_uExtra) \63 { RT_XSTR(a_Name), iemAImpl_ ## a_Name, NULL, \64 g_aTests_ ## a_Name, &g_cTests_ ## a_Name, \65 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ }66 67 61 #define ENTRY_BIN_FIX(a_Name) ENTRY_BIN_FIX_EX(a_Name, 0) 68 62 #ifdef TSTIEMAIMPL_WITH_GENERATOR 69 63 # define ENTRY_BIN_FIX_EX(a_Name, a_uExtra) \ 70 64 { RT_XSTR(a_Name), iemAImpl_ ## a_Name, NULL, \ 71 g_a Tests_ ## a_Name, &g_cbTests_ ## a_Name, \65 g_abTests_ ## a_Name, &g_cbTests_ ## a_Name, \ 72 66 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */, \ 73 true /*fBinary*/, true /*fCompressed*/,RT_ELEMENTS(g_aFixedTests_ ## a_Name), g_aFixedTests_ ## a_Name }67 RT_ELEMENTS(g_aFixedTests_ ## a_Name), g_aFixedTests_ ## a_Name } 74 68 #else 75 69 # define ENTRY_BIN_FIX_EX(a_Name, a_uExtra) ENTRY_BIN_EX(a_Name, a_uExtra) … … 79 73 #define ENTRY_BIN_PFN_CAST_EX(a_Name, a_pfnType, a_uExtra) \ 80 74 { RT_XSTR(a_Name), (a_pfnType)iemAImpl_ ## a_Name, NULL, \ 81 g_a Tests_ ## a_Name, &g_cbTests_ ## a_Name, \82 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ , true /*fBinary*/, true /*fCompressed*/}75 g_abTests_ ## a_Name, &g_cbTests_ ## a_Name, \ 76 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ } 83 77 84 78 #define ENTRY_BIN(a_Name) ENTRY_BIN_EX(a_Name, 0) 85 79 #define ENTRY_BIN_EX(a_Name, a_uExtra) \ 86 80 { RT_XSTR(a_Name), iemAImpl_ ## a_Name, NULL, \ 87 g_a Tests_ ## a_Name, &g_cbTests_ ## a_Name, \88 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ , true /*fBinary*/, true /*fCompressed*/}81 g_abTests_ ## a_Name, &g_cbTests_ ## a_Name, \ 82 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ } 89 83 90 84 #define ENTRY_BIN_AVX(a_Name) ENTRY_BIN_AVX_EX(a_Name, 0) … … 92 86 # define ENTRY_BIN_AVX_EX(a_Name, a_uExtra) \ 93 87 { RT_XSTR(a_Name), iemAImpl_ ## a_Name, NULL, \ 94 g_a Tests_ ## a_Name, &g_cbTests_ ## a_Name, \95 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ , true /*fBinary*/, true /*fCompressed*/}88 g_abTests_ ## a_Name, &g_cbTests_ ## a_Name, \ 89 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ } 96 90 #else 97 91 # define ENTRY_BIN_AVX_EX(a_Name, a_uExtra) \ 98 92 { RT_XSTR(a_Name), iemAImpl_ ## a_Name ## _fallback, NULL, \ 99 g_a Tests_ ## a_Name, &g_cbTests_ ## a_Name, \100 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ , true /*fBinary*/, true /*fCompressed*/}93 g_abTests_ ## a_Name, &g_cbTests_ ## a_Name, \ 94 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ } 101 95 #endif 102 96 … … 105 99 # define ENTRY_BIN_SSE_OPT_EX(a_Name, a_uExtra) \ 106 100 { RT_XSTR(a_Name), iemAImpl_ ## a_Name, NULL, \ 107 g_a Tests_ ## a_Name, &g_cbTests_ ## a_Name, \108 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ , true /*fBinary*/, true /*fCompressed*/}101 g_abTests_ ## a_Name, &g_cbTests_ ## a_Name, \ 102 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ } 109 103 #else 110 104 # define ENTRY_BIN_SSE_OPT_EX(a_Name, a_uExtra) \ 111 105 { RT_XSTR(a_Name), iemAImpl_ ## a_Name ## _fallback, NULL, \ 112 g_a Tests_ ## a_Name, &g_cbTests_ ## a_Name, \113 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ , true /*fBinary*/, true /*fCompressed*/}106 g_abTests_ ## a_Name, &g_cbTests_ ## a_Name, \ 107 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_NATIVE /* means same for all here */ } 114 108 #endif 115 109 … … 117 111 #define ENTRY_BIN_INTEL_EX(a_Name, a_fEflUndef, a_uExtra) \ 118 112 { RT_XSTR(a_Name) "_intel", iemAImpl_ ## a_Name ## _intel, iemAImpl_ ## a_Name, \ 119 g_a Tests_ ## a_Name ## _intel, &g_cbTests_ ## a_Name ## _intel, \120 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_INTEL , true /*fBinary*/, true /*fCompressed*/}113 g_abTests_ ## a_Name ## _intel, &g_cbTests_ ## a_Name ## _intel, \ 114 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_INTEL } 121 115 122 116 #define ENTRY_BIN_AMD(a_Name, a_fEflUndef) ENTRY_BIN_AMD_EX(a_Name, a_fEflUndef, 0) 123 117 #define ENTRY_BIN_AMD_EX(a_Name, a_fEflUndef, a_uExtra) \ 124 118 { RT_XSTR(a_Name) "_amd", iemAImpl_ ## a_Name ## _amd, iemAImpl_ ## a_Name, \ 125 g_aTests_ ## a_Name ## _amd, &g_cbTests_ ## a_Name ## _amd, \ 126 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_AMD, true /*fBinary*/, true /*fCompressed*/ } 127 128 #define ENTRY_INTEL(a_Name, a_fEflUndef) ENTRY_INTEL_EX(a_Name, a_fEflUndef, 0) 129 #define ENTRY_INTEL_EX(a_Name, a_fEflUndef, a_uExtra) \ 130 { RT_XSTR(a_Name) "_intel", iemAImpl_ ## a_Name ## _intel, iemAImpl_ ## a_Name, \ 131 g_aTests_ ## a_Name ## _intel, &g_cTests_ ## a_Name ## _intel, \ 132 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_INTEL } 133 134 #define ENTRY_AMD(a_Name, a_fEflUndef) ENTRY_AMD_EX(a_Name, a_fEflUndef, 0) 135 #define ENTRY_AMD_EX(a_Name, a_fEflUndef, a_uExtra) \ 136 { RT_XSTR(a_Name) "_amd", iemAImpl_ ## a_Name ## _amd, iemAImpl_ ## a_Name, \ 137 g_aTests_ ## a_Name ## _amd, &g_cTests_ ## a_Name ## _amd, \ 138 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_AMD } 119 g_abTests_ ## a_Name ## _amd, &g_cbTests_ ## a_Name ## _amd, \ 120 a_uExtra, IEMTARGETCPU_EFL_BEHAVIOR_AMD } 139 121 140 122 #define TYPEDEF_SUBTEST_TYPE(a_TypeName, a_TestType, a_FunctionPtrType) \ … … 144 126 const a_FunctionPtrType pfn; \ 145 127 const a_FunctionPtrType pfnNative; \ 146 a_TestType const *paTests; /**< These are update for compressed tests. */\147 uint32_t const *pc Tests; /**< These are update for compressed tests. */\128 void const * const pvCompressedTests; \ 129 uint32_t const *pcbCompressedTests; \ 148 130 uint32_t const uExtra; \ 149 131 uint8_t const idxCpuEflFlavour; \ 150 bool const fBinary; \151 bool fCompressed; /**< This is cleared after decompressing the tests. */ \152 132 uint16_t const cFixedTests; \ 153 133 a_TestType const * const paFixedTests; \ 134 a_TestType const *paTests; /**< The decompressed info. */ \ 135 uint32_t cTests; /**< The decompressed info. */ \ 154 136 } a_TypeName 155 137 … … 1109 1091 IEMBINARYOUTPUT BinOut; \ 1110 1092 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, a_papszNameFmts, (a_Entry)), RTEXITCODE_FAILURE); \ 1111 uint32_t cbTests = (a_Entry).pcTests[0]; \ 1112 if (!(a_Entry).fBinary) \ 1113 cbTests *= sizeof((a_Entry).paTests[0]); \ 1114 GenerateBinaryWrite(&BinOut, (a_Entry).paTests, cbTests); \ 1093 GenerateBinaryWrite(&BinOut, (a_Entry).paTests, (a_Entry).cTests); \ 1115 1094 AssertReturn(GenerateBinaryClose(&BinOut), RTEXITCODE_FAILURE); \ 1116 1095 } while (0) … … 1155 1134 1156 1135 /** Decompresses test data before use as required. */ 1157 static int DecompressBinaryTest(bool *pfCompressed, void **ppvTests, uint32_t const **ppcTests, size_t cbEntry, bool fBinary) 1158 { 1159 if (!*pfCompressed) 1160 return VINF_SUCCESS; 1161 1136 static int DecompressBinaryTest(void const *pvCompressed, uint32_t cbCompressed, size_t cbEntry, 1137 void **ppvTests, uint32_t *pcTests) 1138 { 1162 1139 /* Open a memory stream for the compressed binary data. */ 1163 uint32_t const cbCompressed = **ppcTests;1164 1140 RTVFSIOSTREAM hVfsIos = NIL_RTVFSIOSTREAM; 1165 int rc = RTVfsIoStrmFromBuffer(RTFILE_O_READ, *ppvTests, cbCompressed, &hVfsIos);1141 int rc = RTVfsIoStrmFromBuffer(RTFILE_O_READ, pvCompressed, cbCompressed, &hVfsIos); 1166 1142 RTTESTI_CHECK_RC_OK_RET(rc, rc); 1167 1143 … … 1207 1183 pbDecompressed = (uint8_t *)pvNew; 1208 1184 } 1209 uint32_t *pcTests = (uint32_t *)RTMemAlloc(sizeof(uint32_t)); 1210 if (pcTests) 1211 { 1212 /* Done! */ 1213 *pcTests = (uint32_t)(fBinary ? off : off / cbEntry); 1214 *ppvTests = pbDecompressed; 1215 *ppcTests = pcTests; 1216 *pfCompressed = false; 1217 RTMEM_WILL_LEAK(pcTests); 1218 RTMEM_WILL_LEAK(pbDecompressed); 1219 1220 pbDecompressed = NULL; 1221 rc = VINF_SUCCESS; 1222 } 1223 else 1224 { 1225 RTTestIFailed("Out of memory decompressing test data (uint32_t)"); 1226 rc = VERR_NO_MEMORY; 1227 } 1185 1186 /* Done! */ 1187 *pcTests = (uint32_t)(off / cbEntry); 1188 *ppvTests = pbDecompressed; 1189 RTMEM_WILL_LEAK(pbDecompressed); 1190 1191 pbDecompressed = NULL; 1192 rc = VINF_SUCCESS; 1228 1193 } 1229 1194 else … … 1249 1214 1250 1215 #define DECOMPRESS_TESTS(a_Entry) \ 1251 RT_SUCCESS(DecompressBinaryTest( &(a_Entry).fCompressed, (void **)&(a_Entry).paTests, &(a_Entry).pcTests, \1252 sizeof((a_Entry).paTests[0]), (a_Entry).fBinary))1216 RT_SUCCESS(DecompressBinaryTest((a_Entry).pvCompressedTests, *(a_Entry).pcbCompressedTests, sizeof((a_Entry).paTests[0]), \ 1217 (void **)&(a_Entry).paTests, &(a_Entry).cTests)) 1253 1218 1254 1219 1255 1220 /** Decompresses test data before use as required. */ 1256 static int SubTestAndCheckIfEnabledAndDecompress(const char *pszName, size_t cbEntry, bool fBinary,1257 bool *pfCompressed, void **ppvTests, uint32_t const **ppcTests)1221 static int SubTestAndCheckIfEnabledAndDecompress(const char *pszName, void const *pvCompressed, uint32_t cbCompressed, 1222 size_t cbEntry, void **ppvTests, uint32_t *pcTests) 1258 1223 { 1259 1224 if (SubTestAndCheckIfEnabled(pszName)) 1260 1225 { 1261 int const rc = DecompressBinaryTest(p fCompressed, ppvTests, ppcTests, cbEntry, fBinary);1226 int const rc = DecompressBinaryTest(pvCompressed, cbCompressed, cbEntry, ppvTests, pcTests); 1262 1227 if (RT_SUCCESS(rc)) 1263 1228 return true; … … 1267 1232 1268 1233 #define SUBTEST_CHECK_IF_ENABLED_AND_DECOMPRESS(a_Entry) \ 1269 SubTestAndCheckIfEnabledAndDecompress((a_Entry).pszName, sizeof((a_Entry).paTests[0]), (a_Entry).fBinary, \1270 &(a_Entry).fCompressed, (void **)&(a_Entry).paTests, &(a_Entry).pcTests)1234 SubTestAndCheckIfEnabledAndDecompress((a_Entry).pszName, (a_Entry).pvCompressedTests, *(a_Entry).pcbCompressedTests, \ 1235 sizeof((a_Entry).paTests[0]), (void **)&(a_Entry).paTests, &(a_Entry).cTests) 1271 1236 1272 1237 … … 1701 1666 continue; \ 1702 1667 a_TestType const * const paTests = a_aSubTests[iFn].paTests; \ 1703 uint32_t const cTests = *a_aSubTests[iFn].pcTests / sizeof(paTests[0]); \1668 uint32_t const cTests = a_aSubTests[iFn].cTests; \ 1704 1669 PFNIEMAIMPLBINU ## a_cBits pfn = a_aSubTests[iFn].pfn; \ 1705 1670 uint32_t const cVars = COUNT_VARIATIONS(a_aSubTests[iFn]); \ … … 1992 1957 const char * const pszName; \ 1993 1958 FNIEMAIMPLXADDU ## a_cBits * const pfn; \ 1994 bool fCompressed; \1995 bool fBinary; \1959 void const * const pvCompressedTests; \ 1960 uint32_t const * const pcbCompressedTests; \ 1996 1961 BINU ## a_cBits ## _TEST_T const *paTests; \ 1997 uint32_t const *pcTests; \1962 uint32_t cTests; \ 1998 1963 } s_aFuncs[] = \ 1999 1964 { \ 2000 1965 { "xadd_u" # a_cBits, iemAImpl_xadd_u ## a_cBits, \ 2001 true, true, g_aTests_add_u ## a_cBits, &g_cbTests_add_u ## a_cBits }, \1966 g_abTests_add_u ## a_cBits, &g_cbTests_add_u ## a_cBits }, \ 2002 1967 { "xadd_u" # a_cBits "8_locked", iemAImpl_xadd_u ## a_cBits ## _locked, \ 2003 true, true, g_aTests_add_u ## a_cBits, &g_cbTests_add_u ## a_cBits }, \1968 g_abTests_add_u ## a_cBits, &g_cbTests_add_u ## a_cBits }, \ 2004 1969 }; \ 2005 1970 for (size_t iFn = 0; iFn < RT_ELEMENTS(s_aFuncs); iFn++) \ … … 2007 1972 if (!SUBTEST_CHECK_IF_ENABLED_AND_DECOMPRESS(s_aFuncs[iFn])) continue; \ 2008 1973 BINU ## a_cBits ## _TEST_T const * const paTests = s_aFuncs[iFn].paTests; \ 2009 uint32_t const cTests = *s_aFuncs[iFn].pcTests / sizeof(paTests[0]); \1974 uint32_t const cTests = s_aFuncs[iFn].cTests; \ 2010 1975 if (!cTests) RTTestSkipped(g_hTest, "no tests"); \ 2011 1976 for (uint32_t iTest = 0; iTest < cTests; iTest++) \ … … 2045 2010 FNIEMAIMPLCMPXCHGU ## a_cBits * const pfn; \ 2046 2011 PFNIEMAIMPLBINU ## a_cBits const pfnSub; \ 2047 bool fCompressed; \2048 bool fBinary; \2012 void const * const pvCompressedTests; \ 2013 uint32_t const * const pcbCompressedTests; \ 2049 2014 BINU ## a_cBits ## _TEST_T const *paTests; \ 2050 uint32_t const *pcTests; \2015 uint32_t cTests; \ 2051 2016 } s_aFuncs[] = \ 2052 2017 { \ 2053 2018 { "cmpxchg_u" # a_cBits, iemAImpl_cmpxchg_u ## a_cBits, iemAImpl_sub_u ## a_cBits, \ 2054 true, true, g_aTests_cmp_u ## a_cBits, &g_cbTests_cmp_u ## a_cBits }, \2019 g_abTests_cmp_u ## a_cBits, &g_cbTests_cmp_u ## a_cBits }, \ 2055 2020 { "cmpxchg_u" # a_cBits "_locked", iemAImpl_cmpxchg_u ## a_cBits ## _locked, iemAImpl_sub_u ## a_cBits, \ 2056 true, true, g_aTests_cmp_u ## a_cBits, &g_cbTests_cmp_u ## a_cBits }, \2021 g_abTests_cmp_u ## a_cBits, &g_cbTests_cmp_u ## a_cBits }, \ 2057 2022 }; \ 2058 2023 for (size_t iFn = 0; iFn < RT_ELEMENTS(s_aFuncs); iFn++) \ … … 2060 2025 if (!SUBTEST_CHECK_IF_ENABLED_AND_DECOMPRESS(s_aFuncs[iFn])) continue; \ 2061 2026 BINU ## a_cBits ## _TEST_T const * const paTests = s_aFuncs[iFn].paTests; \ 2062 uint32_t const cTests = *s_aFuncs[iFn].pcTests / sizeof(paTests[0]); \2027 uint32_t const cTests = s_aFuncs[iFn].cTests; \ 2063 2028 if (!cTests) RTTestSkipped(g_hTest, "no tests"); \ 2064 2029 for (uint32_t iTest = 0; iTest < cTests; iTest++) \ … … 2302 2267 continue; \ 2303 2268 a_TestType const * const paTests = a_aSubTests[iFn].paTests; \ 2269 uint32_t const cTests = a_aSubTests[iFn].cTests; \ 2304 2270 PFNIEMAIMPLSHIFTDBLU ## a_cBits pfn = a_aSubTests[iFn].pfn; \ 2305 uint32_t const cTests = *a_aSubTests[iFn].pcTests / sizeof(paTests[0]); \2306 2271 uint32_t const cVars = COUNT_VARIATIONS(a_aSubTests[iFn]); \ 2307 2272 if (!cTests) RTTestSkipped(g_hTest, "no tests"); \ … … 2429 2394 continue; \ 2430 2395 a_TestType const * const paTests = g_aUnaryU ## a_cBits[iFn].paTests; \ 2431 uint32_t const cTests = *g_aUnaryU ## a_cBits[iFn].pcTests / sizeof(paTests[0]); \2396 uint32_t const cTests = g_aUnaryU ## a_cBits[iFn].cTests; \ 2432 2397 if (!cTests) RTTestSkipped(g_hTest, "no tests"); \ 2433 2398 for (uint32_t iTest = 0; iTest < cTests; iTest++ ) \ … … 2571 2536 PFNIEMAIMPLSHIFTU ## a_cBits pfn = a_aSubTests[iFn].pfn; \ 2572 2537 a_TestType const * const paTests = a_aSubTests[iFn].paTests; \ 2573 uint32_t const cTests = *a_aSubTests[iFn].pcTests / sizeof(paTests[0]); \2538 uint32_t const cTests = a_aSubTests[iFn].cTests; \ 2574 2539 uint32_t const cVars = COUNT_VARIATIONS(a_aSubTests[iFn]); \ 2575 2540 if (!cTests) RTTestSkipped(g_hTest, "no tests"); \ … … 2704 2669 continue; \ 2705 2670 MULDIVU8_TEST_T const * const paTests = g_aMulDivU8[iFn].paTests; 2706 uint32_t const cTests = *g_aMulDivU8[iFn].pcTests / sizeof(paTests[0]);2671 uint32_t const cTests = g_aMulDivU8[iFn].cTests; 2707 2672 uint32_t const fEflIgn = g_aMulDivU8[iFn].uExtra; 2708 2673 PFNIEMAIMPLMULDIVU8 pfn = g_aMulDivU8[iFn].pfn; … … 2803 2768 continue; \ 2804 2769 a_TestType const * const paTests = a_aSubTests[iFn].paTests; \ 2805 uint32_t const cTests = *a_aSubTests[iFn].pcTests / sizeof(paTests[0]); \2770 uint32_t const cTests = a_aSubTests[iFn].cTests; \ 2806 2771 uint32_t const fEflIgn = a_aSubTests[iFn].uExtra; \ 2807 2772 PFNIEMAIMPLMULDIVU ## a_cBits pfn = a_aSubTests[iFn].pfn; \ … … 2936 2901 static FPU_LD_CONST_T g_aFpuLdConst[] = 2937 2902 { 2938 ENTRY (fld1),2939 ENTRY (fldl2t),2940 ENTRY (fldl2e),2941 ENTRY (fldpi),2942 ENTRY (fldlg2),2943 ENTRY (fldln2),2944 ENTRY (fldz),2903 ENTRY_BIN(fld1), 2904 ENTRY_BIN(fldl2t), 2905 ENTRY_BIN(fldl2e), 2906 ENTRY_BIN(fldpi), 2907 ENTRY_BIN(fldlg2), 2908 ENTRY_BIN(fldln2), 2909 ENTRY_BIN(fldz), 2945 2910 }; 2946 2911 … … 2997 2962 continue; 2998 2963 2999 uint32_t const cTests = *g_aFpuLdConst[iFn].pcTests;3000 2964 FPU_LD_CONST_TEST_T const *paTests = g_aFpuLdConst[iFn].paTests; 2965 uint32_t const cTests = g_aFpuLdConst[iFn].cTests; 3001 2966 PFNIEMAIMPLFPUR80LDCONST pfn = g_aFpuLdConst[iFn].pfn; 3002 2967 uint32_t const cVars = COUNT_VARIATIONS(g_aFpuLdConst[iFn]); \ … … 3075 3040 static a_SubTestType a_aSubTests[] = \ 3076 3041 { \ 3077 ENTRY (RT_CONCAT(fld_r80_from_r,a_cBits)) \3042 ENTRY_BIN(RT_CONCAT(fld_r80_from_r,a_cBits)) \ 3078 3043 }; \ 3079 3044 GEN_FPU_LOAD(a_cBits, a_rdTypeIn, a_aSubTests, a_TestType) \ … … 3088 3053 continue; \ 3089 3054 \ 3090 uint32_t const cTests = *a_aSubTests[iFn].pcTests; \3091 3055 a_TestType const * const paTests = a_aSubTests[iFn].paTests; \ 3056 uint32_t const cTests = a_aSubTests[iFn].cTests; \ 3092 3057 PFNIEMAIMPLFPULDR80FROM ## a_cBits pfn = a_aSubTests[iFn].pfn; \ 3093 3058 uint32_t const cVars = COUNT_VARIATIONS(a_aSubTests[iFn]); \ … … 3203 3168 static a_SubTestType a_aSubTests[] = \ 3204 3169 { \ 3205 ENTRY (RT_CONCAT(fild_r80_from_i,a_cBits)) \3170 ENTRY_BIN(RT_CONCAT(fild_r80_from_i,a_cBits)) \ 3206 3171 }; \ 3207 3172 GEN_FPU_LOAD_INT(a_cBits, a_iTypeIn, a_szFmtIn, a_aSubTests, a_TestType) \ … … 3216 3181 continue; \ 3217 3182 \ 3218 uint32_t const cTests = *a_aSubTests[iFn].pcTests; \3219 3183 a_TestType const * const paTests = a_aSubTests[iFn].paTests; \ 3184 uint32_t const cTests = a_aSubTests[iFn].cTests; \ 3220 3185 PFNIEMAIMPLFPULDR80FROMI ## a_cBits pfn = a_aSubTests[iFn].pfn; \ 3221 3186 uint32_t const cVars = COUNT_VARIATIONS(a_aSubTests[iFn]); \ … … 3290 3255 static FPU_LD_D80_T g_aFpuLdD80[] = 3291 3256 { 3292 ENTRY (fld_r80_from_d80)3257 ENTRY_BIN(fld_r80_from_d80) 3293 3258 }; 3294 3259 … … 3338 3303 continue; 3339 3304 3340 uint32_t const cTests = *g_aFpuLdD80[iFn].pcTests;3341 3305 FPU_D80_IN_TEST_T const * const paTests = g_aFpuLdD80[iFn].paTests; 3306 uint32_t const cTests = g_aFpuLdD80[iFn].cTests; 3342 3307 PFNIEMAIMPLFPULDR80FROMD80 pfn = g_aFpuLdD80[iFn].pfn; 3343 3308 uint32_t const cVars = COUNT_VARIATIONS(g_aFpuLdD80[iFn]); … … 3453 3418 static a_SubTestType a_aSubTests[] = \ 3454 3419 { \ 3455 ENTRY (RT_CONCAT(fst_r80_to_r,a_cBits)) \3420 ENTRY_BIN(RT_CONCAT(fst_r80_to_r,a_cBits)) \ 3456 3421 }; \ 3457 3422 GEN_FPU_STORE(a_cBits, a_rdType, a_aSubTests, a_TestType) \ … … 3466 3431 continue; \ 3467 3432 \ 3468 uint32_t const cTests = *a_aSubTests[iFn].pcTests; \3469 3433 a_TestType const * const paTests = a_aSubTests[iFn].paTests; \ 3434 uint32_t const cTests = a_aSubTests[iFn].cTests; \ 3470 3435 PFNIEMAIMPLFPUSTR80TOR ## a_cBits pfn = a_aSubTests[iFn].pfn; \ 3471 3436 uint32_t const cVars = COUNT_VARIATIONS(a_aSubTests[iFn]); \ … … 3544 3509 static FPU_ST_I16_T g_aFpuStI16[] = 3545 3510 { 3546 ENTRY (fist_r80_to_i16),3547 ENTRY_ AMD( fistt_r80_to_i16, 0),3548 ENTRY_ INTEL(fistt_r80_to_i16, 0),3511 ENTRY_BIN(fist_r80_to_i16), 3512 ENTRY_BIN_AMD( fistt_r80_to_i16, 0), 3513 ENTRY_BIN_INTEL(fistt_r80_to_i16, 0), 3549 3514 }; 3550 3515 static FPU_ST_I32_T g_aFpuStI32[] = 3551 3516 { 3552 ENTRY (fist_r80_to_i32),3553 ENTRY (fistt_r80_to_i32),3517 ENTRY_BIN(fist_r80_to_i32), 3518 ENTRY_BIN(fistt_r80_to_i32), 3554 3519 }; 3555 3520 static FPU_ST_I64_T g_aFpuStI64[] = 3556 3521 { 3557 ENTRY (fist_r80_to_i64),3558 ENTRY (fistt_r80_to_i64),3522 ENTRY_BIN(fist_r80_to_i64), 3523 ENTRY_BIN(fistt_r80_to_i64), 3559 3524 }; 3560 3525 … … 3717 3682 continue; \ 3718 3683 \ 3719 uint32_t const cTests = *a_aSubTests[iFn].pcTests; \3720 3684 a_TestType const * const paTests = a_aSubTests[iFn].paTests; \ 3685 uint32_t const cTests = a_aSubTests[iFn].cTests; \ 3721 3686 PFNIEMAIMPLFPUSTR80TOI ## a_cBits pfn = a_aSubTests[iFn].pfn; \ 3722 3687 uint32_t const cVars = COUNT_VARIATIONS(a_aSubTests[iFn]); \ … … 3793 3758 static FPU_ST_D80_T g_aFpuStD80[] = 3794 3759 { 3795 ENTRY (fst_r80_to_d80),3760 ENTRY_BIN(fst_r80_to_d80), 3796 3761 }; 3797 3762 … … 3868 3833 continue; 3869 3834 3870 uint32_t const cTests = *g_aFpuStD80[iFn].pcTests;3871 3835 FPU_ST_D80_TEST_T const * const paTests = g_aFpuStD80[iFn].paTests; 3836 uint32_t const cTests = g_aFpuStD80[iFn].cTests; 3872 3837 PFNIEMAIMPLFPUSTR80TOD80 pfn = g_aFpuStD80[iFn].pfn; 3873 3838 uint32_t const cVars = COUNT_VARIATIONS(g_aFpuStD80[iFn]); … … 3915 3880 static FPU_BINARY_R80_T g_aFpuBinaryR80[] = 3916 3881 { 3917 ENTRY (fadd_r80_by_r80),3918 ENTRY (fsub_r80_by_r80),3919 ENTRY (fsubr_r80_by_r80),3920 ENTRY (fmul_r80_by_r80),3921 ENTRY (fdiv_r80_by_r80),3922 ENTRY (fdivr_r80_by_r80),3923 ENTRY_ EX(fprem_r80_by_r80, kFpuBinaryHint_fprem),3924 ENTRY_ EX(fprem1_r80_by_r80, kFpuBinaryHint_fprem),3925 ENTRY (fscale_r80_by_r80),3926 ENTRY_ AMD( fpatan_r80_by_r80, 0), // C1 and rounding differs on AMD3927 ENTRY_ INTEL(fpatan_r80_by_r80, 0), // C1 and rounding differs on AMD3928 ENTRY_ AMD( fyl2x_r80_by_r80, 0), // C1 and rounding differs on AMD3929 ENTRY_ INTEL(fyl2x_r80_by_r80, 0), // C1 and rounding differs on AMD3930 ENTRY_ AMD( fyl2xp1_r80_by_r80, 0), // C1 and rounding differs on AMD3931 ENTRY_ INTEL(fyl2xp1_r80_by_r80, 0), // C1 and rounding differs on AMD3882 ENTRY_BIN(fadd_r80_by_r80), 3883 ENTRY_BIN(fsub_r80_by_r80), 3884 ENTRY_BIN(fsubr_r80_by_r80), 3885 ENTRY_BIN(fmul_r80_by_r80), 3886 ENTRY_BIN(fdiv_r80_by_r80), 3887 ENTRY_BIN(fdivr_r80_by_r80), 3888 ENTRY_BIN_EX(fprem_r80_by_r80, kFpuBinaryHint_fprem), 3889 ENTRY_BIN_EX(fprem1_r80_by_r80, kFpuBinaryHint_fprem), 3890 ENTRY_BIN(fscale_r80_by_r80), 3891 ENTRY_BIN_AMD( fpatan_r80_by_r80, 0), // C1 and rounding differs on AMD 3892 ENTRY_BIN_INTEL(fpatan_r80_by_r80, 0), // C1 and rounding differs on AMD 3893 ENTRY_BIN_AMD( fyl2x_r80_by_r80, 0), // C1 and rounding differs on AMD 3894 ENTRY_BIN_INTEL(fyl2x_r80_by_r80, 0), // C1 and rounding differs on AMD 3895 ENTRY_BIN_AMD( fyl2xp1_r80_by_r80, 0), // C1 and rounding differs on AMD 3896 ENTRY_BIN_INTEL(fyl2xp1_r80_by_r80, 0), // C1 and rounding differs on AMD 3932 3897 }; 3933 3898 … … 4147 4112 continue; 4148 4113 4149 uint32_t const cTests = *g_aFpuBinaryR80[iFn].pcTests;4150 4114 FPU_BINARY_R80_TEST_T const * const paTests = g_aFpuBinaryR80[iFn].paTests; 4115 uint32_t const cTests = g_aFpuBinaryR80[iFn].cTests; 4151 4116 PFNIEMAIMPLFPUR80 pfn = g_aFpuBinaryR80[iFn].pfn; 4152 4117 uint32_t const cVars = COUNT_VARIATIONS(g_aFpuBinaryR80[iFn]); … … 4275 4240 static a_SubTestType a_aSubTests[] = \ 4276 4241 { \ 4277 ENTRY (RT_CONCAT4(f, a_I, add_r80_by_, a_LoBits)), \4278 ENTRY (RT_CONCAT4(f, a_I, mul_r80_by_, a_LoBits)), \4279 ENTRY (RT_CONCAT4(f, a_I, sub_r80_by_, a_LoBits)), \4280 ENTRY (RT_CONCAT4(f, a_I, subr_r80_by_, a_LoBits)), \4281 ENTRY (RT_CONCAT4(f, a_I, div_r80_by_, a_LoBits)), \4282 ENTRY (RT_CONCAT4(f, a_I, divr_r80_by_, a_LoBits)), \4242 ENTRY_BIN(RT_CONCAT4(f, a_I, add_r80_by_, a_LoBits)), \ 4243 ENTRY_BIN(RT_CONCAT4(f, a_I, mul_r80_by_, a_LoBits)), \ 4244 ENTRY_BIN(RT_CONCAT4(f, a_I, sub_r80_by_, a_LoBits)), \ 4245 ENTRY_BIN(RT_CONCAT4(f, a_I, subr_r80_by_, a_LoBits)), \ 4246 ENTRY_BIN(RT_CONCAT4(f, a_I, div_r80_by_, a_LoBits)), \ 4247 ENTRY_BIN(RT_CONCAT4(f, a_I, divr_r80_by_, a_LoBits)), \ 4283 4248 }; \ 4284 4249 \ … … 4294 4259 continue; \ 4295 4260 \ 4296 uint32_t const cTests = *a_aSubTests[iFn].pcTests; \4297 4261 a_TestType const * const paTests = a_aSubTests[iFn].paTests; \ 4262 uint32_t const cTests = a_aSubTests[iFn].cTests; \ 4298 4263 PFNIEMAIMPLFPU ## a_UpBits pfn = a_aSubTests[iFn].pfn; \ 4299 4264 uint32_t const cVars = COUNT_VARIATIONS(a_aSubTests[iFn]); \ … … 4434 4399 continue; \ 4435 4400 \ 4436 uint32_t const cTests = *a_aSubTests[iFn].pcTests; \4437 4401 a_TestType const * const paTests = a_aSubTests[iFn].paTests; \ 4402 uint32_t const cTests = a_aSubTests[iFn].cTests; \ 4438 4403 PFNIEMAIMPLFPU ## a_UpBits ## FSW pfn = a_aSubTests[iFn].pfn; \ 4439 4404 uint32_t const cVars = COUNT_VARIATIONS(a_aSubTests[iFn]); \ … … 4464 4429 } 4465 4430 4466 TEST_FPU_BINARY_FSW(0, 80, R80, RTFLOAT80U, FPU_BINARY_FSW_R80_T, g_aFpuBinaryFswR80, FPU_BINARY_R80_TEST_T, ENTRY (fcom_r80_by_r80), ENTRY(fucom_r80_by_r80))4467 TEST_FPU_BINARY_FSW(0, 64, R64, RTFLOAT64U, FPU_BINARY_FSW_R64_T, g_aFpuBinaryFswR64, FPU_BINARY_R64_TEST_T, ENTRY (fcom_r80_by_r64))4468 TEST_FPU_BINARY_FSW(0, 32, R32, RTFLOAT32U, FPU_BINARY_FSW_R32_T, g_aFpuBinaryFswR32, FPU_BINARY_R32_TEST_T, ENTRY (fcom_r80_by_r32))4469 TEST_FPU_BINARY_FSW(1, 32, I32, int32_t, FPU_BINARY_FSW_I32_T, g_aFpuBinaryFswI32, FPU_BINARY_I32_TEST_T, ENTRY (ficom_r80_by_i32))4470 TEST_FPU_BINARY_FSW(1, 16, I16, int16_t, FPU_BINARY_FSW_I16_T, g_aFpuBinaryFswI16, FPU_BINARY_I16_TEST_T, ENTRY (ficom_r80_by_i16))4431 TEST_FPU_BINARY_FSW(0, 80, R80, RTFLOAT80U, FPU_BINARY_FSW_R80_T, g_aFpuBinaryFswR80, FPU_BINARY_R80_TEST_T, ENTRY_BIN(fcom_r80_by_r80), ENTRY_BIN(fucom_r80_by_r80)) 4432 TEST_FPU_BINARY_FSW(0, 64, R64, RTFLOAT64U, FPU_BINARY_FSW_R64_T, g_aFpuBinaryFswR64, FPU_BINARY_R64_TEST_T, ENTRY_BIN(fcom_r80_by_r64)) 4433 TEST_FPU_BINARY_FSW(0, 32, R32, RTFLOAT32U, FPU_BINARY_FSW_R32_T, g_aFpuBinaryFswR32, FPU_BINARY_R32_TEST_T, ENTRY_BIN(fcom_r80_by_r32)) 4434 TEST_FPU_BINARY_FSW(1, 32, I32, int32_t, FPU_BINARY_FSW_I32_T, g_aFpuBinaryFswI32, FPU_BINARY_I32_TEST_T, ENTRY_BIN(ficom_r80_by_i32)) 4435 TEST_FPU_BINARY_FSW(1, 16, I16, int16_t, FPU_BINARY_FSW_I16_T, g_aFpuBinaryFswI16, FPU_BINARY_I16_TEST_T, ENTRY_BIN(ficom_r80_by_i16)) 4471 4436 4472 4437 … … 4478 4443 static FPU_BINARY_EFL_R80_T g_aFpuBinaryEflR80[] = 4479 4444 { 4480 ENTRY (fcomi_r80_by_r80),4481 ENTRY (fucomi_r80_by_r80),4445 ENTRY_BIN(fcomi_r80_by_r80), 4446 ENTRY_BIN(fucomi_r80_by_r80), 4482 4447 }; 4483 4448 … … 4548 4513 continue; 4549 4514 4550 uint32_t const cTests = *g_aFpuBinaryEflR80[iFn].pcTests;4551 4515 FPU_BINARY_EFL_R80_TEST_T const * const paTests = g_aFpuBinaryEflR80[iFn].paTests; 4516 uint32_t const cTests = g_aFpuBinaryEflR80[iFn].cTests; 4552 4517 PFNIEMAIMPLFPUR80EFL pfn = g_aFpuBinaryEflR80[iFn].pfn; 4553 4518 uint32_t const cVars = COUNT_VARIATIONS(g_aFpuBinaryEflR80[iFn]); … … 4596 4561 static FPU_UNARY_R80_T g_aFpuUnaryR80[] = 4597 4562 { 4598 ENTRY_ EX( fabs_r80, kUnary_Accurate),4599 ENTRY_ EX( fchs_r80, kUnary_Accurate),4600 ENTRY_ AMD_EX( f2xm1_r80, 0, kUnary_Accurate), // C1 differs for -1m0x3fb263cc2c331e15^-2654 (different ln2 constant?)4601 ENTRY_ INTEL_EX(f2xm1_r80, 0, kUnary_Rounding_F2xm1),4602 ENTRY_ EX( fsqrt_r80, kUnary_Accurate),4603 ENTRY_ EX( frndint_r80, kUnary_Accurate),4604 ENTRY_ AMD_EX( fsin_r80, 0, kUnary_Accurate_Trigonometry), // value & C1 differences for pseudo denormals and others (e.g. -1m0x2b1e5683cbca5725^-3485)4605 ENTRY_ INTEL_EX(fsin_r80, 0, kUnary_Accurate_Trigonometry),4606 ENTRY_ AMD_EX( fcos_r80, 0, kUnary_Accurate_Trigonometry), // value & C1 differences4607 ENTRY_ INTEL_EX(fcos_r80, 0, kUnary_Accurate_Trigonometry),4563 ENTRY_BIN_EX( fabs_r80, kUnary_Accurate), 4564 ENTRY_BIN_EX( fchs_r80, kUnary_Accurate), 4565 ENTRY_BIN_AMD_EX( f2xm1_r80, 0, kUnary_Accurate), // C1 differs for -1m0x3fb263cc2c331e15^-2654 (different ln2 constant?) 4566 ENTRY_BIN_INTEL_EX(f2xm1_r80, 0, kUnary_Rounding_F2xm1), 4567 ENTRY_BIN_EX( fsqrt_r80, kUnary_Accurate), 4568 ENTRY_BIN_EX( frndint_r80, kUnary_Accurate), 4569 ENTRY_BIN_AMD_EX( fsin_r80, 0, kUnary_Accurate_Trigonometry), // value & C1 differences for pseudo denormals and others (e.g. -1m0x2b1e5683cbca5725^-3485) 4570 ENTRY_BIN_INTEL_EX(fsin_r80, 0, kUnary_Accurate_Trigonometry), 4571 ENTRY_BIN_AMD_EX( fcos_r80, 0, kUnary_Accurate_Trigonometry), // value & C1 differences 4572 ENTRY_BIN_INTEL_EX(fcos_r80, 0, kUnary_Accurate_Trigonometry), 4608 4573 }; 4609 4574 … … 4794 4759 continue; 4795 4760 4796 uint32_t const cTests = *g_aFpuUnaryR80[iFn].pcTests;4797 4761 FPU_UNARY_R80_TEST_T const * const paTests = g_aFpuUnaryR80[iFn].paTests; 4762 uint32_t const cTests = g_aFpuUnaryR80[iFn].cTests; 4798 4763 PFNIEMAIMPLFPUR80UNARY pfn = g_aFpuUnaryR80[iFn].pfn; 4799 4764 uint32_t const cVars = COUNT_VARIATIONS(g_aFpuUnaryR80[iFn]); … … 4842 4807 static FPU_UNARY_FSW_R80_T g_aFpuUnaryFswR80[] = 4843 4808 { 4844 ENTRY (ftst_r80),4845 ENTRY_ EX(fxam_r80, 1),4809 ENTRY_BIN(ftst_r80), 4810 ENTRY_BIN_EX(fxam_r80, 1), 4846 4811 }; 4847 4812 … … 4936 4901 continue; 4937 4902 4938 uint32_t const cTests = *g_aFpuUnaryFswR80[iFn].pcTests;4939 4903 FPU_UNARY_R80_TEST_T const * const paTests = g_aFpuUnaryFswR80[iFn].paTests; 4904 uint32_t const cTests = g_aFpuUnaryFswR80[iFn].cTests; 4940 4905 PFNIEMAIMPLFPUR80UNARYFSW pfn = g_aFpuUnaryFswR80[iFn].pfn; 4941 4906 uint32_t const cVars = COUNT_VARIATIONS(g_aFpuUnaryFswR80[iFn]); … … 4974 4939 static FPU_UNARY_TWO_R80_T g_aFpuUnaryTwoR80[] = 4975 4940 { 4976 ENTRY (fxtract_r80_r80),4977 ENTRY_ AMD( fptan_r80_r80, 0), // rounding differences4978 ENTRY_ INTEL(fptan_r80_r80, 0),4979 ENTRY_ AMD( fsincos_r80_r80, 0), // C1 differences & value differences (e.g. -1m0x235cf2f580244a27^-1696)4980 ENTRY_ INTEL(fsincos_r80_r80, 0),4941 ENTRY_BIN(fxtract_r80_r80), 4942 ENTRY_BIN_AMD( fptan_r80_r80, 0), // rounding differences 4943 ENTRY_BIN_INTEL(fptan_r80_r80, 0), 4944 ENTRY_BIN_AMD( fsincos_r80_r80, 0), // C1 differences & value differences (e.g. -1m0x235cf2f580244a27^-1696) 4945 ENTRY_BIN_INTEL(fsincos_r80_r80, 0), 4981 4946 }; 4982 4947 … … 5109 5074 continue; 5110 5075 5111 uint32_t const cTests = *g_aFpuUnaryTwoR80[iFn].pcTests;5112 5076 FPU_UNARY_TWO_R80_TEST_T const * const paTests = g_aFpuUnaryTwoR80[iFn].paTests; 5077 uint32_t const cTests = g_aFpuUnaryTwoR80[iFn].cTests; 5113 5078 PFNIEMAIMPLFPUR80UNARYTWO pfn = g_aFpuUnaryTwoR80[iFn].pfn; 5114 5079 uint32_t const cVars = COUNT_VARIATIONS(g_aFpuUnaryTwoR80[iFn]); … … 5294 5259 continue; 5295 5260 5296 uint32_t const cbTests = *g_aSseBinaryR32[iFn].pcTests;5297 5261 SSE_BINARY_TEST_T const * const paTests = g_aSseBinaryR32[iFn].paTests; 5262 uint32_t const cbTests = g_aSseBinaryR32[iFn].cTests; 5298 5263 PFNIEMAIMPLFPSSEF2U128 pfn = g_aSseBinaryR32[iFn].pfn; 5299 5264 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryR32[iFn]); … … 5477 5442 continue; 5478 5443 5479 uint32_t const cTests = *g_aSseBinaryR64[iFn].pcTests;5480 5444 SSE_BINARY_TEST_T const * const paTests = g_aSseBinaryR64[iFn].paTests; 5445 uint32_t const cTests = g_aSseBinaryR64[iFn].cTests; 5481 5446 PFNIEMAIMPLFPSSEF2U128 pfn = g_aSseBinaryR64[iFn].pfn; 5482 5447 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryR64[iFn]); … … 5484 5449 for (uint32_t iVar = 0; iVar < cVars; iVar++) 5485 5450 { 5486 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_BINARY_TEST_T); iTest++)5451 for (uint32_t iTest = 0; iTest < cTests; iTest++) 5487 5452 { 5488 5453 IEMSSERESULT Res; RT_ZERO(Res); … … 5655 5620 continue; 5656 5621 5657 uint32_t const cTests = *g_aSseBinaryU128R32[iFn].pcTests;5658 5622 SSE_BINARY_U128_R32_TEST_T const * const paTests = g_aSseBinaryU128R32[iFn].paTests; 5623 uint32_t const cTests = g_aSseBinaryU128R32[iFn].cTests; 5659 5624 PFNIEMAIMPLFPSSEF2U128R32 pfn = g_aSseBinaryU128R32[iFn].pfn; 5660 5625 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryU128R32[iFn]); … … 5662 5627 for (uint32_t iVar = 0; iVar < cVars; iVar++) 5663 5628 { 5664 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_BINARY_TEST_T); iTest++)5629 for (uint32_t iTest = 0; iTest < cTests; iTest++) 5665 5630 { 5666 5631 IEMSSERESULT Res; RT_ZERO(Res); … … 5831 5796 continue; 5832 5797 5833 uint32_t const cTests = *g_aSseBinaryU128R64[iFn].pcTests;5834 5798 SSE_BINARY_U128_R64_TEST_T const * const paTests = g_aSseBinaryU128R64[iFn].paTests; 5799 uint32_t const cTests = g_aSseBinaryU128R64[iFn].cTests; 5835 5800 PFNIEMAIMPLFPSSEF2U128R64 pfn = g_aSseBinaryU128R64[iFn].pfn; 5836 5801 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryU128R64[iFn]); … … 5838 5803 for (uint32_t iVar = 0; iVar < cVars; iVar++) 5839 5804 { 5840 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_BINARY_U128_R64_TEST_T); iTest++)5805 for (uint32_t iTest = 0; iTest < cTests; iTest++) 5841 5806 { 5842 5807 IEMSSERESULT Res; RT_ZERO(Res); … … 5994 5959 continue; 5995 5960 5996 uint32_t const cTests = *g_aSseBinaryI32R64[iFn].pcTests;5997 5961 SSE_BINARY_I32_R64_TEST_T const * const paTests = g_aSseBinaryI32R64[iFn].paTests; 5962 uint32_t const cTests = g_aSseBinaryI32R64[iFn].cTests; 5998 5963 PFNIEMAIMPLSSEF2I32U64 pfn = g_aSseBinaryI32R64[iFn].pfn; 5999 5964 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryI32R64[iFn]); … … 6001 5966 for (uint32_t iVar = 0; iVar < cVars; iVar++) 6002 5967 { 6003 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_BINARY_I32_R64_TEST_T); iTest++)5968 for (uint32_t iTest = 0; iTest < cTests; iTest++) 6004 5969 { 6005 5970 uint32_t fMxcsr = 0; … … 6153 6118 continue; 6154 6119 6155 uint32_t const cTests = *g_aSseBinaryI64R64[iFn].pcTests;6156 6120 SSE_BINARY_I64_R64_TEST_T const * const paTests = g_aSseBinaryI64R64[iFn].paTests; 6121 uint32_t const cTests = g_aSseBinaryI64R64[iFn].cTests; 6157 6122 PFNIEMAIMPLSSEF2I64U64 pfn = g_aSseBinaryI64R64[iFn].pfn; 6158 6123 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryI32R64[iFn]); … … 6160 6125 for (uint32_t iVar = 0; iVar < cVars; iVar++) 6161 6126 { 6162 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_BINARY_I64_R64_TEST_T); iTest++)6127 for (uint32_t iTest = 0; iTest < cTests; iTest++) 6163 6128 { 6164 6129 uint32_t fMxcsr = 0; … … 6312 6277 continue; 6313 6278 6314 uint32_t const cTests = *g_aSseBinaryI32R32[iFn].pcTests;6315 6279 SSE_BINARY_I32_R32_TEST_T const * const paTests = g_aSseBinaryI32R32[iFn].paTests; 6280 uint32_t const cTests = g_aSseBinaryI32R32[iFn].cTests; 6316 6281 PFNIEMAIMPLSSEF2I32U32 pfn = g_aSseBinaryI32R32[iFn].pfn; 6317 6282 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryI32R32[iFn]); … … 6319 6284 for (uint32_t iVar = 0; iVar < cVars; iVar++) 6320 6285 { 6321 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_BINARY_I32_R32_TEST_T); iTest++)6286 for (uint32_t iTest = 0; iTest < cTests; iTest++) 6322 6287 { 6323 6288 uint32_t fMxcsr = 0; … … 6471 6436 continue; 6472 6437 6473 uint32_t const cTests = *g_aSseBinaryI64R32[iFn].pcTests;6474 6438 SSE_BINARY_I64_R32_TEST_T const * const paTests = g_aSseBinaryI64R32[iFn].paTests; 6439 uint32_t const cTests = g_aSseBinaryI64R32[iFn].cTests; 6475 6440 PFNIEMAIMPLSSEF2I64U32 pfn = g_aSseBinaryI64R32[iFn].pfn; 6476 6441 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryI64R32[iFn]); … … 6478 6443 for (uint32_t iVar = 0; iVar < cVars; iVar++) 6479 6444 { 6480 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_BINARY_I64_R32_TEST_T); iTest++)6445 for (uint32_t iTest = 0; iTest < cTests; iTest++) 6481 6446 { 6482 6447 uint32_t fMxcsr = 0; … … 6620 6585 continue; 6621 6586 6622 uint32_t const cTests = *g_aSseBinaryR64I32[iFn].pcTests;6623 6587 SSE_BINARY_R64_I32_TEST_T const * const paTests = g_aSseBinaryR64I32[iFn].paTests; 6588 uint32_t const cTests = g_aSseBinaryR64I32[iFn].cTests; 6624 6589 PFNIEMAIMPLSSEF2R64I32 pfn = g_aSseBinaryR64I32[iFn].pfn; 6625 6590 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryR64I32[iFn]); … … 6627 6592 for (uint32_t iVar = 0; iVar < cVars; iVar++) 6628 6593 { 6629 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_BINARY_R64_I32_TEST_T); iTest++)6594 for (uint32_t iTest = 0; iTest < cTests; iTest++) 6630 6595 { 6631 6596 uint32_t fMxcsr = 0; … … 6769 6734 continue; 6770 6735 6771 uint32_t const cTests = *g_aSseBinaryR64I64[iFn].pcTests;6772 6736 SSE_BINARY_R64_I64_TEST_T const * const paTests = g_aSseBinaryR64I64[iFn].paTests; 6737 uint32_t const cTests = g_aSseBinaryR64I64[iFn].cTests; 6773 6738 PFNIEMAIMPLSSEF2R64I64 pfn = g_aSseBinaryR64I64[iFn].pfn; 6774 6739 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryR64I64[iFn]); … … 6776 6741 for (uint32_t iVar = 0; iVar < cVars; iVar++) 6777 6742 { 6778 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_BINARY_R64_I64_TEST_T); iTest++)6743 for (uint32_t iTest = 0; iTest < cTests; iTest++) 6779 6744 { 6780 6745 uint32_t fMxcsr = 0; … … 6918 6883 continue; 6919 6884 6920 uint32_t const cTests = *g_aSseBinaryR32I32[iFn].pcTests;6921 6885 SSE_BINARY_R32_I32_TEST_T const * const paTests = g_aSseBinaryR32I32[iFn].paTests; 6886 uint32_t const cTests = g_aSseBinaryR32I32[iFn].cTests; 6922 6887 PFNIEMAIMPLSSEF2R32I32 pfn = g_aSseBinaryR32I32[iFn].pfn; 6923 6888 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryR32I32[iFn]); … … 6925 6890 for (uint32_t iVar = 0; iVar < cVars; iVar++) 6926 6891 { 6927 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_BINARY_R32_I32_TEST_T); iTest++)6892 for (uint32_t iTest = 0; iTest < cTests; iTest++) 6928 6893 { 6929 6894 uint32_t fMxcsr = 0; … … 7067 7032 continue; 7068 7033 7069 uint32_t const cTests = *g_aSseBinaryR32I64[iFn].pcTests;7070 7034 SSE_BINARY_R32_I64_TEST_T const * const paTests = g_aSseBinaryR32I64[iFn].paTests; 7035 uint32_t const cTests = g_aSseBinaryR32I64[iFn].cTests; 7071 7036 PFNIEMAIMPLSSEF2R32I64 pfn = g_aSseBinaryR32I64[iFn].pfn; 7072 7037 uint32_t const cVars = COUNT_VARIATIONS(g_aSseBinaryR32I64[iFn]); … … 7074 7039 for (uint32_t iVar = 0; iVar < cVars; iVar++) 7075 7040 { 7076 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_BINARY_R32_I64_TEST_T); iTest++)7041 for (uint32_t iTest = 0; iTest < cTests; iTest++) 7077 7042 { 7078 7043 uint32_t fMxcsr = 0; … … 7248 7213 continue; 7249 7214 7250 uint32_t const cTests = *g_aSseCompareEflR32R32[iFn].pcTests;7251 7215 SSE_COMPARE_EFL_R32_R32_TEST_T const * const paTests = g_aSseCompareEflR32R32[iFn].paTests; 7216 uint32_t const cTests = g_aSseCompareEflR32R32[iFn].cTests; 7252 7217 PFNIEMAIMPLF2EFLMXCSR128 pfn = g_aSseCompareEflR32R32[iFn].pfn; 7253 7218 uint32_t const cVars = COUNT_VARIATIONS(g_aSseCompareEflR32R32[iFn]); … … 7255 7220 for (uint32_t iVar = 0; iVar < cVars; iVar++) 7256 7221 { 7257 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_COMPARE_EFL_R32_R32_TEST_T); iTest++)7222 for (uint32_t iTest = 0; iTest < cTests; iTest++) 7258 7223 { 7259 7224 X86XMMREG ValIn1; RT_ZERO(ValIn1); … … 7431 7396 continue; 7432 7397 7433 uint32_t const cTests = *g_aSseCompareEflR64R64[iFn].pcTests;7434 7398 SSE_COMPARE_EFL_R64_R64_TEST_T const * const paTests = g_aSseCompareEflR64R64[iFn].paTests; 7399 uint32_t const cTests = g_aSseCompareEflR64R64[iFn].cTests; 7435 7400 PFNIEMAIMPLF2EFLMXCSR128 pfn = g_aSseCompareEflR64R64[iFn].pfn; 7436 7401 uint32_t const cVars = COUNT_VARIATIONS(g_aSseCompareEflR64R64[iFn]); … … 7438 7403 for (uint32_t iVar = 0; iVar < cVars; iVar++) 7439 7404 { 7440 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_COMPARE_EFL_R64_R64_TEST_T); iTest++)7405 for (uint32_t iTest = 0; iTest < cTests; iTest++) 7441 7406 { 7442 7407 X86XMMREG ValIn1; RT_ZERO(ValIn1); … … 7626 7591 continue; 7627 7592 7628 uint32_t const cTests = *g_aSseCompareF2XmmR32Imm8[iFn].pcTests;7629 7593 SSE_COMPARE_F2_XMM_IMM8_TEST_T const * const paTests = g_aSseCompareF2XmmR32Imm8[iFn].paTests; 7594 uint32_t const cTests = g_aSseCompareF2XmmR32Imm8[iFn].cTests; 7630 7595 PFNIEMAIMPLMXCSRF2XMMIMM8 pfn = g_aSseCompareF2XmmR32Imm8[iFn].pfn; 7631 7596 uint32_t const cVars = COUNT_VARIATIONS(g_aSseCompareF2XmmR32Imm8[iFn]); … … 7633 7598 for (uint32_t iVar = 0; iVar < cVars; iVar++) 7634 7599 { 7635 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_COMPARE_F2_XMM_IMM8_TEST_T); iTest++)7600 for (uint32_t iTest = 0; iTest < cTests; iTest++) 7636 7601 { 7637 7602 IEMMEDIAF2XMMSRC Src; … … 7820 7785 continue; 7821 7786 7822 uint32_t const cTests = *g_aSseCompareF2XmmR64Imm8[iFn].pcTests;7823 7787 SSE_COMPARE_F2_XMM_IMM8_TEST_T const * const paTests = g_aSseCompareF2XmmR64Imm8[iFn].paTests; 7788 uint32_t const cTests = g_aSseCompareF2XmmR64Imm8[iFn].cTests; 7824 7789 PFNIEMAIMPLMXCSRF2XMMIMM8 pfn = g_aSseCompareF2XmmR64Imm8[iFn].pfn; 7825 7790 uint32_t const cVars = COUNT_VARIATIONS(g_aSseCompareF2XmmR64Imm8[iFn]); … … 7827 7792 for (uint32_t iVar = 0; iVar < cVars; iVar++) 7828 7793 { 7829 for (uint32_t iTest = 0; iTest < cTests / sizeof(SSE_COMPARE_F2_XMM_IMM8_TEST_T); iTest++)7794 for (uint32_t iTest = 0; iTest < cTests; iTest++) 7830 7795 { 7831 7796 IEMMEDIAF2XMMSRC Src; … … 7983 7948 continue; 7984 7949 7985 uint32_t const cTests = *g_aSseConvertXmmI32R32[iFn].pcTests;7986 7950 SSE_CONVERT_XMM_TEST_T const * const paTests = g_aSseConvertXmmI32R32[iFn].paTests; 7951 uint32_t const cTests = g_aSseConvertXmmI32R32[iFn].cTests; 7987 7952 PFNIEMAIMPLFPSSEF2U128 pfn = g_aSseConvertXmmI32R32[iFn].pfn; 7988 7953 uint32_t const cVars = COUNT_VARIATIONS(g_aSseConvertXmmI32R32[iFn]); … … 7990 7955 for (uint32_t iVar = 0; iVar < cVars; iVar++) 7991 7956 { 7992 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)7957 for (uint32_t iTest = 0; iTest < cTests; iTest++) 7993 7958 { 7994 7959 IEMSSERESULT Res; RT_ZERO(Res); … … 8159 8124 continue; 8160 8125 8161 uint32_t const cTests = *g_aSseConvertXmmR32I32[iFn].pcTests;8162 8126 SSE_CONVERT_XMM_TEST_T const * const paTests = g_aSseConvertXmmR32I32[iFn].paTests; 8127 uint32_t const cTests = g_aSseConvertXmmR32I32[iFn].cTests; 8163 8128 PFNIEMAIMPLFPSSEF2U128 pfn = g_aSseConvertXmmR32I32[iFn].pfn; 8164 8129 uint32_t const cVars = COUNT_VARIATIONS(g_aSseConvertXmmR32I32[iFn]); … … 8166 8131 for (uint32_t iVar = 0; iVar < cVars; iVar++) 8167 8132 { 8168 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)8133 for (uint32_t iTest = 0; iTest < cTests; iTest++) 8169 8134 { 8170 8135 IEMSSERESULT Res; RT_ZERO(Res); … … 8323 8288 continue; 8324 8289 8325 uint32_t const cTests = *g_aSseConvertXmmI32R64[iFn].pcTests;8326 8290 SSE_CONVERT_XMM_TEST_T const * const paTests = g_aSseConvertXmmI32R64[iFn].paTests; 8291 uint32_t const cTests = g_aSseConvertXmmI32R64[iFn].cTests; 8327 8292 PFNIEMAIMPLFPSSEF2U128 pfn = g_aSseConvertXmmI32R64[iFn].pfn; 8328 8293 uint32_t const cVars = COUNT_VARIATIONS(g_aSseConvertXmmI32R64[iFn]); … … 8330 8295 for (uint32_t iVar = 0; iVar < cVars; iVar++) 8331 8296 { 8332 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)8297 for (uint32_t iTest = 0; iTest < cTests; iTest++) 8333 8298 { 8334 8299 IEMSSERESULT Res; RT_ZERO(Res); … … 8489 8454 continue; 8490 8455 8491 uint32_t const cTests = *g_aSseConvertXmmR64I32[iFn].pcTests;8492 8456 SSE_CONVERT_XMM_TEST_T const * const paTests = g_aSseConvertXmmR64I32[iFn].paTests; 8457 uint32_t const cTests = g_aSseConvertXmmR64I32[iFn].cTests; 8493 8458 PFNIEMAIMPLFPSSEF2U128 pfn = g_aSseConvertXmmR64I32[iFn].pfn; 8494 8459 uint32_t const cVars = COUNT_VARIATIONS(g_aSseConvertXmmR64I32[iFn]); … … 8496 8461 for (uint32_t iVar = 0; iVar < cVars; iVar++) 8497 8462 { 8498 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)8463 for (uint32_t iTest = 0; iTest < cTests; iTest++) 8499 8464 { 8500 8465 IEMSSERESULT Res; RT_ZERO(Res); … … 8665 8630 continue; 8666 8631 8667 uint32_t const cTests = *g_aSseConvertMmXmm[iFn].pcTests;8668 8632 SSE_CONVERT_MM_XMM_TEST_T const * const paTests = g_aSseConvertMmXmm[iFn].paTests; 8633 uint32_t const cTests = g_aSseConvertMmXmm[iFn].cTests; 8669 8634 PFNIEMAIMPLMXCSRU64U128 pfn = g_aSseConvertMmXmm[iFn].pfn; 8670 8635 uint32_t const cVars = COUNT_VARIATIONS(g_aSseConvertMmXmm[iFn]); … … 8672 8637 for (uint32_t iVar = 0; iVar < cVars; iVar++) 8673 8638 { 8674 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)8639 for (uint32_t iTest = 0; iTest < cTests; iTest++) 8675 8640 { 8676 8641 RTUINT64U ValOut; … … 8806 8771 continue; 8807 8772 8808 uint32_t const cTests = *g_aSseConvertXmmR64Mm[iFn].pcTests;8809 8773 SSE_CONVERT_XMM_MM_TEST_T const * const paTests = g_aSseConvertXmmR64Mm[iFn].paTests; 8774 uint32_t const cTests = g_aSseConvertXmmR64Mm[iFn].cTests; 8810 8775 PFNIEMAIMPLMXCSRU128U64 pfn = g_aSseConvertXmmR64Mm[iFn].pfn; 8811 8776 uint32_t const cVars = COUNT_VARIATIONS(g_aSseConvertXmmR64Mm[iFn]); … … 8813 8778 for (uint32_t iVar = 0; iVar < cVars; iVar++) 8814 8779 { 8815 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)8780 for (uint32_t iTest = 0; iTest < cTests; iTest++) 8816 8781 { 8817 8782 X86XMMREG ValOut; … … 8948 8913 continue; 8949 8914 8950 uint32_t const cTests = *g_aSseConvertXmmR32Mm[iFn].pcTests;8951 8915 SSE_CONVERT_XMM_MM_TEST_T const * const paTests = g_aSseConvertXmmR32Mm[iFn].paTests; 8916 uint32_t const cTests = g_aSseConvertXmmR32Mm[iFn].cTests; 8952 8917 PFNIEMAIMPLMXCSRU128U64 pfn = g_aSseConvertXmmR32Mm[iFn].pfn; 8953 8918 uint32_t const cVars = COUNT_VARIATIONS(g_aSseConvertXmmR32Mm[iFn]); … … 8955 8920 for (uint32_t iVar = 0; iVar < cVars; iVar++) 8956 8921 { 8957 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)8922 for (uint32_t iTest = 0; iTest < cTests; iTest++) 8958 8923 { 8959 8924 X86XMMREG ValOut; … … 9121 9086 continue; 9122 9087 9123 uint32_t const cTests = *g_aSseConvertMmI32XmmR32[iFn].pcTests;9124 9088 SSE_CONVERT_MM_R32_TEST_T const * const paTests = g_aSseConvertMmI32XmmR32[iFn].paTests; 9089 uint32_t const cTests = g_aSseConvertMmI32XmmR32[iFn].cTests; 9125 9090 PFNIEMAIMPLMXCSRU64U64 pfn = g_aSseConvertMmI32XmmR32[iFn].pfn; 9126 9091 uint32_t const cVars = COUNT_VARIATIONS(g_aSseConvertMmI32XmmR32[iFn]); … … 9128 9093 for (uint32_t iVar = 0; iVar < cVars; iVar++) 9129 9094 { 9130 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)9095 for (uint32_t iTest = 0; iTest < cTests; iTest++) 9131 9096 { 9132 9097 RTUINT64U ValOut; … … 9243 9208 continue; 9244 9209 9245 uint32_t const cTests = *g_aSsePcmpistri[iFn].pcTests;9246 9210 SSE_PCMPISTRI_TEST_T const * const paTests = g_aSsePcmpistri[iFn].paTests; 9211 uint32_t const cTests = g_aSsePcmpistri[iFn].cTests; 9247 9212 PFNIEMAIMPLPCMPISTRIU128IMM8 pfn = g_aSsePcmpistri[iFn].pfn; 9248 9213 uint32_t const cVars = COUNT_VARIATIONS(g_aSsePcmpistri[iFn]); … … 9250 9215 for (uint32_t iVar = 0; iVar < cVars; iVar++) 9251 9216 { 9252 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)9217 for (uint32_t iTest = 0; iTest < cTests; iTest++) 9253 9218 { 9254 9219 IEMPCMPISTRXSRC TestVal; … … 9355 9320 continue; 9356 9321 9357 uint32_t const cTests = *g_aSsePcmpistrm[iFn].pcTests;9358 9322 SSE_PCMPISTRM_TEST_T const * const paTests = g_aSsePcmpistrm[iFn].paTests; 9323 uint32_t const cTests = g_aSsePcmpistrm[iFn].cTests; 9359 9324 PFNIEMAIMPLPCMPISTRMU128IMM8 pfn = g_aSsePcmpistrm[iFn].pfn; 9360 9325 uint32_t const cVars = COUNT_VARIATIONS(g_aSsePcmpistrm[iFn]); … … 9362 9327 for (uint32_t iVar = 0; iVar < cVars; iVar++) 9363 9328 { 9364 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)9329 for (uint32_t iTest = 0; iTest < cTests; iTest++) 9365 9330 { 9366 9331 IEMPCMPISTRXSRC TestVal; … … 9478 9443 continue; 9479 9444 9480 uint32_t const cTests = *g_aSsePcmpestri[iFn].pcTests;9481 9445 SSE_PCMPESTRI_TEST_T const * const paTests = g_aSsePcmpestri[iFn].paTests; 9446 uint32_t const cTests = g_aSsePcmpestri[iFn].cTests; 9482 9447 PFNIEMAIMPLPCMPESTRIU128IMM8 pfn = g_aSsePcmpestri[iFn].pfn; 9483 9448 uint32_t const cVars = COUNT_VARIATIONS(g_aSsePcmpestri[iFn]); … … 9485 9450 for (uint32_t iVar = 0; iVar < cVars; iVar++) 9486 9451 { 9487 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)9452 for (uint32_t iTest = 0; iTest < cTests; iTest++) 9488 9453 { 9489 9454 IEMPCMPESTRXSRC TestVal; … … 9603 9568 continue; 9604 9569 9605 uint32_t const cTests = *g_aSsePcmpestrm[iFn].pcTests;9606 9570 SSE_PCMPESTRM_TEST_T const * const paTests = g_aSsePcmpestrm[iFn].paTests; 9571 uint32_t const cTests = g_aSsePcmpestrm[iFn].cTests; 9607 9572 PFNIEMAIMPLPCMPESTRMU128IMM8 pfn = g_aSsePcmpestrm[iFn].pfn; 9608 9573 uint32_t const cVars = COUNT_VARIATIONS(g_aSsePcmpestrm[iFn]); … … 9610 9575 for (uint32_t iVar = 0; iVar < cVars; iVar++) 9611 9576 { 9612 for (uint32_t iTest = 0; iTest < cTests / sizeof(*paTests); iTest++)9577 for (uint32_t iTest = 0; iTest < cTests; iTest++) 9613 9578 { 9614 9579 IEMPCMPESTRXSRC TestVal; -
trunk/src/VBox/VMM/testcase/tstIEMAImpl.h
r103056 r103064 565 565 566 566 567 #define TSTIEM_DEFINE_EMPTY_TEST_ARRAY(a_Type, a_Instr) \568 extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[] = { {0} }; \569 extern uint32_t const RT_CONCAT(g_cTests_, a_Instr) = 0570 571 567 #define TSTIEM_DEFINE_EMPTY_TEST_ARRAY_BIN(a_Type, a_Instr) \ 572 extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[] = { {0} }; \568 extern a_Type const RT_CONCAT(g_abTests_, a_Instr)[] = { {0} }; \ 573 569 extern uint32_t const RT_CONCAT(g_cbTests_, a_Instr) = 0 574 570 575 #define TSTIEM_DECLARE_TEST_ARRAY(a_szFile, a_Type, a_Instr) \576 extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[]; \577 extern uint32_t const RT_CONCAT(g_cTests_, a_Instr)578 579 571 #define TSTIEM_DECLARE_TEST_ARRAY_BIN(a_szFile, a_Type, a_Instr) \ 580 extern a_Type const RT_CONCAT(g_a Tests_, a_Instr)[]; \572 extern a_Type const RT_CONCAT(g_abTests_, a_Instr)[]; \ 581 573 extern uint32_t const RT_CONCAT(g_cbTests_, a_Instr) 582 574 … … 840 832 TSTIEM_DECLARE_TEST_ARRAY_BIN(Int-Intel, MULDIVU64_TEST_T, idiv_u64_intel ); 841 833 842 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_LD_CONST_TEST_T, fld1 );843 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_LD_CONST_TEST_T, fldl2t );844 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_LD_CONST_TEST_T, fldl2e );845 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_LD_CONST_TEST_T, fldpi );846 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_LD_CONST_TEST_T, fldlg2 );847 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_LD_CONST_TEST_T, fldln2 );848 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_LD_CONST_TEST_T, fldz );849 850 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_R80_IN_TEST_T, fld_r80_from_r80 );851 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_R64_IN_TEST_T, fld_r80_from_r64 );852 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_R32_IN_TEST_T, fld_r80_from_r32 );853 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_I64_IN_TEST_T, fild_r80_from_i64 );854 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_I32_IN_TEST_T, fild_r80_from_i32 );855 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_I16_IN_TEST_T, fild_r80_from_i16 );856 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_D80_IN_TEST_T, fld_r80_from_d80 );857 858 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_ST_R80_TEST_T, fst_r80_to_r80 );859 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_ST_R64_TEST_T, fst_r80_to_r64 );860 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_ST_R32_TEST_T, fst_r80_to_r32 );861 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_ST_I64_TEST_T, fist_r80_to_i64 );862 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_ST_I32_TEST_T, fist_r80_to_i32 );863 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_ST_I16_TEST_T, fist_r80_to_i16 );864 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_ST_I64_TEST_T, fistt_r80_to_i64 );865 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_ST_I32_TEST_T, fistt_r80_to_i32 );866 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt-Amd, FPU_ST_I16_TEST_T, fistt_r80_to_i16_amd );867 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt-Intel, FPU_ST_I16_TEST_T, fistt_r80_to_i16_intel );868 TSTIEM_DECLARE_TEST_ARRAY (FpuLdSt, FPU_ST_D80_TEST_T, fst_r80_to_d80 );869 870 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_R80_TEST_T, fadd_r80_by_r80 );871 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_R80_TEST_T, fsub_r80_by_r80 );872 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_R80_TEST_T, fsubr_r80_by_r80 );873 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_R80_TEST_T, fmul_r80_by_r80 );874 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_R80_TEST_T, fdiv_r80_by_r80 );875 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_R80_TEST_T, fdivr_r80_by_r80 );876 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_R80_TEST_T, fprem_r80_by_r80 );877 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_R80_TEST_T, fprem1_r80_by_r80 );878 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_R80_TEST_T, fscale_r80_by_r80 );879 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fpatan_r80_by_r80_amd );880 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fpatan_r80_by_r80_intel );881 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fyl2x_r80_by_r80_amd );882 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fyl2x_r80_by_r80_intel );883 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fyl2xp1_r80_by_r80_amd );884 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fyl2xp1_r80_by_r80_intel );885 886 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R64_TEST_T, fadd_r80_by_r64 );887 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R64_TEST_T, fmul_r80_by_r64 );888 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R64_TEST_T, fsub_r80_by_r64 );889 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R64_TEST_T, fsubr_r80_by_r64 );890 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R64_TEST_T, fdiv_r80_by_r64 );891 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R64_TEST_T, fdivr_r80_by_r64 );892 893 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R32_TEST_T, fadd_r80_by_r32 );894 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R32_TEST_T, fmul_r80_by_r32 );895 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R32_TEST_T, fsub_r80_by_r32 );896 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R32_TEST_T, fsubr_r80_by_r32 );897 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R32_TEST_T, fdiv_r80_by_r32 );898 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R32_TEST_T, fdivr_r80_by_r32 );899 900 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I32_TEST_T, fiadd_r80_by_i32 );901 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I32_TEST_T, fimul_r80_by_i32 );902 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I32_TEST_T, fisub_r80_by_i32 );903 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I32_TEST_T, fisubr_r80_by_i32 );904 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I32_TEST_T, fidiv_r80_by_i32 );905 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I32_TEST_T, fidivr_r80_by_i32 );906 907 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I16_TEST_T, fiadd_r80_by_i16 );908 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I16_TEST_T, fimul_r80_by_i16 );909 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I16_TEST_T, fisub_r80_by_i16 );910 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I16_TEST_T, fisubr_r80_by_i16 );911 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I16_TEST_T, fidiv_r80_by_i16 );912 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I16_TEST_T, fidivr_r80_by_i16 );913 914 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_R80_TEST_T, fcom_r80_by_r80 );915 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_R80_TEST_T, fucom_r80_by_r80 );916 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R64_TEST_T, fcom_r80_by_r64 );917 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_R32_TEST_T, fcom_r80_by_r32 );918 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I32_TEST_T, ficom_r80_by_i32 );919 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary2, FPU_BINARY_I16_TEST_T, ficom_r80_by_i16 );920 921 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_EFL_R80_TEST_T, fcomi_r80_by_r80 );922 TSTIEM_DECLARE_TEST_ARRAY (FpuBinary1, FPU_BINARY_EFL_R80_TEST_T, fucomi_r80_by_r80 );923 924 TSTIEM_DECLARE_TEST_ARRAY (FpuOther, FPU_UNARY_R80_TEST_T, fabs_r80 );925 TSTIEM_DECLARE_TEST_ARRAY (FpuOther, FPU_UNARY_R80_TEST_T, fchs_r80 );926 TSTIEM_DECLARE_TEST_ARRAY (FpuOther-Amd, FPU_UNARY_R80_TEST_T, f2xm1_r80_amd );927 TSTIEM_DECLARE_TEST_ARRAY (FpuOther-Intel, FPU_UNARY_R80_TEST_T, f2xm1_r80_intel );928 TSTIEM_DECLARE_TEST_ARRAY (FpuOther, FPU_UNARY_R80_TEST_T, fsqrt_r80 );929 TSTIEM_DECLARE_TEST_ARRAY (FpuOther, FPU_UNARY_R80_TEST_T, frndint_r80 );930 TSTIEM_DECLARE_TEST_ARRAY (FpuOther-Amd, FPU_UNARY_R80_TEST_T, fsin_r80_amd );931 TSTIEM_DECLARE_TEST_ARRAY (FpuOther-Intel, FPU_UNARY_R80_TEST_T, fsin_r80_intel );932 TSTIEM_DECLARE_TEST_ARRAY (FpuOther-Amd, FPU_UNARY_R80_TEST_T, fcos_r80_amd );933 TSTIEM_DECLARE_TEST_ARRAY (FpuOther-Intel, FPU_UNARY_R80_TEST_T, fcos_r80_intel );934 935 TSTIEM_DECLARE_TEST_ARRAY (FpuOther, FPU_UNARY_R80_TEST_T, ftst_r80 );936 TSTIEM_DECLARE_TEST_ARRAY (FpuOther, FPU_UNARY_R80_TEST_T, fxam_r80 );937 938 TSTIEM_DECLARE_TEST_ARRAY (FpuOther-Amd, FPU_UNARY_TWO_R80_TEST_T, fptan_r80_r80_amd );939 TSTIEM_DECLARE_TEST_ARRAY (FpuOther-Intel, FPU_UNARY_TWO_R80_TEST_T, fptan_r80_r80_intel );940 TSTIEM_DECLARE_TEST_ARRAY (FpuOther, FPU_UNARY_TWO_R80_TEST_T, fxtract_r80_r80 );941 TSTIEM_DECLARE_TEST_ARRAY (FpuOther-Amd, FPU_UNARY_TWO_R80_TEST_T, fsincos_r80_r80_amd );942 TSTIEM_DECLARE_TEST_ARRAY (FpuOther-Intel, FPU_UNARY_TWO_R80_TEST_T, fsincos_r80_r80_intel );834 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_LD_CONST_TEST_T, fld1 ); 835 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_LD_CONST_TEST_T, fldl2t ); 836 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_LD_CONST_TEST_T, fldl2e ); 837 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_LD_CONST_TEST_T, fldpi ); 838 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_LD_CONST_TEST_T, fldlg2 ); 839 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_LD_CONST_TEST_T, fldln2 ); 840 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_LD_CONST_TEST_T, fldz ); 841 842 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_R80_IN_TEST_T, fld_r80_from_r80 ); 843 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_R64_IN_TEST_T, fld_r80_from_r64 ); 844 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_R32_IN_TEST_T, fld_r80_from_r32 ); 845 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_I64_IN_TEST_T, fild_r80_from_i64 ); 846 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_I32_IN_TEST_T, fild_r80_from_i32 ); 847 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_I16_IN_TEST_T, fild_r80_from_i16 ); 848 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_D80_IN_TEST_T, fld_r80_from_d80 ); 849 850 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_ST_R80_TEST_T, fst_r80_to_r80 ); 851 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_ST_R64_TEST_T, fst_r80_to_r64 ); 852 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_ST_R32_TEST_T, fst_r80_to_r32 ); 853 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_ST_I64_TEST_T, fist_r80_to_i64 ); 854 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_ST_I32_TEST_T, fist_r80_to_i32 ); 855 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_ST_I16_TEST_T, fist_r80_to_i16 ); 856 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_ST_I64_TEST_T, fistt_r80_to_i64 ); 857 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_ST_I32_TEST_T, fistt_r80_to_i32 ); 858 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt-Amd, FPU_ST_I16_TEST_T, fistt_r80_to_i16_amd ); 859 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt-Intel, FPU_ST_I16_TEST_T, fistt_r80_to_i16_intel ); 860 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuLdSt, FPU_ST_D80_TEST_T, fst_r80_to_d80 ); 861 862 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_R80_TEST_T, fadd_r80_by_r80 ); 863 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_R80_TEST_T, fsub_r80_by_r80 ); 864 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_R80_TEST_T, fsubr_r80_by_r80 ); 865 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_R80_TEST_T, fmul_r80_by_r80 ); 866 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_R80_TEST_T, fdiv_r80_by_r80 ); 867 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_R80_TEST_T, fdivr_r80_by_r80 ); 868 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_R80_TEST_T, fprem_r80_by_r80 ); 869 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_R80_TEST_T, fprem1_r80_by_r80 ); 870 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_R80_TEST_T, fscale_r80_by_r80 ); 871 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fpatan_r80_by_r80_amd ); 872 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fpatan_r80_by_r80_intel ); 873 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fyl2x_r80_by_r80_amd ); 874 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fyl2x_r80_by_r80_intel ); 875 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fyl2xp1_r80_by_r80_amd ); 876 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fyl2xp1_r80_by_r80_intel ); 877 878 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R64_TEST_T, fadd_r80_by_r64 ); 879 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R64_TEST_T, fmul_r80_by_r64 ); 880 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R64_TEST_T, fsub_r80_by_r64 ); 881 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R64_TEST_T, fsubr_r80_by_r64 ); 882 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R64_TEST_T, fdiv_r80_by_r64 ); 883 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R64_TEST_T, fdivr_r80_by_r64 ); 884 885 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R32_TEST_T, fadd_r80_by_r32 ); 886 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R32_TEST_T, fmul_r80_by_r32 ); 887 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R32_TEST_T, fsub_r80_by_r32 ); 888 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R32_TEST_T, fsubr_r80_by_r32 ); 889 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R32_TEST_T, fdiv_r80_by_r32 ); 890 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R32_TEST_T, fdivr_r80_by_r32 ); 891 892 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I32_TEST_T, fiadd_r80_by_i32 ); 893 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I32_TEST_T, fimul_r80_by_i32 ); 894 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I32_TEST_T, fisub_r80_by_i32 ); 895 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I32_TEST_T, fisubr_r80_by_i32 ); 896 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I32_TEST_T, fidiv_r80_by_i32 ); 897 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I32_TEST_T, fidivr_r80_by_i32 ); 898 899 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I16_TEST_T, fiadd_r80_by_i16 ); 900 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I16_TEST_T, fimul_r80_by_i16 ); 901 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I16_TEST_T, fisub_r80_by_i16 ); 902 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I16_TEST_T, fisubr_r80_by_i16 ); 903 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I16_TEST_T, fidiv_r80_by_i16 ); 904 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I16_TEST_T, fidivr_r80_by_i16 ); 905 906 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_R80_TEST_T, fcom_r80_by_r80 ); 907 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_R80_TEST_T, fucom_r80_by_r80 ); 908 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R64_TEST_T, fcom_r80_by_r64 ); 909 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_R32_TEST_T, fcom_r80_by_r32 ); 910 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I32_TEST_T, ficom_r80_by_i32 ); 911 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary2, FPU_BINARY_I16_TEST_T, ficom_r80_by_i16 ); 912 913 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_EFL_R80_TEST_T, fcomi_r80_by_r80 ); 914 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuBinary1, FPU_BINARY_EFL_R80_TEST_T, fucomi_r80_by_r80 ); 915 916 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther, FPU_UNARY_R80_TEST_T, fabs_r80 ); 917 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther, FPU_UNARY_R80_TEST_T, fchs_r80 ); 918 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther-Amd, FPU_UNARY_R80_TEST_T, f2xm1_r80_amd ); 919 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther-Intel, FPU_UNARY_R80_TEST_T, f2xm1_r80_intel ); 920 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther, FPU_UNARY_R80_TEST_T, fsqrt_r80 ); 921 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther, FPU_UNARY_R80_TEST_T, frndint_r80 ); 922 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther-Amd, FPU_UNARY_R80_TEST_T, fsin_r80_amd ); 923 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther-Intel, FPU_UNARY_R80_TEST_T, fsin_r80_intel ); 924 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther-Amd, FPU_UNARY_R80_TEST_T, fcos_r80_amd ); 925 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther-Intel, FPU_UNARY_R80_TEST_T, fcos_r80_intel ); 926 927 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther, FPU_UNARY_R80_TEST_T, ftst_r80 ); 928 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther, FPU_UNARY_R80_TEST_T, fxam_r80 ); 929 930 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther-Amd, FPU_UNARY_TWO_R80_TEST_T, fptan_r80_r80_amd ); 931 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther-Intel, FPU_UNARY_TWO_R80_TEST_T, fptan_r80_r80_intel ); 932 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther, FPU_UNARY_TWO_R80_TEST_T, fxtract_r80_r80 ); 933 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther-Amd, FPU_UNARY_TWO_R80_TEST_T, fsincos_r80_r80_amd ); 934 TSTIEM_DECLARE_TEST_ARRAY_BIN(FpuOther-Intel, FPU_UNARY_TWO_R80_TEST_T, fsincos_r80_r80_intel ); 943 935 944 936 TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, addps_u128 ); -
trunk/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.S
r103056 r103064 41 41 .macro IEM_TEST_DATA a_Instr, a_szDataFile 42 42 .p2align 6 43 .globl NAME(g_a Tests_\a_Instr)44 NAME(g_a Tests_\a_Instr):43 .globl NAME(g_abTests_\a_Instr) 44 NAME(g_abTests_\a_Instr): 45 45 .incbin "\a_szDataFile" 46 46 NAME(g_aTests_end_\a_Instr): 47 47 #ifdef ASM_FORMAT_ELF 48 .size NAME(g_a Tests_\a_Instr), . - NAME(g_aTests_\a_Instr)49 .type NAME(g_a Tests_\a_Instr), object48 .size NAME(g_abTests_\a_Instr), . - NAME(g_aTests_\a_Instr) 49 .type NAME(g_abTests_\a_Instr), object 50 50 #endif 51 51 … … 53 53 .globl NAME(g_cbTests_\a_Instr) 54 54 NAME(g_cbTests_\a_Instr): 55 .int NAME(g_a Tests_end_\a_Instr) - NAME(g_aTests_\a_Instr)55 .int NAME(g_abTests_end_\a_Instr) - NAME(g_aTests_\a_Instr) 56 56 #ifdef ASM_FORMAT_ELF 57 57 .size NAME(g_cbTests_\a_Instr), 4 … … 403 403 IEM_TEST_DATA xor_u64_locked, "tstIEMAImplDataInt-xor_u64_locked.bin.gz" 404 404 405 ; 406 ; Floating point stuff. 407 ; dir tstIEMAImplDataFpu*bin.gz /b | sed -e 's/tstIEMAImplDataFpu\([^-]*\)-\([^.]*\)\.bin\.gz$/IEM_TEST_DATA \2, "tstIEMAImplDataFpu\1-\2.bin.gz"/' 408 ; 409 IEM_TEST_DATA fadd_r80_by_r80, "tstIEMAImplDataFpuBinary1-fadd_r80_by_r80.bin.gz" 410 IEM_TEST_DATA fcomi_r80_by_r80, "tstIEMAImplDataFpuBinary1-fcomi_r80_by_r80.bin.gz" 411 IEM_TEST_DATA fcom_r80_by_r80, "tstIEMAImplDataFpuBinary1-fcom_r80_by_r80.bin.gz" 412 IEM_TEST_DATA fdivr_r80_by_r80, "tstIEMAImplDataFpuBinary1-fdivr_r80_by_r80.bin.gz" 413 IEM_TEST_DATA fdiv_r80_by_r80, "tstIEMAImplDataFpuBinary1-fdiv_r80_by_r80.bin.gz" 414 IEM_TEST_DATA fmul_r80_by_r80, "tstIEMAImplDataFpuBinary1-fmul_r80_by_r80.bin.gz" 415 IEM_TEST_DATA fpatan_r80_by_r80_amd, "tstIEMAImplDataFpuBinary1-fpatan_r80_by_r80_amd.bin.gz" 416 IEM_TEST_DATA fpatan_r80_by_r80_intel, "tstIEMAImplDataFpuBinary1-fpatan_r80_by_r80_intel.bin.gz" 417 IEM_TEST_DATA fprem1_r80_by_r80, "tstIEMAImplDataFpuBinary1-fprem1_r80_by_r80.bin.gz" 418 IEM_TEST_DATA fprem_r80_by_r80, "tstIEMAImplDataFpuBinary1-fprem_r80_by_r80.bin.gz" 419 IEM_TEST_DATA fscale_r80_by_r80, "tstIEMAImplDataFpuBinary1-fscale_r80_by_r80.bin.gz" 420 IEM_TEST_DATA fsubr_r80_by_r80, "tstIEMAImplDataFpuBinary1-fsubr_r80_by_r80.bin.gz" 421 IEM_TEST_DATA fsub_r80_by_r80, "tstIEMAImplDataFpuBinary1-fsub_r80_by_r80.bin.gz" 422 IEM_TEST_DATA fucomi_r80_by_r80, "tstIEMAImplDataFpuBinary1-fucomi_r80_by_r80.bin.gz" 423 IEM_TEST_DATA fucom_r80_by_r80, "tstIEMAImplDataFpuBinary1-fucom_r80_by_r80.bin.gz" 424 IEM_TEST_DATA fyl2xp1_r80_by_r80_amd, "tstIEMAImplDataFpuBinary1-fyl2xp1_r80_by_r80_amd.bin.gz" 425 IEM_TEST_DATA fyl2xp1_r80_by_r80_intel, "tstIEMAImplDataFpuBinary1-fyl2xp1_r80_by_r80_intel.bin.gz" 426 IEM_TEST_DATA fyl2x_r80_by_r80_amd, "tstIEMAImplDataFpuBinary1-fyl2x_r80_by_r80_amd.bin.gz" 427 IEM_TEST_DATA fyl2x_r80_by_r80_intel, "tstIEMAImplDataFpuBinary1-fyl2x_r80_by_r80_intel.bin.gz" 428 IEM_TEST_DATA fadd_r80_by_r32, "tstIEMAImplDataFpuBinary2-fadd_r80_by_r32.bin.gz" 429 IEM_TEST_DATA fadd_r80_by_r64, "tstIEMAImplDataFpuBinary2-fadd_r80_by_r64.bin.gz" 430 IEM_TEST_DATA fcom_r80_by_r32, "tstIEMAImplDataFpuBinary2-fcom_r80_by_r32.bin.gz" 431 IEM_TEST_DATA fcom_r80_by_r64, "tstIEMAImplDataFpuBinary2-fcom_r80_by_r64.bin.gz" 432 IEM_TEST_DATA fdivr_r80_by_r32, "tstIEMAImplDataFpuBinary2-fdivr_r80_by_r32.bin.gz" 433 IEM_TEST_DATA fdivr_r80_by_r64, "tstIEMAImplDataFpuBinary2-fdivr_r80_by_r64.bin.gz" 434 IEM_TEST_DATA fdiv_r80_by_r32, "tstIEMAImplDataFpuBinary2-fdiv_r80_by_r32.bin.gz" 435 IEM_TEST_DATA fdiv_r80_by_r64, "tstIEMAImplDataFpuBinary2-fdiv_r80_by_r64.bin.gz" 436 IEM_TEST_DATA fiadd_r80_by_i16, "tstIEMAImplDataFpuBinary2-fiadd_r80_by_i16.bin.gz" 437 IEM_TEST_DATA fiadd_r80_by_i32, "tstIEMAImplDataFpuBinary2-fiadd_r80_by_i32.bin.gz" 438 IEM_TEST_DATA ficom_r80_by_i16, "tstIEMAImplDataFpuBinary2-ficom_r80_by_i16.bin.gz" 439 IEM_TEST_DATA ficom_r80_by_i32, "tstIEMAImplDataFpuBinary2-ficom_r80_by_i32.bin.gz" 440 IEM_TEST_DATA fidivr_r80_by_i16, "tstIEMAImplDataFpuBinary2-fidivr_r80_by_i16.bin.gz" 441 IEM_TEST_DATA fidivr_r80_by_i32, "tstIEMAImplDataFpuBinary2-fidivr_r80_by_i32.bin.gz" 442 IEM_TEST_DATA fidiv_r80_by_i16, "tstIEMAImplDataFpuBinary2-fidiv_r80_by_i16.bin.gz" 443 IEM_TEST_DATA fidiv_r80_by_i32, "tstIEMAImplDataFpuBinary2-fidiv_r80_by_i32.bin.gz" 444 IEM_TEST_DATA fimul_r80_by_i16, "tstIEMAImplDataFpuBinary2-fimul_r80_by_i16.bin.gz" 445 IEM_TEST_DATA fimul_r80_by_i32, "tstIEMAImplDataFpuBinary2-fimul_r80_by_i32.bin.gz" 446 IEM_TEST_DATA fisubr_r80_by_i16, "tstIEMAImplDataFpuBinary2-fisubr_r80_by_i16.bin.gz" 447 IEM_TEST_DATA fisubr_r80_by_i32, "tstIEMAImplDataFpuBinary2-fisubr_r80_by_i32.bin.gz" 448 IEM_TEST_DATA fisub_r80_by_i16, "tstIEMAImplDataFpuBinary2-fisub_r80_by_i16.bin.gz" 449 IEM_TEST_DATA fisub_r80_by_i32, "tstIEMAImplDataFpuBinary2-fisub_r80_by_i32.bin.gz" 450 IEM_TEST_DATA fmul_r80_by_r32, "tstIEMAImplDataFpuBinary2-fmul_r80_by_r32.bin.gz" 451 IEM_TEST_DATA fmul_r80_by_r64, "tstIEMAImplDataFpuBinary2-fmul_r80_by_r64.bin.gz" 452 IEM_TEST_DATA fsubr_r80_by_r32, "tstIEMAImplDataFpuBinary2-fsubr_r80_by_r32.bin.gz" 453 IEM_TEST_DATA fsubr_r80_by_r64, "tstIEMAImplDataFpuBinary2-fsubr_r80_by_r64.bin.gz" 454 IEM_TEST_DATA fsub_r80_by_r32, "tstIEMAImplDataFpuBinary2-fsub_r80_by_r32.bin.gz" 455 IEM_TEST_DATA fsub_r80_by_r64, "tstIEMAImplDataFpuBinary2-fsub_r80_by_r64.bin.gz" 456 IEM_TEST_DATA fild_r80_from_i16, "tstIEMAImplDataFpuLdSt-fild_r80_from_i16.bin.gz" 457 IEM_TEST_DATA fild_r80_from_i32, "tstIEMAImplDataFpuLdSt-fild_r80_from_i32.bin.gz" 458 IEM_TEST_DATA fild_r80_from_i64, "tstIEMAImplDataFpuLdSt-fild_r80_from_i64.bin.gz" 459 IEM_TEST_DATA fistt_r80_to_i16_amd, "tstIEMAImplDataFpuLdSt-fistt_r80_to_i16_amd.bin.gz" 460 IEM_TEST_DATA fistt_r80_to_i16_intel, "tstIEMAImplDataFpuLdSt-fistt_r80_to_i16_intel.bin.gz" 461 IEM_TEST_DATA fistt_r80_to_i32, "tstIEMAImplDataFpuLdSt-fistt_r80_to_i32.bin.gz" 462 IEM_TEST_DATA fistt_r80_to_i64, "tstIEMAImplDataFpuLdSt-fistt_r80_to_i64.bin.gz" 463 IEM_TEST_DATA fist_r80_to_i16, "tstIEMAImplDataFpuLdSt-fist_r80_to_i16.bin.gz" 464 IEM_TEST_DATA fist_r80_to_i32, "tstIEMAImplDataFpuLdSt-fist_r80_to_i32.bin.gz" 465 IEM_TEST_DATA fist_r80_to_i64, "tstIEMAImplDataFpuLdSt-fist_r80_to_i64.bin.gz" 466 IEM_TEST_DATA fld1, "tstIEMAImplDataFpuLdSt-fld1.bin.gz" 467 IEM_TEST_DATA fldl2e, "tstIEMAImplDataFpuLdSt-fldl2e.bin.gz" 468 IEM_TEST_DATA fldl2t, "tstIEMAImplDataFpuLdSt-fldl2t.bin.gz" 469 IEM_TEST_DATA fldlg2, "tstIEMAImplDataFpuLdSt-fldlg2.bin.gz" 470 IEM_TEST_DATA fldln2, "tstIEMAImplDataFpuLdSt-fldln2.bin.gz" 471 IEM_TEST_DATA fldpi, "tstIEMAImplDataFpuLdSt-fldpi.bin.gz" 472 IEM_TEST_DATA fldz, "tstIEMAImplDataFpuLdSt-fldz.bin.gz" 473 IEM_TEST_DATA fld_r80_from_d80, "tstIEMAImplDataFpuLdSt-fld_r80_from_d80.bin.gz" 474 IEM_TEST_DATA fld_r80_from_r32, "tstIEMAImplDataFpuLdSt-fld_r80_from_r32.bin.gz" 475 IEM_TEST_DATA fld_r80_from_r64, "tstIEMAImplDataFpuLdSt-fld_r80_from_r64.bin.gz" 476 IEM_TEST_DATA fld_r80_from_r80, "tstIEMAImplDataFpuLdSt-fld_r80_from_r80.bin.gz" 477 IEM_TEST_DATA fst_r80_to_d80, "tstIEMAImplDataFpuLdSt-fst_r80_to_d80.bin.gz" 478 IEM_TEST_DATA fst_r80_to_r32, "tstIEMAImplDataFpuLdSt-fst_r80_to_r32.bin.gz" 479 IEM_TEST_DATA fst_r80_to_r64, "tstIEMAImplDataFpuLdSt-fst_r80_to_r64.bin.gz" 480 IEM_TEST_DATA fst_r80_to_r80, "tstIEMAImplDataFpuLdSt-fst_r80_to_r80.bin.gz" 481 IEM_TEST_DATA f2xm1_r80_amd, "tstIEMAImplDataFpuOther-f2xm1_r80_amd.bin.gz" 482 IEM_TEST_DATA f2xm1_r80_intel, "tstIEMAImplDataFpuOther-f2xm1_r80_intel.bin.gz" 483 IEM_TEST_DATA fabs_r80, "tstIEMAImplDataFpuOther-fabs_r80.bin.gz" 484 IEM_TEST_DATA fchs_r80, "tstIEMAImplDataFpuOther-fchs_r80.bin.gz" 485 IEM_TEST_DATA fcos_r80_amd, "tstIEMAImplDataFpuOther-fcos_r80_amd.bin.gz" 486 IEM_TEST_DATA fcos_r80_intel, "tstIEMAImplDataFpuOther-fcos_r80_intel.bin.gz" 487 IEM_TEST_DATA fptan_r80_r80_amd, "tstIEMAImplDataFpuOther-fptan_r80_r80_amd.bin.gz" 488 IEM_TEST_DATA fptan_r80_r80_intel, "tstIEMAImplDataFpuOther-fptan_r80_r80_intel.bin.gz" 489 IEM_TEST_DATA frndint_r80, "tstIEMAImplDataFpuOther-frndint_r80.bin.gz" 490 IEM_TEST_DATA fsincos_r80_r80_amd, "tstIEMAImplDataFpuOther-fsincos_r80_r80_amd.bin.gz" 491 IEM_TEST_DATA fsincos_r80_r80_intel, "tstIEMAImplDataFpuOther-fsincos_r80_r80_intel.bin.gz" 492 IEM_TEST_DATA fsin_r80_amd, "tstIEMAImplDataFpuOther-fsin_r80_amd.bin.gz" 493 IEM_TEST_DATA fsin_r80_intel, "tstIEMAImplDataFpuOther-fsin_r80_intel.bin.gz" 494 IEM_TEST_DATA fsqrt_r80, "tstIEMAImplDataFpuOther-fsqrt_r80.bin.gz" 495 IEM_TEST_DATA ftst_r80, "tstIEMAImplDataFpuOther-ftst_r80.bin.gz" 496 IEM_TEST_DATA fxam_r80, "tstIEMAImplDataFpuOther-fxam_r80.bin.gz" 497 IEM_TEST_DATA fxtract_r80_r80, "tstIEMAImplDataFpuOther-fxtract_r80_r80.bin.gz" 498 -
trunk/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.asm
r103056 r103064 44 44 ; 45 45 %macro IEM_TEST_DATA 2 46 EXPORTEDNAME g_a Tests_ %+ %146 EXPORTEDNAME g_abTests_ %+ %1 47 47 incbin %2 48 g_a Tests_ %+ %1 %+ _end:48 g_abTests_ %+ %1 %+ _end: 49 49 align 4, db 0 50 50 EXPORTEDNAME g_cbTests_ %+ %1 51 dd g_a Tests_ %+ %1 %+ _end - NAME(g_aTests_ %+ %1)51 dd g_abTests_ %+ %1 %+ _end - NAME(g_abTests_ %+ %1) 52 52 53 53 %ifdef ASM_FORMAT_ELF 54 size g_a Tests_ %+ %1 g_aTests_ %+ %1 %+ _end - NAME(g_aTests_ %+ %1)55 type g_a Tests_ %+ %1object56 size g_cbTests_ %+ %1 457 type g_cbTests_ %+ %1 object54 size g_abTests_ %+ %1 g_abTests_ %+ %1 %+ _end - NAME(g_abTests_ %+ %1) 55 type g_abTests_ %+ %1 object 56 size g_cbTests_ %+ %1 4 57 type g_cbTests_ %+ %1 object 58 58 %endif 59 59 %endmacro … … 401 401 IEM_TEST_DATA xor_u64_locked, "tstIEMAImplDataInt-xor_u64_locked.bin.gz" 402 402 403 ; 404 ; Floating point stuff. 405 ; dir tstIEMAImplDataFpu*bin.gz /b | sed -e 's/tstIEMAImplDataFpu\([^-]*\)-\([^.]*\)\.bin\.gz$/IEM_TEST_DATA \2, "tstIEMAImplDataFpu\1-\2.bin.gz"/' 406 ; 407 IEM_TEST_DATA fadd_r80_by_r80, "tstIEMAImplDataFpuBinary1-fadd_r80_by_r80.bin.gz" 408 IEM_TEST_DATA fcomi_r80_by_r80, "tstIEMAImplDataFpuBinary1-fcomi_r80_by_r80.bin.gz" 409 IEM_TEST_DATA fcom_r80_by_r80, "tstIEMAImplDataFpuBinary1-fcom_r80_by_r80.bin.gz" 410 IEM_TEST_DATA fdivr_r80_by_r80, "tstIEMAImplDataFpuBinary1-fdivr_r80_by_r80.bin.gz" 411 IEM_TEST_DATA fdiv_r80_by_r80, "tstIEMAImplDataFpuBinary1-fdiv_r80_by_r80.bin.gz" 412 IEM_TEST_DATA fmul_r80_by_r80, "tstIEMAImplDataFpuBinary1-fmul_r80_by_r80.bin.gz" 413 IEM_TEST_DATA fpatan_r80_by_r80_amd, "tstIEMAImplDataFpuBinary1-fpatan_r80_by_r80_amd.bin.gz" 414 IEM_TEST_DATA fpatan_r80_by_r80_intel, "tstIEMAImplDataFpuBinary1-fpatan_r80_by_r80_intel.bin.gz" 415 IEM_TEST_DATA fprem1_r80_by_r80, "tstIEMAImplDataFpuBinary1-fprem1_r80_by_r80.bin.gz" 416 IEM_TEST_DATA fprem_r80_by_r80, "tstIEMAImplDataFpuBinary1-fprem_r80_by_r80.bin.gz" 417 IEM_TEST_DATA fscale_r80_by_r80, "tstIEMAImplDataFpuBinary1-fscale_r80_by_r80.bin.gz" 418 IEM_TEST_DATA fsubr_r80_by_r80, "tstIEMAImplDataFpuBinary1-fsubr_r80_by_r80.bin.gz" 419 IEM_TEST_DATA fsub_r80_by_r80, "tstIEMAImplDataFpuBinary1-fsub_r80_by_r80.bin.gz" 420 IEM_TEST_DATA fucomi_r80_by_r80, "tstIEMAImplDataFpuBinary1-fucomi_r80_by_r80.bin.gz" 421 IEM_TEST_DATA fucom_r80_by_r80, "tstIEMAImplDataFpuBinary1-fucom_r80_by_r80.bin.gz" 422 IEM_TEST_DATA fyl2xp1_r80_by_r80_amd, "tstIEMAImplDataFpuBinary1-fyl2xp1_r80_by_r80_amd.bin.gz" 423 IEM_TEST_DATA fyl2xp1_r80_by_r80_intel, "tstIEMAImplDataFpuBinary1-fyl2xp1_r80_by_r80_intel.bin.gz" 424 IEM_TEST_DATA fyl2x_r80_by_r80_amd, "tstIEMAImplDataFpuBinary1-fyl2x_r80_by_r80_amd.bin.gz" 425 IEM_TEST_DATA fyl2x_r80_by_r80_intel, "tstIEMAImplDataFpuBinary1-fyl2x_r80_by_r80_intel.bin.gz" 426 IEM_TEST_DATA fadd_r80_by_r32, "tstIEMAImplDataFpuBinary2-fadd_r80_by_r32.bin.gz" 427 IEM_TEST_DATA fadd_r80_by_r64, "tstIEMAImplDataFpuBinary2-fadd_r80_by_r64.bin.gz" 428 IEM_TEST_DATA fcom_r80_by_r32, "tstIEMAImplDataFpuBinary2-fcom_r80_by_r32.bin.gz" 429 IEM_TEST_DATA fcom_r80_by_r64, "tstIEMAImplDataFpuBinary2-fcom_r80_by_r64.bin.gz" 430 IEM_TEST_DATA fdivr_r80_by_r32, "tstIEMAImplDataFpuBinary2-fdivr_r80_by_r32.bin.gz" 431 IEM_TEST_DATA fdivr_r80_by_r64, "tstIEMAImplDataFpuBinary2-fdivr_r80_by_r64.bin.gz" 432 IEM_TEST_DATA fdiv_r80_by_r32, "tstIEMAImplDataFpuBinary2-fdiv_r80_by_r32.bin.gz" 433 IEM_TEST_DATA fdiv_r80_by_r64, "tstIEMAImplDataFpuBinary2-fdiv_r80_by_r64.bin.gz" 434 IEM_TEST_DATA fiadd_r80_by_i16, "tstIEMAImplDataFpuBinary2-fiadd_r80_by_i16.bin.gz" 435 IEM_TEST_DATA fiadd_r80_by_i32, "tstIEMAImplDataFpuBinary2-fiadd_r80_by_i32.bin.gz" 436 IEM_TEST_DATA ficom_r80_by_i16, "tstIEMAImplDataFpuBinary2-ficom_r80_by_i16.bin.gz" 437 IEM_TEST_DATA ficom_r80_by_i32, "tstIEMAImplDataFpuBinary2-ficom_r80_by_i32.bin.gz" 438 IEM_TEST_DATA fidivr_r80_by_i16, "tstIEMAImplDataFpuBinary2-fidivr_r80_by_i16.bin.gz" 439 IEM_TEST_DATA fidivr_r80_by_i32, "tstIEMAImplDataFpuBinary2-fidivr_r80_by_i32.bin.gz" 440 IEM_TEST_DATA fidiv_r80_by_i16, "tstIEMAImplDataFpuBinary2-fidiv_r80_by_i16.bin.gz" 441 IEM_TEST_DATA fidiv_r80_by_i32, "tstIEMAImplDataFpuBinary2-fidiv_r80_by_i32.bin.gz" 442 IEM_TEST_DATA fimul_r80_by_i16, "tstIEMAImplDataFpuBinary2-fimul_r80_by_i16.bin.gz" 443 IEM_TEST_DATA fimul_r80_by_i32, "tstIEMAImplDataFpuBinary2-fimul_r80_by_i32.bin.gz" 444 IEM_TEST_DATA fisubr_r80_by_i16, "tstIEMAImplDataFpuBinary2-fisubr_r80_by_i16.bin.gz" 445 IEM_TEST_DATA fisubr_r80_by_i32, "tstIEMAImplDataFpuBinary2-fisubr_r80_by_i32.bin.gz" 446 IEM_TEST_DATA fisub_r80_by_i16, "tstIEMAImplDataFpuBinary2-fisub_r80_by_i16.bin.gz" 447 IEM_TEST_DATA fisub_r80_by_i32, "tstIEMAImplDataFpuBinary2-fisub_r80_by_i32.bin.gz" 448 IEM_TEST_DATA fmul_r80_by_r32, "tstIEMAImplDataFpuBinary2-fmul_r80_by_r32.bin.gz" 449 IEM_TEST_DATA fmul_r80_by_r64, "tstIEMAImplDataFpuBinary2-fmul_r80_by_r64.bin.gz" 450 IEM_TEST_DATA fsubr_r80_by_r32, "tstIEMAImplDataFpuBinary2-fsubr_r80_by_r32.bin.gz" 451 IEM_TEST_DATA fsubr_r80_by_r64, "tstIEMAImplDataFpuBinary2-fsubr_r80_by_r64.bin.gz" 452 IEM_TEST_DATA fsub_r80_by_r32, "tstIEMAImplDataFpuBinary2-fsub_r80_by_r32.bin.gz" 453 IEM_TEST_DATA fsub_r80_by_r64, "tstIEMAImplDataFpuBinary2-fsub_r80_by_r64.bin.gz" 454 IEM_TEST_DATA fild_r80_from_i16, "tstIEMAImplDataFpuLdSt-fild_r80_from_i16.bin.gz" 455 IEM_TEST_DATA fild_r80_from_i32, "tstIEMAImplDataFpuLdSt-fild_r80_from_i32.bin.gz" 456 IEM_TEST_DATA fild_r80_from_i64, "tstIEMAImplDataFpuLdSt-fild_r80_from_i64.bin.gz" 457 IEM_TEST_DATA fistt_r80_to_i16_amd, "tstIEMAImplDataFpuLdSt-fistt_r80_to_i16_amd.bin.gz" 458 IEM_TEST_DATA fistt_r80_to_i16_intel, "tstIEMAImplDataFpuLdSt-fistt_r80_to_i16_intel.bin.gz" 459 IEM_TEST_DATA fistt_r80_to_i32, "tstIEMAImplDataFpuLdSt-fistt_r80_to_i32.bin.gz" 460 IEM_TEST_DATA fistt_r80_to_i64, "tstIEMAImplDataFpuLdSt-fistt_r80_to_i64.bin.gz" 461 IEM_TEST_DATA fist_r80_to_i16, "tstIEMAImplDataFpuLdSt-fist_r80_to_i16.bin.gz" 462 IEM_TEST_DATA fist_r80_to_i32, "tstIEMAImplDataFpuLdSt-fist_r80_to_i32.bin.gz" 463 IEM_TEST_DATA fist_r80_to_i64, "tstIEMAImplDataFpuLdSt-fist_r80_to_i64.bin.gz" 464 IEM_TEST_DATA fld1, "tstIEMAImplDataFpuLdSt-fld1.bin.gz" 465 IEM_TEST_DATA fldl2e, "tstIEMAImplDataFpuLdSt-fldl2e.bin.gz" 466 IEM_TEST_DATA fldl2t, "tstIEMAImplDataFpuLdSt-fldl2t.bin.gz" 467 IEM_TEST_DATA fldlg2, "tstIEMAImplDataFpuLdSt-fldlg2.bin.gz" 468 IEM_TEST_DATA fldln2, "tstIEMAImplDataFpuLdSt-fldln2.bin.gz" 469 IEM_TEST_DATA fldpi, "tstIEMAImplDataFpuLdSt-fldpi.bin.gz" 470 IEM_TEST_DATA fldz, "tstIEMAImplDataFpuLdSt-fldz.bin.gz" 471 IEM_TEST_DATA fld_r80_from_d80, "tstIEMAImplDataFpuLdSt-fld_r80_from_d80.bin.gz" 472 IEM_TEST_DATA fld_r80_from_r32, "tstIEMAImplDataFpuLdSt-fld_r80_from_r32.bin.gz" 473 IEM_TEST_DATA fld_r80_from_r64, "tstIEMAImplDataFpuLdSt-fld_r80_from_r64.bin.gz" 474 IEM_TEST_DATA fld_r80_from_r80, "tstIEMAImplDataFpuLdSt-fld_r80_from_r80.bin.gz" 475 IEM_TEST_DATA fst_r80_to_d80, "tstIEMAImplDataFpuLdSt-fst_r80_to_d80.bin.gz" 476 IEM_TEST_DATA fst_r80_to_r32, "tstIEMAImplDataFpuLdSt-fst_r80_to_r32.bin.gz" 477 IEM_TEST_DATA fst_r80_to_r64, "tstIEMAImplDataFpuLdSt-fst_r80_to_r64.bin.gz" 478 IEM_TEST_DATA fst_r80_to_r80, "tstIEMAImplDataFpuLdSt-fst_r80_to_r80.bin.gz" 479 IEM_TEST_DATA f2xm1_r80_amd, "tstIEMAImplDataFpuOther-f2xm1_r80_amd.bin.gz" 480 IEM_TEST_DATA f2xm1_r80_intel, "tstIEMAImplDataFpuOther-f2xm1_r80_intel.bin.gz" 481 IEM_TEST_DATA fabs_r80, "tstIEMAImplDataFpuOther-fabs_r80.bin.gz" 482 IEM_TEST_DATA fchs_r80, "tstIEMAImplDataFpuOther-fchs_r80.bin.gz" 483 IEM_TEST_DATA fcos_r80_amd, "tstIEMAImplDataFpuOther-fcos_r80_amd.bin.gz" 484 IEM_TEST_DATA fcos_r80_intel, "tstIEMAImplDataFpuOther-fcos_r80_intel.bin.gz" 485 IEM_TEST_DATA fptan_r80_r80_amd, "tstIEMAImplDataFpuOther-fptan_r80_r80_amd.bin.gz" 486 IEM_TEST_DATA fptan_r80_r80_intel, "tstIEMAImplDataFpuOther-fptan_r80_r80_intel.bin.gz" 487 IEM_TEST_DATA frndint_r80, "tstIEMAImplDataFpuOther-frndint_r80.bin.gz" 488 IEM_TEST_DATA fsincos_r80_r80_amd, "tstIEMAImplDataFpuOther-fsincos_r80_r80_amd.bin.gz" 489 IEM_TEST_DATA fsincos_r80_r80_intel, "tstIEMAImplDataFpuOther-fsincos_r80_r80_intel.bin.gz" 490 IEM_TEST_DATA fsin_r80_amd, "tstIEMAImplDataFpuOther-fsin_r80_amd.bin.gz" 491 IEM_TEST_DATA fsin_r80_intel, "tstIEMAImplDataFpuOther-fsin_r80_intel.bin.gz" 492 IEM_TEST_DATA fsqrt_r80, "tstIEMAImplDataFpuOther-fsqrt_r80.bin.gz" 493 IEM_TEST_DATA ftst_r80, "tstIEMAImplDataFpuOther-ftst_r80.bin.gz" 494 IEM_TEST_DATA fxam_r80, "tstIEMAImplDataFpuOther-fxam_r80.bin.gz" 495 IEM_TEST_DATA fxtract_r80_r80, "tstIEMAImplDataFpuOther-fxtract_r80_r80.bin.gz" 496
Note:
See TracChangeset
for help on using the changeset viewer.