Changeset 103075 in vbox
- Timestamp:
- Jan 25, 2024 10:13:32 PM (10 months ago)
- Location:
- trunk/src/VBox/VMM/testcase
- Files:
-
- 4 edited
- 118 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/testcase/Makefile.kmk
r103064 r103075 272 272 tstIEMAImplDataInt-and_u64_locked.bin.gz \ 273 273 tstIEMAImplDataInt-arpl.bin.gz \ 274 tstIEMAImplDataInt-bsf_u16_amd -Amd.bin.gz \275 tstIEMAImplDataInt-bsf_u16_intel -Intel.bin.gz \276 tstIEMAImplDataInt-bsf_u32_amd -Amd.bin.gz \277 tstIEMAImplDataInt-bsf_u32_intel -Intel.bin.gz \278 tstIEMAImplDataInt-bsf_u64_amd -Amd.bin.gz \279 tstIEMAImplDataInt-bsf_u64_intel -Intel.bin.gz \280 tstIEMAImplDataInt-bsr_u16_amd -Amd.bin.gz \281 tstIEMAImplDataInt-bsr_u16_intel -Intel.bin.gz \282 tstIEMAImplDataInt-bsr_u32_amd -Amd.bin.gz \283 tstIEMAImplDataInt-bsr_u32_intel -Intel.bin.gz \284 tstIEMAImplDataInt-bsr_u64_amd -Amd.bin.gz \285 tstIEMAImplDataInt-bsr_u64_intel -Intel.bin.gz \274 tstIEMAImplDataInt-bsf_u16_amd.bin.gz \ 275 tstIEMAImplDataInt-bsf_u16_intel.bin.gz \ 276 tstIEMAImplDataInt-bsf_u32_amd.bin.gz \ 277 tstIEMAImplDataInt-bsf_u32_intel.bin.gz \ 278 tstIEMAImplDataInt-bsf_u64_amd.bin.gz \ 279 tstIEMAImplDataInt-bsf_u64_intel.bin.gz \ 280 tstIEMAImplDataInt-bsr_u16_amd.bin.gz \ 281 tstIEMAImplDataInt-bsr_u16_intel.bin.gz \ 282 tstIEMAImplDataInt-bsr_u32_amd.bin.gz \ 283 tstIEMAImplDataInt-bsr_u32_intel.bin.gz \ 284 tstIEMAImplDataInt-bsr_u64_amd.bin.gz \ 285 tstIEMAImplDataInt-bsr_u64_intel.bin.gz \ 286 286 tstIEMAImplDataInt-btc_u16.bin.gz \ 287 287 tstIEMAImplDataInt-btc_u16_locked.bin.gz \ … … 317 317 tstIEMAImplDataInt-dec_u64.bin.gz \ 318 318 tstIEMAImplDataInt-dec_u64_locked.bin.gz \ 319 tstIEMAImplDataInt-div_u8_amd -Amd.bin.gz \320 tstIEMAImplDataInt-div_u8_intel -Intel.bin.gz \321 tstIEMAImplDataInt-div_u16_amd -Amd.bin.gz \322 tstIEMAImplDataInt-div_u16_intel -Intel.bin.gz \323 tstIEMAImplDataInt-div_u32_amd -Amd.bin.gz \324 tstIEMAImplDataInt-div_u32_intel -Intel.bin.gz \325 tstIEMAImplDataInt-div_u64_amd -Amd.bin.gz \326 tstIEMAImplDataInt-div_u64_intel -Intel.bin.gz \327 tstIEMAImplDataInt-idiv_u8_amd -Amd.bin.gz \328 tstIEMAImplDataInt-idiv_u8_intel -Intel.bin.gz \329 tstIEMAImplDataInt-idiv_u16_amd -Amd.bin.gz \330 tstIEMAImplDataInt-idiv_u16_intel -Intel.bin.gz \331 tstIEMAImplDataInt-idiv_u32_amd -Amd.bin.gz \332 tstIEMAImplDataInt-idiv_u32_intel -Intel.bin.gz \333 tstIEMAImplDataInt-idiv_u64_amd -Amd.bin.gz \334 tstIEMAImplDataInt-idiv_u64_intel -Intel.bin.gz \335 tstIEMAImplDataInt-imul_two_u16_amd -Amd.bin.gz \336 tstIEMAImplDataInt-imul_two_u16_intel -Intel.bin.gz \337 tstIEMAImplDataInt-imul_two_u32_amd -Amd.bin.gz \338 tstIEMAImplDataInt-imul_two_u32_intel -Intel.bin.gz \339 tstIEMAImplDataInt-imul_two_u64_amd -Amd.bin.gz \340 tstIEMAImplDataInt-imul_two_u64_intel -Intel.bin.gz \341 tstIEMAImplDataInt-imul_u8_amd -Amd.bin.gz \342 tstIEMAImplDataInt-imul_u8_intel -Intel.bin.gz \343 tstIEMAImplDataInt-imul_u16_amd -Amd.bin.gz \344 tstIEMAImplDataInt-imul_u16_intel -Intel.bin.gz \345 tstIEMAImplDataInt-imul_u32_amd -Amd.bin.gz \346 tstIEMAImplDataInt-imul_u32_intel -Intel.bin.gz \347 tstIEMAImplDataInt-imul_u64_amd -Amd.bin.gz \348 tstIEMAImplDataInt-imul_u64_intel -Intel.bin.gz \319 tstIEMAImplDataInt-div_u8_amd.bin.gz \ 320 tstIEMAImplDataInt-div_u8_intel.bin.gz \ 321 tstIEMAImplDataInt-div_u16_amd.bin.gz \ 322 tstIEMAImplDataInt-div_u16_intel.bin.gz \ 323 tstIEMAImplDataInt-div_u32_amd.bin.gz \ 324 tstIEMAImplDataInt-div_u32_intel.bin.gz \ 325 tstIEMAImplDataInt-div_u64_amd.bin.gz \ 326 tstIEMAImplDataInt-div_u64_intel.bin.gz \ 327 tstIEMAImplDataInt-idiv_u8_amd.bin.gz \ 328 tstIEMAImplDataInt-idiv_u8_intel.bin.gz \ 329 tstIEMAImplDataInt-idiv_u16_amd.bin.gz \ 330 tstIEMAImplDataInt-idiv_u16_intel.bin.gz \ 331 tstIEMAImplDataInt-idiv_u32_amd.bin.gz \ 332 tstIEMAImplDataInt-idiv_u32_intel.bin.gz \ 333 tstIEMAImplDataInt-idiv_u64_amd.bin.gz \ 334 tstIEMAImplDataInt-idiv_u64_intel.bin.gz \ 335 tstIEMAImplDataInt-imul_two_u16_amd.bin.gz \ 336 tstIEMAImplDataInt-imul_two_u16_intel.bin.gz \ 337 tstIEMAImplDataInt-imul_two_u32_amd.bin.gz \ 338 tstIEMAImplDataInt-imul_two_u32_intel.bin.gz \ 339 tstIEMAImplDataInt-imul_two_u64_amd.bin.gz \ 340 tstIEMAImplDataInt-imul_two_u64_intel.bin.gz \ 341 tstIEMAImplDataInt-imul_u8_amd.bin.gz \ 342 tstIEMAImplDataInt-imul_u8_intel.bin.gz \ 343 tstIEMAImplDataInt-imul_u16_amd.bin.gz \ 344 tstIEMAImplDataInt-imul_u16_intel.bin.gz \ 345 tstIEMAImplDataInt-imul_u32_amd.bin.gz \ 346 tstIEMAImplDataInt-imul_u32_intel.bin.gz \ 347 tstIEMAImplDataInt-imul_u64_amd.bin.gz \ 348 tstIEMAImplDataInt-imul_u64_intel.bin.gz \ 349 349 tstIEMAImplDataInt-inc_u8.bin.gz \ 350 350 tstIEMAImplDataInt-inc_u8_locked.bin.gz \ … … 355 355 tstIEMAImplDataInt-inc_u64.bin.gz \ 356 356 tstIEMAImplDataInt-inc_u64_locked.bin.gz \ 357 tstIEMAImplDataInt-mul_u8_amd -Amd.bin.gz \358 tstIEMAImplDataInt-mul_u8_intel -Intel.bin.gz \359 tstIEMAImplDataInt-mul_u16_amd -Amd.bin.gz \360 tstIEMAImplDataInt-mul_u16_intel -Intel.bin.gz \361 tstIEMAImplDataInt-mul_u32_amd -Amd.bin.gz \362 tstIEMAImplDataInt-mul_u32_intel -Intel.bin.gz \363 tstIEMAImplDataInt-mul_u64_amd -Amd.bin.gz \364 tstIEMAImplDataInt-mul_u64_intel -Intel.bin.gz \357 tstIEMAImplDataInt-mul_u8_amd.bin.gz \ 358 tstIEMAImplDataInt-mul_u8_intel.bin.gz \ 359 tstIEMAImplDataInt-mul_u16_amd.bin.gz \ 360 tstIEMAImplDataInt-mul_u16_intel.bin.gz \ 361 tstIEMAImplDataInt-mul_u32_amd.bin.gz \ 362 tstIEMAImplDataInt-mul_u32_intel.bin.gz \ 363 tstIEMAImplDataInt-mul_u64_amd.bin.gz \ 364 tstIEMAImplDataInt-mul_u64_intel.bin.gz \ 365 365 tstIEMAImplDataInt-neg_u8.bin.gz \ 366 366 tstIEMAImplDataInt-neg_u8_locked.bin.gz \ … … 387 387 tstIEMAImplDataInt-or_u64.bin.gz \ 388 388 tstIEMAImplDataInt-or_u64_locked.bin.gz \ 389 tstIEMAImplDataInt-rcl_u8_amd -Amd.bin.gz \390 tstIEMAImplDataInt-rcl_u8_intel -Intel.bin.gz \391 tstIEMAImplDataInt-rcl_u16_amd -Amd.bin.gz \392 tstIEMAImplDataInt-rcl_u16_intel -Intel.bin.gz \393 tstIEMAImplDataInt-rcl_u32_amd -Amd.bin.gz \394 tstIEMAImplDataInt-rcl_u32_intel -Intel.bin.gz \395 tstIEMAImplDataInt-rcl_u64_amd -Amd.bin.gz \396 tstIEMAImplDataInt-rcl_u64_intel -Intel.bin.gz \397 tstIEMAImplDataInt-rcr_u8_amd -Amd.bin.gz \398 tstIEMAImplDataInt-rcr_u8_intel -Intel.bin.gz \399 tstIEMAImplDataInt-rcr_u16_amd -Amd.bin.gz \400 tstIEMAImplDataInt-rcr_u16_intel -Intel.bin.gz \401 tstIEMAImplDataInt-rcr_u32_amd -Amd.bin.gz \402 tstIEMAImplDataInt-rcr_u32_intel -Intel.bin.gz \403 tstIEMAImplDataInt-rcr_u64_amd -Amd.bin.gz \404 tstIEMAImplDataInt-rcr_u64_intel -Intel.bin.gz \405 tstIEMAImplDataInt-rol_u8_amd -Amd.bin.gz \406 tstIEMAImplDataInt-rol_u8_intel -Intel.bin.gz \407 tstIEMAImplDataInt-rol_u16_amd -Amd.bin.gz \408 tstIEMAImplDataInt-rol_u16_intel -Intel.bin.gz \409 tstIEMAImplDataInt-rol_u32_amd -Amd.bin.gz \410 tstIEMAImplDataInt-rol_u32_intel -Intel.bin.gz \411 tstIEMAImplDataInt-rol_u64_amd -Amd.bin.gz \412 tstIEMAImplDataInt-rol_u64_intel -Intel.bin.gz \413 tstIEMAImplDataInt-ror_u8_amd -Amd.bin.gz \414 tstIEMAImplDataInt-ror_u8_intel -Intel.bin.gz \415 tstIEMAImplDataInt-ror_u16_amd -Amd.bin.gz \416 tstIEMAImplDataInt-ror_u16_intel -Intel.bin.gz \417 tstIEMAImplDataInt-ror_u32_amd -Amd.bin.gz \418 tstIEMAImplDataInt-ror_u32_intel -Intel.bin.gz \419 tstIEMAImplDataInt-ror_u64_amd -Amd.bin.gz \420 tstIEMAImplDataInt-ror_u64_intel -Intel.bin.gz \421 tstIEMAImplDataInt-sar_u8_amd -Amd.bin.gz \422 tstIEMAImplDataInt-sar_u8_intel -Intel.bin.gz \423 tstIEMAImplDataInt-sar_u16_amd -Amd.bin.gz \424 tstIEMAImplDataInt-sar_u16_intel -Intel.bin.gz \425 tstIEMAImplDataInt-sar_u32_amd -Amd.bin.gz \426 tstIEMAImplDataInt-sar_u32_intel -Intel.bin.gz \427 tstIEMAImplDataInt-sar_u64_amd -Amd.bin.gz \428 tstIEMAImplDataInt-sar_u64_intel -Intel.bin.gz \389 tstIEMAImplDataInt-rcl_u8_amd.bin.gz \ 390 tstIEMAImplDataInt-rcl_u8_intel.bin.gz \ 391 tstIEMAImplDataInt-rcl_u16_amd.bin.gz \ 392 tstIEMAImplDataInt-rcl_u16_intel.bin.gz \ 393 tstIEMAImplDataInt-rcl_u32_amd.bin.gz \ 394 tstIEMAImplDataInt-rcl_u32_intel.bin.gz \ 395 tstIEMAImplDataInt-rcl_u64_amd.bin.gz \ 396 tstIEMAImplDataInt-rcl_u64_intel.bin.gz \ 397 tstIEMAImplDataInt-rcr_u8_amd.bin.gz \ 398 tstIEMAImplDataInt-rcr_u8_intel.bin.gz \ 399 tstIEMAImplDataInt-rcr_u16_amd.bin.gz \ 400 tstIEMAImplDataInt-rcr_u16_intel.bin.gz \ 401 tstIEMAImplDataInt-rcr_u32_amd.bin.gz \ 402 tstIEMAImplDataInt-rcr_u32_intel.bin.gz \ 403 tstIEMAImplDataInt-rcr_u64_amd.bin.gz \ 404 tstIEMAImplDataInt-rcr_u64_intel.bin.gz \ 405 tstIEMAImplDataInt-rol_u8_amd.bin.gz \ 406 tstIEMAImplDataInt-rol_u8_intel.bin.gz \ 407 tstIEMAImplDataInt-rol_u16_amd.bin.gz \ 408 tstIEMAImplDataInt-rol_u16_intel.bin.gz \ 409 tstIEMAImplDataInt-rol_u32_amd.bin.gz \ 410 tstIEMAImplDataInt-rol_u32_intel.bin.gz \ 411 tstIEMAImplDataInt-rol_u64_amd.bin.gz \ 412 tstIEMAImplDataInt-rol_u64_intel.bin.gz \ 413 tstIEMAImplDataInt-ror_u8_amd.bin.gz \ 414 tstIEMAImplDataInt-ror_u8_intel.bin.gz \ 415 tstIEMAImplDataInt-ror_u16_amd.bin.gz \ 416 tstIEMAImplDataInt-ror_u16_intel.bin.gz \ 417 tstIEMAImplDataInt-ror_u32_amd.bin.gz \ 418 tstIEMAImplDataInt-ror_u32_intel.bin.gz \ 419 tstIEMAImplDataInt-ror_u64_amd.bin.gz \ 420 tstIEMAImplDataInt-ror_u64_intel.bin.gz \ 421 tstIEMAImplDataInt-sar_u8_amd.bin.gz \ 422 tstIEMAImplDataInt-sar_u8_intel.bin.gz \ 423 tstIEMAImplDataInt-sar_u16_amd.bin.gz \ 424 tstIEMAImplDataInt-sar_u16_intel.bin.gz \ 425 tstIEMAImplDataInt-sar_u32_amd.bin.gz \ 426 tstIEMAImplDataInt-sar_u32_intel.bin.gz \ 427 tstIEMAImplDataInt-sar_u64_amd.bin.gz \ 428 tstIEMAImplDataInt-sar_u64_intel.bin.gz \ 429 429 tstIEMAImplDataInt-sbb_u8.bin.gz \ 430 430 tstIEMAImplDataInt-sbb_u8_locked.bin.gz \ … … 435 435 tstIEMAImplDataInt-sbb_u64.bin.gz \ 436 436 tstIEMAImplDataInt-sbb_u64_locked.bin.gz \ 437 tstIEMAImplDataInt-shld_u16_amd -Amd.bin.gz \438 tstIEMAImplDataInt-shld_u16_intel -Intel.bin.gz \439 tstIEMAImplDataInt-shld_u32_amd -Amd.bin.gz \440 tstIEMAImplDataInt-shld_u32_intel -Intel.bin.gz \441 tstIEMAImplDataInt-shld_u64_amd -Amd.bin.gz \442 tstIEMAImplDataInt-shld_u64_intel -Intel.bin.gz \443 tstIEMAImplDataInt-shl_u8_amd -Amd.bin.gz \444 tstIEMAImplDataInt-shl_u8_intel -Intel.bin.gz \445 tstIEMAImplDataInt-shl_u16_amd -Amd.bin.gz \446 tstIEMAImplDataInt-shl_u16_intel -Intel.bin.gz \447 tstIEMAImplDataInt-shl_u32_amd -Amd.bin.gz \448 tstIEMAImplDataInt-shl_u32_intel -Intel.bin.gz \449 tstIEMAImplDataInt-shl_u64_amd -Amd.bin.gz \450 tstIEMAImplDataInt-shl_u64_intel -Intel.bin.gz \451 tstIEMAImplDataInt-shrd_u16_amd -Amd.bin.gz \452 tstIEMAImplDataInt-shrd_u16_intel -Intel.bin.gz \453 tstIEMAImplDataInt-shrd_u32_amd -Amd.bin.gz \454 tstIEMAImplDataInt-shrd_u32_intel -Intel.bin.gz \455 tstIEMAImplDataInt-shrd_u64_amd -Amd.bin.gz \456 tstIEMAImplDataInt-shrd_u64_intel -Intel.bin.gz \457 tstIEMAImplDataInt-shr_u8_amd -Amd.bin.gz \458 tstIEMAImplDataInt-shr_u8_intel -Intel.bin.gz \459 tstIEMAImplDataInt-shr_u16_amd -Amd.bin.gz \460 tstIEMAImplDataInt-shr_u16_intel -Intel.bin.gz \461 tstIEMAImplDataInt-shr_u32_amd -Amd.bin.gz \462 tstIEMAImplDataInt-shr_u32_intel -Intel.bin.gz \463 tstIEMAImplDataInt-shr_u64_amd -Amd.bin.gz \464 tstIEMAImplDataInt-shr_u64_intel -Intel.bin.gz \437 tstIEMAImplDataInt-shld_u16_amd.bin.gz \ 438 tstIEMAImplDataInt-shld_u16_intel.bin.gz \ 439 tstIEMAImplDataInt-shld_u32_amd.bin.gz \ 440 tstIEMAImplDataInt-shld_u32_intel.bin.gz \ 441 tstIEMAImplDataInt-shld_u64_amd.bin.gz \ 442 tstIEMAImplDataInt-shld_u64_intel.bin.gz \ 443 tstIEMAImplDataInt-shl_u8_amd.bin.gz \ 444 tstIEMAImplDataInt-shl_u8_intel.bin.gz \ 445 tstIEMAImplDataInt-shl_u16_amd.bin.gz \ 446 tstIEMAImplDataInt-shl_u16_intel.bin.gz \ 447 tstIEMAImplDataInt-shl_u32_amd.bin.gz \ 448 tstIEMAImplDataInt-shl_u32_intel.bin.gz \ 449 tstIEMAImplDataInt-shl_u64_amd.bin.gz \ 450 tstIEMAImplDataInt-shl_u64_intel.bin.gz \ 451 tstIEMAImplDataInt-shrd_u16_amd.bin.gz \ 452 tstIEMAImplDataInt-shrd_u16_intel.bin.gz \ 453 tstIEMAImplDataInt-shrd_u32_amd.bin.gz \ 454 tstIEMAImplDataInt-shrd_u32_intel.bin.gz \ 455 tstIEMAImplDataInt-shrd_u64_amd.bin.gz \ 456 tstIEMAImplDataInt-shrd_u64_intel.bin.gz \ 457 tstIEMAImplDataInt-shr_u8_amd.bin.gz \ 458 tstIEMAImplDataInt-shr_u8_intel.bin.gz \ 459 tstIEMAImplDataInt-shr_u16_amd.bin.gz \ 460 tstIEMAImplDataInt-shr_u16_intel.bin.gz \ 461 tstIEMAImplDataInt-shr_u32_amd.bin.gz \ 462 tstIEMAImplDataInt-shr_u32_intel.bin.gz \ 463 tstIEMAImplDataInt-shr_u64_amd.bin.gz \ 464 tstIEMAImplDataInt-shr_u64_intel.bin.gz \ 465 465 tstIEMAImplDataInt-sub_u8.bin.gz \ 466 466 tstIEMAImplDataInt-sub_u8_locked.bin.gz \ -
trunk/src/VBox/VMM/testcase/tstIEMAImpl.cpp
r103065 r103075 35 35 #include <VBox/log.h> 36 36 #include <iprt/assert.h> 37 #include <iprt/buildconfig.h> 37 38 #include <iprt/ctype.h> 38 39 #include <iprt/err.h> … … 134 135 a_TestType const *paTests; /**< The decompressed info. */ \ 135 136 uint32_t cTests; /**< The decompressed info. */ \ 137 IEMTESTENTRYINFO Info; \ 136 138 } a_TypeName 137 139 … … 143 145 * Structures and Typedefs * 144 146 *********************************************************************************************************************************/ 147 typedef struct IEMBINARYHEADER 148 { 149 char szMagic[16]; 150 uint32_t cbEntry; 151 uint32_t uSvnRev; 152 uint32_t auUnused[6]; 153 char szCpuDesc[80]; 154 } IEMBINARYHEADER; 155 AssertCompileSize(IEMBINARYHEADER, 128); 156 157 // 01234567890123456 158 #define IEMBINARYHEADER_MAGIC "IEMAImpl Bin v1" 159 AssertCompile(sizeof(IEMBINARYHEADER_MAGIC) == 16); 160 161 162 /** Fixed part of TYPEDEF_SUBTEST_TYPE and friends. */ 163 typedef struct IEMTESTENTRYINFO 164 { 165 void *pvUncompressed; 166 uint32_t cbUncompressed; 167 const char *pszCpuDesc; 168 uint32_t uSvnRev; 169 } IEMTESTENTRYINFO; 170 171 172 #ifdef TSTIEMAIMPL_WITH_GENERATOR 145 173 typedef struct IEMBINARYOUTPUT 146 174 { … … 157 185 } IEMBINARYOUTPUT; 158 186 typedef IEMBINARYOUTPUT *PIEMBINARYOUTPUT; 187 #endif /* TSTIEMAIMPL_WITH_GENERATOR */ 159 188 160 189 … … 186 215 187 216 static unsigned g_cVerbosity = 0; 217 218 219 #ifdef TSTIEMAIMPL_WITH_GENERATOR 220 /** The SVN revision (for use in the binary headers). */ 221 static uint32_t g_uSvnRev = 0; 222 /** The CPU description (for use in the binary headers). */ 223 static char g_szCpuDesc[80] = ""; 224 #endif 188 225 189 226 … … 996 1033 # endif /* unused */ 997 1034 998 static bool GenerateBinaryOpen(PIEMBINARYOUTPUT pBinOut, const char *pszFilenameFmt, const char *pszName) 1035 static void GenerateBinaryWrite(PIEMBINARYOUTPUT pBinOut, const void *pvData, size_t cbData) 1036 { 1037 if (RT_SUCCESS_NP(pBinOut->rcWrite)) 1038 { 1039 pBinOut->rcWrite = RTVfsIoStrmWrite(pBinOut->hVfsUncompressed, pvData, cbData, true /*fBlocking*/, NULL); 1040 if (RT_SUCCESS(pBinOut->rcWrite)) 1041 return; 1042 RTMsgError("Error writing '%s': %Rrc", pBinOut->szFilename, pBinOut->rcWrite); 1043 } 1044 } 1045 1046 static bool GenerateBinaryOpen(PIEMBINARYOUTPUT pBinOut, const char *pszFilenameFmt, const char *pszName, 1047 IEMTESTENTRYINFO const *pInfoToPreserve, uint32_t cbEntry) 999 1048 { 1000 1049 pBinOut->hVfsFile = NIL_RTVFSFILE; … … 1019 1068 { 1020 1069 pBinOut->rcWrite = VINF_SUCCESS; 1070 1071 /* Write the header if applicable. */ 1072 if ( !pInfoToPreserve 1073 || (pInfoToPreserve->uSvnRev != 0 && *pInfoToPreserve->pszCpuDesc)) 1074 { 1075 IEMBINARYHEADER Hdr; 1076 RT_ZERO(Hdr); 1077 memcpy(Hdr.szMagic, IEMBINARYHEADER_MAGIC, sizeof(IEMBINARYHEADER_MAGIC)); 1078 Hdr.cbEntry = cbEntry; 1079 Hdr.uSvnRev = pInfoToPreserve ? pInfoToPreserve->uSvnRev : g_uSvnRev; 1080 RTStrCopy(Hdr.szCpuDesc, sizeof(Hdr.szCpuDesc), 1081 pInfoToPreserve ? pInfoToPreserve->pszCpuDesc : g_szCpuDesc); 1082 GenerateBinaryWrite(pBinOut, &Hdr, sizeof(Hdr)); 1083 } 1084 1021 1085 return true; 1022 1086 } … … 1050 1114 1051 1115 # define GENERATE_BINARY_OPEN(a_pBinOut, a_papszNameFmts, a_Entry) \ 1052 GenerateBinaryOpen((a_pBinOut), a_papszNameFmts[(a_Entry).idxCpuEflFlavour], (a_Entry).pszName) 1053 1054 1055 static void GenerateBinaryWrite(PIEMBINARYOUTPUT pBinOut, const void *pvData, size_t cbData) 1056 { 1057 if (RT_SUCCESS_NP(pBinOut->rcWrite)) 1058 { 1059 pBinOut->rcWrite = RTVfsIoStrmWrite(pBinOut->hVfsUncompressed, pvData, cbData, true /*fBlocking*/, NULL); 1060 if (RT_SUCCESS(pBinOut->rcWrite)) 1061 return; 1062 RTMsgError("Error writing '%s': %Rrc", pBinOut->szFilename, pBinOut->rcWrite); 1063 } 1064 } 1065 1116 GenerateBinaryOpen((a_pBinOut), a_papszNameFmts[(a_Entry).idxCpuEflFlavour], (a_Entry).pszName, \ 1117 NULL /*pInfo*/, sizeof((a_Entry).paTests[0])) 1066 1118 1067 1119 static bool GenerateBinaryClose(PIEMBINARYOUTPUT pBinOut) … … 1088 1140 1089 1141 /* Helper for DumpAll. */ 1090 # define DUMP_TEST_ENTRY(a_Entry, a_papszNameFmts) \ 1091 do { \ 1092 AssertReturn(DECOMPRESS_TESTS(a_Entry), RTEXITCODE_FAILURE); \ 1093 IEMBINARYOUTPUT BinOut; \ 1094 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, a_papszNameFmts, (a_Entry)), RTEXITCODE_FAILURE); \ 1095 GenerateBinaryWrite(&BinOut, (a_Entry).paTests, (a_Entry).cTests); \ 1096 AssertReturn(GenerateBinaryClose(&BinOut), RTEXITCODE_FAILURE); \ 1097 } while (0) 1098 1142 # define DUMP_ALL_FN(a_FnBaseName, a_aSubTests) \ 1143 static RTEXITCODE a_FnBaseName ## DumpAll(const char * const * papszNameFmts) \ 1144 { \ 1145 for (size_t iFn = 0; iFn < RT_ELEMENTS(a_aSubTests); iFn++) \ 1146 { \ 1147 AssertReturn(DECOMPRESS_TESTS(a_aSubTests[iFn]), RTEXITCODE_FAILURE); \ 1148 IEMBINARYOUTPUT BinOut; \ 1149 AssertReturn(GenerateBinaryOpen(&BinOut, papszNameFmts[a_aSubTests[iFn].idxCpuEflFlavour], \ 1150 a_aSubTests[iFn].pszName, &a_aSubTests[iFn].Info, \ 1151 sizeof(a_aSubTests[iFn].paTests[0])), \ 1152 RTEXITCODE_FAILURE); \ 1153 GenerateBinaryWrite(&BinOut, a_aSubTests[iFn].paTests, a_aSubTests[iFn].cTests); \ 1154 FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \ 1155 AssertReturn(GenerateBinaryClose(&BinOut), RTEXITCODE_FAILURE); \ 1156 } \ 1157 return RTEXITCODE_SUCCESS; \ 1158 } 1099 1159 #endif /* TSTIEMAIMPL_WITH_GENERATOR */ 1100 1160 … … 1136 1196 1137 1197 /** Decompresses test data before use as required. */ 1138 static int DecompressBinaryTest(void const *pvCompressed, uint32_t cbCompressed, size_t cbEntry, 1139 void **ppvTests, uint32_t *pcTests) 1140 { 1198 static int DecompressBinaryTest(void const *pvCompressed, uint32_t cbCompressed, size_t cbEntry, const char *pszWhat, 1199 void **ppvTests, uint32_t *pcTests, IEMTESTENTRYINFO *pInfo) 1200 { 1201 /* Don't do it again. */ 1202 if (pInfo->pvUncompressed && *ppvTests) 1203 return VINF_SUCCESS; 1204 1141 1205 /* Open a memory stream for the compressed binary data. */ 1142 1206 RTVFSIOSTREAM hVfsIos = NIL_RTVFSIOSTREAM; … … 1177 1241 if (RT_SUCCESS(rc)) 1178 1242 { 1179 if ((off % cbEntry) == 0) 1243 /* Validate the header if present and subtract if from 'off'. */ 1244 IEMBINARYHEADER const *pHdr = NULL; 1245 if ( off >= sizeof(IEMTESTENTRYINFO) 1246 && memcmp(pbDecompressed, IEMBINARYHEADER_MAGIC, sizeof(IEMBINARYHEADER_MAGIC)) == 0) 1180 1247 { 1248 pHdr = (IEMBINARYHEADER const *)pbDecompressed; 1249 if (pHdr->cbEntry != cbEntry) 1250 { 1251 RTTestIFailed("Test entry size differs for '%s': %#x (header r%u), expected %#zx (uncompressed size %#zx)", 1252 pszWhat, pHdr->cbEntry, pHdr->uSvnRev, cbEntry, off); 1253 rc = VERR_IO_BAD_UNIT; 1254 } 1255 off -= sizeof(*pHdr); 1256 } 1257 1258 /* Validate the decompressed size wrt entry size. */ 1259 if ((off % cbEntry) != 0 && RT_SUCCESS(rc)) 1260 { 1261 RTTestIFailed("Uneven decompressed data size for '%s': %#zx vs entry size %#zx -> %#zx", 1262 pszWhat, off, cbEntry, off % cbEntry); 1263 rc = VERR_IO_BAD_LENGTH; 1264 } 1265 1266 if (RT_SUCCESS(rc)) 1267 { 1268 /* 1269 * We're good. 1270 */ 1271 /* Reallocate the block if it's way to big. */ 1181 1272 if (cbDecompressedAlloc - off > _512K) 1182 1273 { 1183 1274 void * const pvNew = RTMemRealloc(pbDecompressed, off); 1184 1275 if (pvNew) 1276 { 1185 1277 pbDecompressed = (uint8_t *)pvNew; 1278 if (pHdr) 1279 pHdr = (IEMBINARYHEADER const *)pbDecompressed; 1280 } 1186 1281 } 1187 1188 /* Done! */ 1189 *pcTests = (uint32_t)(off / cbEntry); 1190 *ppvTests = pbDecompressed; 1191 RTMEM_WILL_LEAK(pbDecompressed); 1282 RTMEM_MAY_LEAK(pbDecompressed); 1283 1284 /* Fill in the info and other return values. */ 1285 pInfo->cbUncompressed = (uint32_t)off; 1286 pInfo->pvUncompressed = pbDecompressed; 1287 pInfo->pszCpuDesc = pHdr ? pHdr->szCpuDesc : NULL; 1288 pInfo->uSvnRev = pHdr ? pHdr->uSvnRev : 0; 1289 *pcTests = (uint32_t)(off / cbEntry); 1290 *ppvTests = pHdr ? (uint8_t *)(pHdr + 1) : pbDecompressed; 1192 1291 1193 1292 pbDecompressed = NULL; 1194 1293 rc = VINF_SUCCESS; 1195 1294 } 1196 else1197 {1198 RTTestIFailed("Uneven decompressed data size: %#zx vs entry size %#zx -> %#zx", off, cbEntry, off % cbEntry);1199 rc = VERR_IO_BAD_LENGTH;1200 }1201 1295 } 1202 1296 else 1203 RTTestIFailed("Failed to decompress binary stream: %Rrc (off=%#zx, cbCompressed=%#x)", rc, off, cbCompressed); 1297 RTTestIFailed("Failed to decompress binary stream '%s': %Rrc (off=%#zx, cbCompressed=%#x)", 1298 pszWhat, rc, off, cbCompressed); 1204 1299 RTMemFree(pbDecompressed); 1205 1300 } 1206 1301 else 1207 1302 { 1208 RTTestIFailed("Out of memory decompressing test data ");1303 RTTestIFailed("Out of memory decompressing test data '%s'", pszWhat); 1209 1304 rc = VERR_NO_MEMORY; 1210 1305 } … … 1216 1311 1217 1312 #define DECOMPRESS_TESTS(a_Entry) \ 1218 RT_SUCCESS(DecompressBinaryTest((a_Entry).pvCompressedTests, *(a_Entry).pcbCompressedTests, sizeof((a_Entry).paTests[0]), \ 1219 (void **)&(a_Entry).paTests, &(a_Entry).cTests)) 1220 1221 1222 /** Decompresses test data before use as required. */ 1313 RT_SUCCESS(DecompressBinaryTest((a_Entry).pvCompressedTests, *(a_Entry).pcbCompressedTests, \ 1314 sizeof((a_Entry).paTests[0]), (a_Entry).pszName, \ 1315 (void **)&(a_Entry).paTests, &(a_Entry).cTests, &(a_Entry).Info)) 1316 1317 /** Frees the decompressed test data. */ 1318 static void FreeDecompressedTests(void **ppvTests, uint32_t *pcTests, IEMTESTENTRYINFO *pInfo) 1319 { 1320 RTMemFree(pInfo->pvUncompressed); 1321 pInfo->pvUncompressed = NULL; 1322 pInfo->cbUncompressed = 0; 1323 *ppvTests = NULL; 1324 *pcTests = 0; 1325 } 1326 1327 #define FREE_DECOMPRESSED_TESTS(a_Entry) \ 1328 FreeDecompressedTests((void **)&(a_Entry).paTests, &(a_Entry).cTests, &(a_Entry).Info) 1329 1330 1331 /** Check if the test is enabled and decompresses test data. */ 1223 1332 static int SubTestAndCheckIfEnabledAndDecompress(const char *pszName, void const *pvCompressed, uint32_t cbCompressed, 1224 size_t cbEntry, void **ppvTests, uint32_t *pcTests )1333 size_t cbEntry, void **ppvTests, uint32_t *pcTests, IEMTESTENTRYINFO *pInfo) 1225 1334 { 1226 1335 if (SubTestAndCheckIfEnabled(pszName)) 1227 1336 { 1228 int const rc = DecompressBinaryTest(pvCompressed, cbCompressed, cbEntry, p pvTests, pcTests);1337 int const rc = DecompressBinaryTest(pvCompressed, cbCompressed, cbEntry, pszName, ppvTests, pcTests, pInfo); 1229 1338 if (RT_SUCCESS(rc)) 1230 1339 return true; … … 1235 1344 #define SUBTEST_CHECK_IF_ENABLED_AND_DECOMPRESS(a_Entry) \ 1236 1345 SubTestAndCheckIfEnabledAndDecompress((a_Entry).pszName, (a_Entry).pvCompressedTests, *(a_Entry).pcbCompressedTests, \ 1237 sizeof((a_Entry).paTests[0]), (void **)&(a_Entry).paTests, &(a_Entry).cTests) 1346 sizeof((a_Entry).paTests[0]), \ 1347 (void **)&(a_Entry).paTests, &(a_Entry).cTests, &(a_Entry).Info) 1238 1348 1239 1349 … … 1603 1713 return RTEXITCODE_SUCCESS; \ 1604 1714 } \ 1605 /* Temp for conversion. */ \ 1606 static RTEXITCODE BinU ## a_cBits ## DumpAll(const char * const * papszNameFmts) \ 1607 { \ 1608 for (size_t iFn = 0; iFn < RT_ELEMENTS(g_aBinU ## a_cBits); iFn++) \ 1609 DUMP_TEST_ENTRY(g_aBinU ## a_cBits[iFn], papszNameFmts); \ 1610 return RTEXITCODE_SUCCESS; \ 1611 } 1715 DUMP_ALL_FN(BinU ## a_cBits, g_aBinU ## a_cBits) 1612 1716 1613 1717 #else … … 1709 1813 pfn = a_aSubTests[iFn].pfnNative; \ 1710 1814 } \ 1815 FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \ 1711 1816 } \ 1712 1817 } … … 1963 2068 BINU ## a_cBits ## _TEST_T const *paTests; \ 1964 2069 uint32_t cTests; \ 2070 IEMTESTENTRYINFO Info; \ 1965 2071 } s_aFuncs[] = \ 1966 2072 { \ … … 1990 2096 EFlagsDiff(fEfl, paTests[iTest].fEflOut)); \ 1991 2097 } \ 2098 FREE_DECOMPRESSED_TESTS(s_aFuncs[iFn]); \ 1992 2099 } \ 1993 2100 } while(0) … … 2016 2123 BINU ## a_cBits ## _TEST_T const *paTests; \ 2017 2124 uint32_t cTests; \ 2125 IEMTESTENTRYINFO Info; \ 2018 2126 } s_aFuncs[] = \ 2019 2127 { \ … … 2061 2169 EFlagsDiff(fEfl, fEflExpect)); \ 2062 2170 } \ 2171 FREE_DECOMPRESSED_TESTS(s_aFuncs[iFn]); \ 2063 2172 } \ 2064 2173 } while(0) … … 2238 2347 return RTEXITCODE_SUCCESS; \ 2239 2348 } \ 2240 static RTEXITCODE ShiftDblU ## a_cBits ## DumpAll(const char * const * papszNameFmts) \ 2241 { \ 2242 for (size_t iFn = 0; iFn < RT_ELEMENTS(a_aSubTests); iFn++) \ 2243 DUMP_TEST_ENTRY(a_aSubTests[iFn], papszNameFmts); \ 2244 return RTEXITCODE_SUCCESS; \ 2245 } 2349 DUMP_ALL_FN(ShiftDblU ## a_cBits, a_aSubTests) 2246 2350 2247 2351 #else … … 2298 2402 pfn = a_aSubTests[iFn].pfnNative; \ 2299 2403 } \ 2404 FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \ 2300 2405 } \ 2301 2406 } … … 2363 2468 return RTEXITCODE_SUCCESS; \ 2364 2469 } \ 2365 static RTEXITCODE UnaryU ## a_cBits ## DumpAll(const char * const * papszNameFmts) \ 2366 { \ 2367 for (size_t iFn = 0; iFn < RT_ELEMENTS(g_aUnaryU ## a_cBits); iFn++) \ 2368 DUMP_TEST_ENTRY(g_aUnaryU ## a_cBits[iFn], papszNameFmts); \ 2369 return RTEXITCODE_SUCCESS; \ 2370 } 2470 DUMP_ALL_FN(UnaryU ## a_cBits, g_aUnaryU ## a_cBits) 2371 2471 #else 2372 2472 # define GEN_UNARY(a_cBits, a_Type, a_Fmt, a_TestType, a_SubTestType) … … 2418 2518 } \ 2419 2519 } \ 2520 FREE_DECOMPRESSED_TESTS(g_aUnaryU ## a_cBits[iFn]); \ 2420 2521 } \ 2421 2522 } … … 2498 2599 return RTEXITCODE_SUCCESS; \ 2499 2600 } \ 2500 static RTEXITCODE ShiftU ## a_cBits ## DumpAll(const char * const * papszNameFmts) \ 2501 { \ 2502 for (size_t iFn = 0; iFn < RT_ELEMENTS(a_aSubTests); iFn++) \ 2503 DUMP_TEST_ENTRY(a_aSubTests[iFn], papszNameFmts); \ 2504 return RTEXITCODE_SUCCESS; \ 2505 } 2601 DUMP_ALL_FN(ShiftU ## a_cBits, a_aSubTests) 2506 2602 #else 2507 2603 # define GEN_SHIFT(a_cBits, a_Fmt, a_TestType, a_aSubTests) … … 2566 2662 pfn = a_aSubTests[iFn].pfnNative; \ 2567 2663 } \ 2664 FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \ 2568 2665 } \ 2569 2666 } … … 2632 2729 2633 2730 #ifdef TSTIEMAIMPL_WITH_GENERATOR 2731 DUMP_ALL_FN(MulDivU8, g_aMulDivU8) 2634 2732 static RTEXITCODE MulDivU8Generate(uint32_t cTests, const char * const * papszNameFmts) 2635 2733 { … … 2654 2752 AssertReturn(GenerateBinaryClose(&BinOut), RTEXITCODE_FAILURE); 2655 2753 } 2656 return RTEXITCODE_SUCCESS;2657 }2658 static RTEXITCODE MulDivU8DumpAll(const char * const * papszNameFmts)2659 {2660 for (size_t iFn = 0; iFn < RT_ELEMENTS(g_aMulDivU8); iFn++)2661 DUMP_TEST_ENTRY(g_aMulDivU8[iFn], papszNameFmts);2662 2754 return RTEXITCODE_SUCCESS; 2663 2755 } … … 2705 2797 pfn = g_aMulDivU8[iFn].pfnNative; 2706 2798 } 2799 FREE_DECOMPRESSED_TESTS(g_aMulDivU8[iFn]); \ 2707 2800 } 2708 2801 } … … 2710 2803 #ifdef TSTIEMAIMPL_WITH_GENERATOR 2711 2804 # define GEN_MULDIV(a_cBits, a_Fmt, a_TestType, a_aSubTests) \ 2805 DUMP_ALL_FN(MulDivU ## a_cBits, a_aSubTests) \ 2712 2806 static RTEXITCODE MulDivU ## a_cBits ## Generate(uint32_t cTests, const char * const * papszNameFmts) \ 2713 2807 { \ … … 2735 2829 } \ 2736 2830 return RTEXITCODE_SUCCESS; \ 2737 } \ 2738 static RTEXITCODE MulDivU ## a_cBits ## DumpAll(const char * const * papszNameFmts) \ 2739 { \ 2740 for (size_t iFn = 0; iFn < RT_ELEMENTS(a_aSubTests); iFn++) \ 2741 DUMP_TEST_ENTRY(a_aSubTests[iFn], papszNameFmts); \ 2742 return RTEXITCODE_SUCCESS; \ 2743 } 2744 2831 } 2745 2832 #else 2746 2833 # define GEN_MULDIV(a_cBits, a_Fmt, a_TestType, a_aSubTests) … … 2811 2898 pfn = a_aSubTests[iFn].pfnNative; \ 2812 2899 } \ 2900 FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \ 2813 2901 } \ 2814 2902 } … … 2939 3027 return RTEXITCODE_SUCCESS; 2940 3028 } 2941 2942 static RTEXITCODE FpuLdConstDumpAll(const char * const *papszNameFmts) 2943 { 2944 for (size_t iFn = 0; iFn < RT_ELEMENTS(g_aFpuLdConst); iFn++) 2945 DUMP_TEST_ENTRY(g_aFpuLdConst[iFn], papszNameFmts); 2946 return RTEXITCODE_SUCCESS; 2947 } 3029 DUMP_ALL_FN(FpuLdConst, g_aFpuLdConst) 2948 3030 #endif 2949 3031 2950 static void FpuL oadConstTest(void)3032 static void FpuLdConstTest(void) 2951 3033 { 2952 3034 /* … … 2989 3071 pfn = g_aFpuLdConst[iFn].pfnNative; 2990 3072 } 3073 3074 FREE_DECOMPRESSED_TESTS(g_aFpuLdConst[iFn]); 2991 3075 } 2992 3076 } … … 3025 3109 return RTEXITCODE_SUCCESS; \ 3026 3110 } \ 3027 static RTEXITCODE FpuLdR ## a_cBits ## DumpAll(const char * const *papszNameFmts) \ 3028 { \ 3029 for (size_t iFn = 0; iFn < RT_ELEMENTS(a_aSubTests); iFn++) \ 3030 DUMP_TEST_ENTRY(a_aSubTests[iFn], papszNameFmts); \ 3031 return RTEXITCODE_SUCCESS; \ 3032 } 3111 DUMP_ALL_FN(FpuLdR ## a_cBits, a_aSubTests) 3033 3112 #else 3034 3113 # define GEN_FPU_LOAD(a_cBits, a_rdTypeIn, a_aSubTests, a_TestType) … … 3084 3163 pfn = a_aSubTests[iFn].pfnNative; \ 3085 3164 } \ 3165 \ 3166 FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \ 3086 3167 } \ 3087 3168 } … … 3153 3234 return RTEXITCODE_SUCCESS; \ 3154 3235 } \ 3155 static RTEXITCODE FpuLdI ## a_cBits ## DumpAll(const char * const *papszNameFmts) \ 3156 { \ 3157 for (size_t iFn = 0; iFn < RT_ELEMENTS(a_aSubTests); iFn++) \ 3158 DUMP_TEST_ENTRY(a_aSubTests[iFn], papszNameFmts); \ 3159 return RTEXITCODE_SUCCESS; \ 3160 } 3236 DUMP_ALL_FN(FpuLdI ## a_cBits, a_aSubTests) 3161 3237 #else 3162 3238 # define GEN_FPU_LOAD_INT(a_cBits, a_iTypeIn, a_szFmtIn, a_aSubTests, a_TestType) … … 3211 3287 pfn = a_aSubTests[iFn].pfnNative; \ 3212 3288 } \ 3289 FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \ 3213 3290 } \ 3214 3291 } … … 3288 3365 return RTEXITCODE_SUCCESS; 3289 3366 } 3290 static RTEXITCODE FpuLdD80DumpAll(const char * const *papszNameFmts) 3291 { 3292 for (size_t iFn = 0; iFn < RT_ELEMENTS(g_aFpuLdD80); iFn++) 3293 DUMP_TEST_ENTRY(g_aFpuLdD80[iFn], papszNameFmts); 3294 return RTEXITCODE_SUCCESS; 3295 } 3367 DUMP_ALL_FN(FpuLdD80, g_aFpuLdD80) 3296 3368 #endif 3297 3369 … … 3334 3406 pfn = g_aFpuLdD80[iFn].pfnNative; 3335 3407 } 3408 3409 FREE_DECOMPRESSED_TESTS(g_aFpuLdD80[iFn]); 3336 3410 } 3337 3411 } … … 3402 3476 return RTEXITCODE_SUCCESS; \ 3403 3477 } \ 3404 static RTEXITCODE FpuStR ## a_cBits ## DumpAll(const char * const *papszNameFmts) \ 3405 { \ 3406 for (size_t iFn = 0; iFn < RT_ELEMENTS(a_aSubTests); iFn++) \ 3407 DUMP_TEST_ENTRY(a_aSubTests[iFn], papszNameFmts); \ 3408 return RTEXITCODE_SUCCESS; \ 3409 } 3478 DUMP_ALL_FN(FpuStR ## a_cBits, a_aSubTests) 3410 3479 #else 3411 3480 # define GEN_FPU_STORE(a_cBits, a_rdType, a_aSubTests, a_TestType) … … 3465 3534 pfn = a_aSubTests[iFn].pfnNative; \ 3466 3535 } \ 3536 FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \ 3467 3537 } \ 3468 3538 } … … 3662 3732 return RTEXITCODE_SUCCESS; \ 3663 3733 } \ 3664 static RTEXITCODE FpuStI ## a_cBits ## DumpAll(const char * const *papszNameFmts) \ 3665 { \ 3666 for (size_t iFn = 0; iFn < RT_ELEMENTS(a_aSubTests); iFn++) \ 3667 DUMP_TEST_ENTRY(a_aSubTests[iFn], papszNameFmts); \ 3668 return RTEXITCODE_SUCCESS; \ 3669 } 3734 DUMP_ALL_FN(FpuStI ## a_cBits, a_aSubTests) 3670 3735 #else 3671 3736 # define GEN_FPU_STORE_INT(a_cBits, a_iType, a_szFmt, a_aSubTests, a_TestType) … … 3713 3778 pfn = a_aSubTests[iFn].pfnNative; \ 3714 3779 } \ 3780 FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \ 3715 3781 } \ 3716 3782 } … … 3816 3882 return RTEXITCODE_SUCCESS; 3817 3883 } 3818 3819 static RTEXITCODE FpuStD80DumpAll(const char * const *papszNameFmts) 3820 { 3821 for (size_t iFn = 0; iFn < RT_ELEMENTS(g_aFpuStD80); iFn++) 3822 DUMP_TEST_ENTRY(g_aFpuStD80[iFn], papszNameFmts); 3823 return RTEXITCODE_SUCCESS; 3824 } 3884 DUMP_ALL_FN(FpuStD80, g_aFpuStD80) 3825 3885 #endif 3826 3886 … … 3865 3925 pfn = g_aFpuStD80[iFn].pfnNative; 3866 3926 } 3927 3928 FREE_DECOMPRESSED_TESTS(g_aFpuStD80[iFn]); 3867 3929 } 3868 3930 } … … 4095 4157 return RTEXITCODE_SUCCESS; 4096 4158 } 4097 4098 static RTEXITCODE FpuBinaryR80DumpAll(const char * const *papszNameFmts) 4099 { 4100 for (size_t iFn = 0; iFn < RT_ELEMENTS(g_aFpuBinaryR80); iFn++) 4101 DUMP_TEST_ENTRY(g_aFpuBinaryR80[iFn], papszNameFmts); 4102 return RTEXITCODE_SUCCESS; 4103 } 4159 DUMP_ALL_FN(FpuBinaryR80, g_aFpuBinaryR80) 4104 4160 #endif 4105 4161 … … 4144 4200 pfn = g_aFpuBinaryR80[iFn].pfnNative; 4145 4201 } 4202 4203 FREE_DECOMPRESSED_TESTS(g_aFpuBinaryR80[iFn]); 4146 4204 } 4147 4205 } … … 4227 4285 return RTEXITCODE_SUCCESS; \ 4228 4286 } \ 4229 static RTEXITCODE FpuBinary ## a_UpBits ## DumpAll(const char * const *papszNameFmts) \ 4230 { \ 4231 for (size_t iFn = 0; iFn < RT_ELEMENTS(a_aSubTests); iFn++) \ 4232 DUMP_TEST_ENTRY(a_aSubTests[iFn], papszNameFmts); \ 4233 return RTEXITCODE_SUCCESS; \ 4234 } 4287 DUMP_ALL_FN(FpuBinary ## a_UpBits, a_aSubTests) 4235 4288 #else 4236 4289 # define GEN_FPU_BINARY_SMALL(a_fIntType, a_cBits, a_LoBits, a_UpBits, a_Type2, a_aSubTests, a_TestType) … … 4291 4344 pfn = a_aSubTests[iFn].pfnNative; \ 4292 4345 } \ 4346 FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \ 4293 4347 } \ 4294 4348 } … … 4372 4426 return RTEXITCODE_SUCCESS; \ 4373 4427 } \ 4374 static RTEXITCODE FpuBinaryFsw ## a_UpBits ## DumpAll(const char * const *papszNameFmts) \ 4375 { \ 4376 for (size_t iFn = 0; iFn < RT_ELEMENTS(a_aSubTests); iFn++) \ 4377 DUMP_TEST_ENTRY(a_aSubTests[iFn], papszNameFmts); \ 4378 return RTEXITCODE_SUCCESS; \ 4379 } 4428 DUMP_ALL_FN(FpuBinaryFsw ## a_UpBits, a_aSubTests) 4380 4429 #else 4381 4430 # define GEN_FPU_BINARY_FSW(a_fIntType, a_cBits, a_UpBits, a_Type2, a_aSubTests, a_TestType) … … 4428 4477 pfn = a_aSubTests[iFn].pfnNative; \ 4429 4478 } \ 4479 FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \ 4430 4480 } \ 4431 4481 } … … 4497 4547 return RTEXITCODE_SUCCESS; 4498 4548 } 4499 4500 static RTEXITCODE FpuBinaryEflR80DumpAll(const char * const *papszNameFmts) 4501 { 4502 for (size_t iFn = 0; iFn < RT_ELEMENTS(g_aFpuBinaryEflR80); iFn++) 4503 DUMP_TEST_ENTRY(g_aFpuBinaryEflR80[iFn], papszNameFmts); 4504 return RTEXITCODE_SUCCESS; 4505 } 4549 DUMP_ALL_FN(FpuBinaryEflR80, g_aFpuBinaryEflR80) 4506 4550 #endif /*TSTIEMAIMPL_WITH_GENERATOR*/ 4507 4551 … … 4544 4588 pfn = g_aFpuBinaryEflR80[iFn].pfnNative; 4545 4589 } 4590 4591 FREE_DECOMPRESSED_TESTS(g_aFpuBinaryEflR80[iFn]); 4546 4592 } 4547 4593 } … … 4587 4633 } 4588 4634 4635 DUMP_ALL_FN(FpuUnaryR80, g_aFpuUnaryR80) 4589 4636 static RTEXITCODE FpuUnaryR80Generate(uint32_t cTests, const char * const *papszNameFmts) 4590 4637 { … … 4701 4748 AssertReturn(GenerateBinaryClose(&BinOut), RTEXITCODE_FAILURE); 4702 4749 } 4703 return RTEXITCODE_SUCCESS;4704 }4705 4706 static RTEXITCODE FpuUnaryR80DumpAll(const char * const *papszNameFmts)4707 {4708 for (size_t iFn = 0; iFn < RT_ELEMENTS(g_aFpuUnaryR80); iFn++)4709 DUMP_TEST_ENTRY(g_aFpuUnaryR80[iFn], papszNameFmts);4710 4750 return RTEXITCODE_SUCCESS; 4711 4751 } … … 4798 4838 if (cPossibleRndErrs > 0) 4799 4839 RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "rounding errors: %u out of %u\n", cRndErrs, cPossibleRndErrs); 4840 FREE_DECOMPRESSED_TESTS(g_aFpuUnaryR80[iFn]); 4800 4841 } 4801 4842 } … … 4884 4925 return RTEXITCODE_SUCCESS; 4885 4926 } 4886 4887 static RTEXITCODE FpuUnaryFswR80DumpAll(const char * const *papszNameFmts) 4888 { 4889 for (size_t iFn = 0; iFn < RT_ELEMENTS(g_aFpuUnaryFswR80); iFn++) 4890 DUMP_TEST_ENTRY(g_aFpuUnaryFswR80[iFn], papszNameFmts); 4891 return RTEXITCODE_SUCCESS; 4892 } 4927 DUMP_ALL_FN(FpuUnaryFswR80, g_aFpuUnaryFswR80) 4893 4928 #endif 4894 4929 … … 4931 4966 pfn = g_aFpuUnaryFswR80[iFn].pfnNative; 4932 4967 } 4968 4969 FREE_DECOMPRESSED_TESTS(g_aFpuUnaryFswR80[iFn]); 4933 4970 } 4934 4971 } … … 5057 5094 return RTEXITCODE_SUCCESS; 5058 5095 } 5059 5060 static RTEXITCODE FpuUnaryTwoR80DumpAll(const char * const *papszNameFmts) 5061 { 5062 for (size_t iFn = 0; iFn < RT_ELEMENTS(g_aFpuUnaryTwoR80); iFn++) 5063 DUMP_TEST_ENTRY(g_aFpuUnaryTwoR80[iFn], papszNameFmts); 5064 return RTEXITCODE_SUCCESS; 5065 } 5096 DUMP_ALL_FN(FpuUnaryTwoR80, g_aFpuUnaryTwoR80) 5066 5097 #endif 5067 5098 … … 5107 5138 pfn = g_aFpuUnaryTwoR80[iFn].pfnNative; 5108 5139 } 5140 5141 FREE_DECOMPRESSED_TESTS(g_aFpuUnaryTwoR80[iFn]); 5109 5142 } 5110 5143 } … … 5136 5169 5137 5170 #ifdef TSTIEMAIMPL_WITH_GENERATOR 5138 static RTEXITCODE SseBinaryR32Generate(const char *pszDataFileFmt, uint32_t cTests) 5171 DUMP_ALL_FN(SseBinaryR32, g_aSseBinaryR32) 5172 static RTEXITCODE SseBinaryR32Generate(uint32_t cTests, const char * const *papszNameFmts) 5139 5173 { 5140 5174 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 5155 5189 5156 5190 IEMBINARYOUTPUT BinOut; 5157 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR32[iFn].pszName), RTEXITCODE_FAILURE);5191 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR32[iFn]), RTEXITCODE_FAILURE); 5158 5192 5159 5193 uint32_t cNormalInputPairs = 0; … … 5300 5334 pfn = g_aSseBinaryR32[iFn].pfnNative; 5301 5335 } 5336 5337 FREE_DECOMPRESSED_TESTS(g_aSseBinaryR32[iFn]); 5302 5338 } 5303 5339 } … … 5325 5361 5326 5362 #ifdef TSTIEMAIMPL_WITH_GENERATOR 5327 static RTEXITCODE SseBinaryR64Generate(const char *pszDataFileFmt, uint32_t cTests) 5363 DUMP_ALL_FN(SseBinaryR64, g_aSseBinaryR32) 5364 static RTEXITCODE SseBinaryR64Generate(uint32_t cTests, const char * const *papszNameFmts) 5328 5365 { 5329 5366 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 5344 5381 5345 5382 IEMBINARYOUTPUT BinOut; 5346 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR64[iFn].pszName), RTEXITCODE_FAILURE);5383 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR64[iFn]), RTEXITCODE_FAILURE); 5347 5384 5348 5385 uint32_t cNormalInputPairs = 0; … … 5478 5515 pfn = g_aSseBinaryR64[iFn].pfnNative; 5479 5516 } 5517 5518 FREE_DECOMPRESSED_TESTS(g_aSseBinaryR64[iFn]); 5480 5519 } 5481 5520 } … … 5500 5539 5501 5540 #ifdef TSTIEMAIMPL_WITH_GENERATOR 5502 static RTEXITCODE SseBinaryU128R32Generate(const char *pszDataFileFmt, uint32_t cTests) 5541 DUMP_ALL_FN(SseBinaryU128R32, g_aSseBinaryU128R32) 5542 static RTEXITCODE SseBinaryU128R32Generate(uint32_t cTests, const char * const *papszNameFmts) 5503 5543 { 5504 5544 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 5518 5558 5519 5559 IEMBINARYOUTPUT BinOut; 5520 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryU128R32[iFn].pszName), RTEXITCODE_FAILURE);5560 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryU128R32[iFn]), RTEXITCODE_FAILURE); 5521 5561 5522 5562 uint32_t cNormalInputPairs = 0; … … 5659 5699 } 5660 5700 } 5701 5702 FREE_DECOMPRESSED_TESTS(g_aSseBinaryU128R32[iFn]); 5661 5703 } 5662 5704 } … … 5681 5723 5682 5724 #ifdef TSTIEMAIMPL_WITH_GENERATOR 5683 static RTEXITCODE SseBinaryU128R64Generate(const char *pszDataFileFmt, uint32_t cTests) 5725 DUMP_ALL_FN(SseBinaryU128R64, g_aSseBinaryU128R64) 5726 static RTEXITCODE SseBinaryU128R64Generate(uint32_t cTests, const char * const *papszNameFmts) 5684 5727 { 5685 5728 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 5699 5742 5700 5743 IEMBINARYOUTPUT BinOut; 5701 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryU128R64[iFn].pszName), RTEXITCODE_FAILURE);5744 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryU128R64[iFn]), RTEXITCODE_FAILURE); 5702 5745 5703 5746 uint32_t cNormalInputPairs = 0; … … 5831 5874 } 5832 5875 } 5876 5877 FREE_DECOMPRESSED_TESTS(g_aSseBinaryU128R64[iFn]); 5833 5878 } 5834 5879 } … … 5847 5892 5848 5893 #ifdef TSTIEMAIMPL_WITH_GENERATOR 5849 static RTEXITCODE SseBinaryI32R64Generate(const char *pszDataFileFmt, uint32_t cTests) 5894 DUMP_ALL_FN(SseBinaryI32R64, g_aSseBinaryI32R64) 5895 static RTEXITCODE SseBinaryI32R64Generate(uint32_t cTests, const char * const *papszNameFmts) 5850 5896 { 5851 5897 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 5865 5911 5866 5912 IEMBINARYOUTPUT BinOut; 5867 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryI32R64[iFn].pszName), RTEXITCODE_FAILURE);5913 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryI32R64[iFn]), RTEXITCODE_FAILURE); 5868 5914 5869 5915 uint32_t cNormalInputPairs = 0; … … 5990 6036 } 5991 6037 } 6038 6039 FREE_DECOMPRESSED_TESTS(g_aSseBinaryI32R64[iFn]); 5992 6040 } 5993 6041 } … … 6006 6054 6007 6055 #ifdef TSTIEMAIMPL_WITH_GENERATOR 6008 static RTEXITCODE SseBinaryI64R64Generate(const char *pszDataFileFmt, uint32_t cTests) 6056 DUMP_ALL_FN(SseBinaryI64R64, g_aSseBinaryI64R64) 6057 static RTEXITCODE SseBinaryI64R64Generate(uint32_t cTests, const char * const *papszNameFmts) 6009 6058 { 6010 6059 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 6024 6073 6025 6074 IEMBINARYOUTPUT BinOut; 6026 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryI64R64[iFn].pszName), RTEXITCODE_FAILURE);6075 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryI64R64[iFn]), RTEXITCODE_FAILURE); 6027 6076 6028 6077 uint32_t cNormalInputPairs = 0; … … 6149 6198 } 6150 6199 } 6200 6201 FREE_DECOMPRESSED_TESTS(g_aSseBinaryI64R64[iFn]); 6151 6202 } 6152 6203 } … … 6165 6216 6166 6217 #ifdef TSTIEMAIMPL_WITH_GENERATOR 6167 static RTEXITCODE SseBinaryI32R32Generate(const char *pszDataFileFmt, uint32_t cTests) 6218 DUMP_ALL_FN(SseBinaryI32R32, g_aSseBinaryI32R32) 6219 static RTEXITCODE SseBinaryI32R32Generate(uint32_t cTests, const char * const *papszNameFmts) 6168 6220 { 6169 6221 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 6183 6235 6184 6236 IEMBINARYOUTPUT BinOut; 6185 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryI32R32[iFn].pszName), RTEXITCODE_FAILURE);6237 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryI32R32[iFn]), RTEXITCODE_FAILURE); 6186 6238 6187 6239 uint32_t cNormalInputPairs = 0; … … 6308 6360 } 6309 6361 } 6362 6363 FREE_DECOMPRESSED_TESTS(g_aSseBinaryI32R32[iFn]); 6310 6364 } 6311 6365 } … … 6324 6378 6325 6379 #ifdef TSTIEMAIMPL_WITH_GENERATOR 6326 static RTEXITCODE SseBinaryI64R32Generate(const char *pszDataFileFmt, uint32_t cTests) 6380 DUMP_ALL_FN(SseBinaryI64R32, g_aSseBinaryI64R32) 6381 static RTEXITCODE SseBinaryI64R32Generate(uint32_t cTests, const char * const *papszNameFmts) 6327 6382 { 6328 6383 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 6342 6397 6343 6398 IEMBINARYOUTPUT BinOut; 6344 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryI64R32[iFn].pszName), RTEXITCODE_FAILURE);6399 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryI64R32[iFn]), RTEXITCODE_FAILURE); 6345 6400 6346 6401 uint32_t cNormalInputPairs = 0; … … 6467 6522 } 6468 6523 } 6524 6525 FREE_DECOMPRESSED_TESTS(g_aSseBinaryI64R32[iFn]); 6469 6526 } 6470 6527 } … … 6482 6539 6483 6540 #ifdef TSTIEMAIMPL_WITH_GENERATOR 6484 static RTEXITCODE SseBinaryR64I32Generate(const char *pszDataFileFmt, uint32_t cTests) 6541 DUMP_ALL_FN(SseBinaryR64I32, g_aSseBinaryR64I32) 6542 static RTEXITCODE SseBinaryR64I32Generate(uint32_t cTests, const char * const *papszNameFmts) 6485 6543 { 6486 6544 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 6500 6558 6501 6559 IEMBINARYOUTPUT BinOut; 6502 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR64I32[iFn].pszName), RTEXITCODE_FAILURE);6560 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR64I32[iFn]), RTEXITCODE_FAILURE); 6503 6561 6504 6562 for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1) … … 6616 6674 } 6617 6675 } 6676 6677 FREE_DECOMPRESSED_TESTS(g_aSseBinaryR64I32[iFn]); 6618 6678 } 6619 6679 } … … 6631 6691 6632 6692 #ifdef TSTIEMAIMPL_WITH_GENERATOR 6633 static RTEXITCODE SseBinaryR64I64Generate(const char *pszDataFileFmt, uint32_t cTests) 6693 DUMP_ALL_FN(SseBinaryR64I64, g_aSseBinaryR64I64) 6694 static RTEXITCODE SseBinaryR64I64Generate(uint32_t cTests, const char * const *papszNameFmts) 6634 6695 { 6635 6696 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 6649 6710 6650 6711 IEMBINARYOUTPUT BinOut; 6651 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR64I64[iFn].pszName), RTEXITCODE_FAILURE);6712 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR64I64[iFn]), RTEXITCODE_FAILURE); 6652 6713 6653 6714 for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1) … … 6765 6826 } 6766 6827 } 6828 6829 FREE_DECOMPRESSED_TESTS(g_aSseBinaryR64I64[iFn]); 6767 6830 } 6768 6831 } … … 6780 6843 6781 6844 #ifdef TSTIEMAIMPL_WITH_GENERATOR 6782 static RTEXITCODE SseBinaryR32I32Generate(const char *pszDataFileFmt, uint32_t cTests) 6845 DUMP_ALL_FN(SseBinaryR32I32, g_aSseBinaryR32I32) 6846 static RTEXITCODE SseBinaryR32I32Generate(uint32_t cTests, const char * const *papszNameFmts) 6783 6847 { 6784 6848 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 6798 6862 6799 6863 IEMBINARYOUTPUT BinOut; 6800 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR32I32[iFn].pszName), RTEXITCODE_FAILURE);6864 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR32I32[iFn]), RTEXITCODE_FAILURE); 6801 6865 6802 6866 for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1) … … 6914 6978 } 6915 6979 } 6980 6981 FREE_DECOMPRESSED_TESTS(g_aSseBinaryR32I32[iFn]); 6916 6982 } 6917 6983 } … … 6929 6995 6930 6996 #ifdef TSTIEMAIMPL_WITH_GENERATOR 6931 static RTEXITCODE SseBinaryR32I64Generate(const char *pszDataFileFmt, uint32_t cTests) 6997 DUMP_ALL_FN(SseBinaryR32I64, g_aSseBinaryR32I64) 6998 static RTEXITCODE SseBinaryR32I64Generate(uint32_t cTests, const char * const *papszNameFmts) 6932 6999 { 6933 7000 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 6947 7014 6948 7015 IEMBINARYOUTPUT BinOut; 6949 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR32I64[iFn].pszName), RTEXITCODE_FAILURE);7016 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR32I64[iFn]), RTEXITCODE_FAILURE); 6950 7017 6951 7018 for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1) … … 7063 7130 } 7064 7131 } 7132 7133 FREE_DECOMPRESSED_TESTS(g_aSseBinaryR32I64[iFn]); 7065 7134 } 7066 7135 } … … 7081 7150 7082 7151 #ifdef TSTIEMAIMPL_WITH_GENERATOR 7083 static RTEXITCODE SseCompareEflR32R32Generate(const char *pszDataFileFmt, uint32_t cTests) 7152 DUMP_ALL_FN(SseCompareEflR32R32, g_aSseCompareEflR32R32) 7153 static RTEXITCODE SseCompareEflR32R32Generate(uint32_t cTests, const char * const *papszNameFmts) 7084 7154 { 7085 7155 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 7104 7174 7105 7175 IEMBINARYOUTPUT BinOut; 7106 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseCompareEflR32R32[iFn].pszName), RTEXITCODE_FAILURE);7176 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseCompareEflR32R32[iFn]), RTEXITCODE_FAILURE); 7107 7177 7108 7178 uint32_t cNormalInputPairs = 0; … … 7246 7316 } 7247 7317 } 7318 7319 FREE_DECOMPRESSED_TESTS(g_aSseCompareEflR32R32[iFn]); 7248 7320 } 7249 7321 } … … 7264 7336 7265 7337 #ifdef TSTIEMAIMPL_WITH_GENERATOR 7266 static RTEXITCODE SseCompareEflR64R64Generate(const char *pszDataFileFmt, uint32_t cTests) 7338 DUMP_ALL_FN(SseCompareEflR64R64, g_aSseCompareEflR64R64) 7339 static RTEXITCODE SseCompareEflR64R64Generate(uint32_t cTests, const char * const *papszNameFmts) 7267 7340 { 7268 7341 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 7287 7360 7288 7361 IEMBINARYOUTPUT BinOut; 7289 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseCompareEflR64R64[iFn].pszName), RTEXITCODE_FAILURE);7362 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseCompareEflR64R64[iFn]), RTEXITCODE_FAILURE); 7290 7363 7291 7364 uint32_t cNormalInputPairs = 0; … … 7429 7502 } 7430 7503 } 7504 7505 FREE_DECOMPRESSED_TESTS(g_aSseCompareEflR64R64[iFn]); 7431 7506 } 7432 7507 } … … 7448 7523 7449 7524 #ifdef TSTIEMAIMPL_WITH_GENERATOR 7450 static RTEXITCODE SseCompareF2XmmR32Imm8Generate(const char *pszDataFileFmt, uint32_t cTests) 7525 DUMP_ALL_FN(SseCompareF2XmmR32Imm8, g_aSseCompareF2XmmR32Imm8) 7526 static RTEXITCODE SseCompareF2XmmR32Imm8Generate(uint32_t cTests, const char * const *papszNameFmts) 7451 7527 { 7452 7528 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 7471 7547 7472 7548 IEMBINARYOUTPUT BinOut; 7473 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseCompareF2XmmR32Imm8[iFn].pszName), RTEXITCODE_FAILURE);7549 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseCompareF2XmmR32Imm8[iFn]), RTEXITCODE_FAILURE); 7474 7550 7475 7551 uint32_t cNormalInputPairs = 0; … … 7636 7712 } 7637 7713 } 7714 7715 FREE_DECOMPRESSED_TESTS(g_aSseCompareF2XmmR32Imm8[iFn]); 7638 7716 } 7639 7717 } … … 7650 7728 7651 7729 #ifdef TSTIEMAIMPL_WITH_GENERATOR 7652 static RTEXITCODE SseCompareF2XmmR64Imm8Generate(const char *pszDataFileFmt, uint32_t cTests) 7730 DUMP_ALL_FN(SseCompareF2XmmR64Imm8, g_aSseCompareF2XmmR64Imm8) 7731 static RTEXITCODE SseCompareF2XmmR64Imm8Generate(uint32_t cTests, const char * const *papszNameFmts) 7653 7732 { 7654 7733 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 7673 7752 7674 7753 IEMBINARYOUTPUT BinOut; 7675 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseCompareF2XmmR64Imm8[iFn].pszName), RTEXITCODE_FAILURE);7754 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseCompareF2XmmR64Imm8[iFn]), RTEXITCODE_FAILURE); 7676 7755 7677 7756 uint32_t cNormalInputPairs = 0; … … 7823 7902 } 7824 7903 } 7904 7905 FREE_DECOMPRESSED_TESTS(g_aSseCompareF2XmmR64Imm8[iFn]); 7825 7906 } 7826 7907 } … … 7838 7919 7839 7920 #ifdef TSTIEMAIMPL_WITH_GENERATOR 7840 static RTEXITCODE SseConvertXmmI32R32Generate(const char *pszDataFileFmt, uint32_t cTests) 7921 DUMP_ALL_FN(SseConvertXmmI32R32, g_aSseConvertXmmI32R32) 7922 static RTEXITCODE SseConvertXmmI32R32Generate(uint32_t cTests, const char * const *papszNameFmts) 7841 7923 { 7842 7924 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 7858 7940 7859 7941 IEMBINARYOUTPUT BinOut; 7860 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmI32R32[iFn].pszName), RTEXITCODE_FAILURE);7942 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmI32R32[iFn]), RTEXITCODE_FAILURE); 7861 7943 7862 7944 X86FXSTATE State; … … 7989 8071 } 7990 8072 } 8073 8074 FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmI32R32[iFn]); 7991 8075 } 7992 8076 } … … 8003 8087 8004 8088 #ifdef TSTIEMAIMPL_WITH_GENERATOR 8005 static RTEXITCODE SseConvertXmmR32I32Generate(const char *pszDataFileFmt, uint32_t cTests) 8089 DUMP_ALL_FN(SseConvertXmmR32I32, g_aSseConvertXmmR32I32) 8090 static RTEXITCODE SseConvertXmmR32I32Generate(uint32_t cTests, const char * const *papszNameFmts) 8006 8091 { 8007 8092 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 8024 8109 8025 8110 IEMBINARYOUTPUT BinOut; 8026 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmR32I32[iFn].pszName), RTEXITCODE_FAILURE);8111 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmR32I32[iFn]), RTEXITCODE_FAILURE); 8027 8112 8028 8113 uint32_t cNormalInputPairs = 0; … … 8165 8250 } 8166 8251 } 8252 8253 FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmR32I32[iFn]); 8167 8254 } 8168 8255 } … … 8178 8265 8179 8266 #ifdef TSTIEMAIMPL_WITH_GENERATOR 8180 static RTEXITCODE SseConvertXmmI32R64Generate(const char *pszDataFileFmt, uint32_t cTests) 8267 DUMP_ALL_FN(SseConvertXmmI32R64, g_aSseConvertXmmI32R64) 8268 static RTEXITCODE SseConvertXmmI32R64Generate(uint32_t cTests, const char * const *papszNameFmts) 8181 8269 { 8182 8270 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 8198 8286 8199 8287 IEMBINARYOUTPUT BinOut; 8200 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmI32R64[iFn].pszName), RTEXITCODE_FAILURE);8288 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmI32R64[iFn]), RTEXITCODE_FAILURE); 8201 8289 8202 8290 X86FXSTATE State; … … 8323 8411 } 8324 8412 } 8413 8414 FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmI32R64[iFn]); 8325 8415 } 8326 8416 } … … 8337 8427 8338 8428 #ifdef TSTIEMAIMPL_WITH_GENERATOR 8339 static RTEXITCODE SseConvertXmmR64I32Generate(const char *pszDataFileFmt, uint32_t cTests) 8429 DUMP_ALL_FN(SseConvertXmmR64I32, g_aSseConvertXmmR64I32) 8430 static RTEXITCODE SseConvertXmmR64I32Generate(uint32_t cTests, const char * const *papszNameFmts) 8340 8431 { 8341 8432 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 8358 8449 8359 8450 IEMBINARYOUTPUT BinOut; 8360 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmR64I32[iFn].pszName), RTEXITCODE_FAILURE);8451 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmR64I32[iFn]), RTEXITCODE_FAILURE); 8361 8452 8362 8453 uint32_t cNormalInputPairs = 0; … … 8494 8585 } 8495 8586 } 8587 8588 FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmR64I32[iFn]); 8496 8589 } 8497 8590 } … … 8510 8603 8511 8604 #ifdef TSTIEMAIMPL_WITH_GENERATOR 8512 static RTEXITCODE SseConvertMmXmmGenerate(const char *pszDataFileFmt, uint32_t cTests) 8605 DUMP_ALL_FN(SseConvertMmXmm, g_aSseConvertMmXmm) 8606 static RTEXITCODE SseConvertMmXmmGenerate(uint32_t cTests, const char * const *papszNameFmts) 8513 8607 { 8514 8608 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 8529 8623 8530 8624 IEMBINARYOUTPUT BinOut; 8531 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertMmXmm[iFn].pszName), RTEXITCODE_FAILURE);8625 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertMmXmm[iFn]), RTEXITCODE_FAILURE); 8532 8626 8533 8627 uint32_t cNormalInputPairs = 0; … … 8662 8756 } 8663 8757 } 8758 8759 FREE_DECOMPRESSED_TESTS(g_aSseConvertMmXmm[iFn]); 8664 8760 } 8665 8761 } … … 8677 8773 8678 8774 #ifdef TSTIEMAIMPL_WITH_GENERATOR 8679 static RTEXITCODE SseConvertXmmR64MmGenerate(const char *pszDataFileFmt, uint32_t cTests) 8775 DUMP_ALL_FN(SseConvertXmmR64Mm, g_aSseConvertXmmR64Mm) 8776 static RTEXITCODE SseConvertXmmR64MmGenerate(uint32_t cTests, const char * const *papszNameFmts) 8680 8777 { 8681 8778 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 8693 8790 8694 8791 IEMBINARYOUTPUT BinOut; 8695 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmR64Mm[iFn].pszName), RTEXITCODE_FAILURE);8792 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmR64Mm[iFn]), RTEXITCODE_FAILURE); 8696 8793 8697 8794 for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1) … … 8804 8901 } 8805 8902 } 8903 8904 FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmR64Mm[iFn]); 8806 8905 } 8807 8906 } … … 8819 8918 8820 8919 #ifdef TSTIEMAIMPL_WITH_GENERATOR 8821 static RTEXITCODE SseConvertXmmR32MmGenerate(const char *pszDataFileFmt, uint32_t cTests) 8920 DUMP_ALL_FN(SseConvertXmmR32Mm, g_aSseConvertXmmR32Mm) 8921 static RTEXITCODE SseConvertXmmR32MmGenerate(uint32_t cTests, const char * const *papszNameFmts) 8822 8922 { 8823 8923 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 8835 8935 8836 8936 IEMBINARYOUTPUT BinOut; 8837 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmR32Mm[iFn].pszName), RTEXITCODE_FAILURE);8937 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmR32Mm[iFn]), RTEXITCODE_FAILURE); 8838 8938 8839 8939 for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1) … … 8946 9046 } 8947 9047 } 9048 9049 FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmR32Mm[iFn]); 8948 9050 } 8949 9051 } … … 8962 9064 8963 9065 #ifdef TSTIEMAIMPL_WITH_GENERATOR 8964 static RTEXITCODE SseConvertMmI32XmmR32Generate(const char *pszDataFileFmt, uint32_t cTests) 9066 DUMP_ALL_FN(SseConvertMmI32XmmR32, g_aSseConvertMmI32XmmR32) 9067 static RTEXITCODE SseConvertMmI32XmmR32Generate(uint32_t cTests, const char * const *papszNameFmts) 8965 9068 { 8966 9069 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 8981 9084 8982 9085 IEMBINARYOUTPUT BinOut; 8983 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertMmI32XmmR32[iFn].pszName), RTEXITCODE_FAILURE);9086 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertMmI32XmmR32[iFn]), RTEXITCODE_FAILURE); 8984 9087 8985 9088 uint32_t cNormalInputPairs = 0; … … 9124 9227 } 9125 9228 } 9229 9230 FREE_DECOMPRESSED_TESTS(g_aSseConvertMmI32XmmR32[iFn]); 9126 9231 } 9127 9232 } … … 9139 9244 9140 9245 #ifdef TSTIEMAIMPL_WITH_GENERATOR 9141 static RTEXITCODE SseComparePcmpistriGenerate(const char *pszDataFileFmt, uint32_t cTests) 9246 DUMP_ALL_FN(SseComparePcmpistri, g_aSsePcmpistri) 9247 static RTEXITCODE SseComparePcmpistriGenerate(uint32_t cTests, const char * const *papszNameFmts) 9142 9248 { 9143 9249 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 9154 9260 9155 9261 IEMBINARYOUTPUT BinOut; 9156 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSsePcmpistri[iFn].pszName), RTEXITCODE_FAILURE);9262 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSsePcmpistri[iFn]), RTEXITCODE_FAILURE); 9157 9263 9158 9264 for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1) … … 9239 9345 } 9240 9346 } 9347 9348 FREE_DECOMPRESSED_TESTS(g_aSsePcmpistri[iFn]); 9241 9349 } 9242 9350 } … … 9251 9359 9252 9360 #ifdef TSTIEMAIMPL_WITH_GENERATOR 9253 static RTEXITCODE SseComparePcmpistrmGenerate(const char *pszDataFileFmt, uint32_t cTests) 9361 DUMP_ALL_FN(SseComparePcmpistrm, g_aSsePcmpistrm) 9362 static RTEXITCODE SseComparePcmpistrmGenerate(uint32_t cTests, const char * const *papszNameFmts) 9254 9363 { 9255 9364 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 9266 9375 9267 9376 IEMBINARYOUTPUT BinOut; 9268 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSsePcmpistrm[iFn].pszName), RTEXITCODE_FAILURE);9377 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSsePcmpistrm[iFn]), RTEXITCODE_FAILURE); 9269 9378 9270 9379 for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1) … … 9353 9462 } 9354 9463 } 9464 9465 FREE_DECOMPRESSED_TESTS(g_aSsePcmpistrm[iFn]); 9355 9466 } 9356 9467 } … … 9365 9476 9366 9477 #ifdef TSTIEMAIMPL_WITH_GENERATOR 9367 static RTEXITCODE SseComparePcmpestriGenerate(const char *pszDataFileFmt, uint32_t cTests) 9478 DUMP_ALL_FN(SseComparePcmpestri, g_aSsePcmpestri) 9479 static RTEXITCODE SseComparePcmpestriGenerate(uint32_t cTests, const char * const *papszNameFmts) 9368 9480 { 9369 9481 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 9380 9492 9381 9493 IEMBINARYOUTPUT BinOut; 9382 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSsePcmpestri[iFn].pszName), RTEXITCODE_FAILURE);9494 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSsePcmpestri[iFn]), RTEXITCODE_FAILURE); 9383 9495 9384 9496 for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1) … … 9478 9590 } 9479 9591 } 9592 9593 FREE_DECOMPRESSED_TESTS(g_aSsePcmpestri[iFn]); 9480 9594 } 9481 9595 } … … 9490 9604 9491 9605 #ifdef TSTIEMAIMPL_WITH_GENERATOR 9492 static RTEXITCODE SseComparePcmpestrmGenerate(const char *pszDataFileFmt, uint32_t cTests) 9606 DUMP_ALL_FN(SseComparePcmpestrm, g_aSsePcmpestrm) 9607 static RTEXITCODE SseComparePcmpestrmGenerate(uint32_t cTests, const char * const *papszNameFmts) 9493 9608 { 9494 9609 cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */ … … 9505 9620 9506 9621 IEMBINARYOUTPUT BinOut; 9507 AssertReturn(G enerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSsePcmpestrm[iFn].pszName), RTEXITCODE_FAILURE);9622 AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSsePcmpestrm[iFn]), RTEXITCODE_FAILURE); 9508 9623 9509 9624 for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1) … … 9605 9720 } 9606 9721 } 9722 9723 FREE_DECOMPRESSED_TESTS(g_aSsePcmpestrm[iFn]); 9607 9724 } 9608 9725 } … … 9633 9750 enum { kModeNotSet, kModeTest, kModeGenerate, kModeDump } 9634 9751 enmMode = kModeNotSet; 9635 bool fInt = true; 9636 bool fFpuLdSt = true; 9637 bool fFpuBinary1 = true; 9638 bool fFpuBinary2 = true; 9639 bool fFpuOther = true; 9752 #define CATEGORY_INT RT_BIT_32(0) 9753 #define CATEGORY_FPU_LD_ST RT_BIT_32(1) 9754 #define CATEGORY_FPU_BINARY_1 RT_BIT_32(2) 9755 #define CATEGORY_FPU_BINARY_2 RT_BIT_32(3) 9756 #define CATEGORY_FPU_OTHER RT_BIT_32(4) 9757 #define CATEGORY_SSE_FP_BINARY RT_BIT_32(5) 9758 #define CATEGORY_SSE_FP_OTHER RT_BIT_32(6) 9759 #define CATEGORY_SSE_PCMPXSTRX RT_BIT_32(7) 9760 uint32_t fCategories = UINT32_MAX; 9640 9761 bool fCpuData = true; 9641 9762 bool fCommonData = true; 9642 bool fSseFpBinary = true;9643 bool fSseFpOther = true;9644 bool fSsePcmpxstrx = true;9645 9763 uint32_t const cDefaultTests = 96; 9646 9764 uint32_t cTests = cDefaultTests; … … 9704 9822 fCpuData = true; 9705 9823 fCommonData = true; 9706 fInt = true; 9707 fFpuLdSt = true; 9708 fFpuBinary1 = true; 9709 fFpuBinary2 = true; 9710 fFpuOther = true; 9711 fSseFpBinary = true; 9712 fSseFpOther = true; 9713 fSsePcmpxstrx = true; 9824 fCategories = UINT32_MAX; 9714 9825 break; 9715 9826 case 'z': 9716 9827 fCpuData = false; 9717 9828 fCommonData = false; 9718 fInt = false; 9719 fFpuLdSt = false; 9720 fFpuBinary1 = false; 9721 fFpuBinary2 = false; 9722 fFpuOther = false; 9723 fSseFpBinary = false; 9724 fSseFpOther = false; 9725 fSsePcmpxstrx = false; 9829 fCategories = 0; 9726 9830 break; 9727 9831 9728 9832 case 'F': 9729 f FpuLdSt = true;9833 fCategories |= CATEGORY_FPU_LD_ST; 9730 9834 break; 9731 9835 case 'O': 9732 f FpuOther = true;9836 fCategories |= CATEGORY_FPU_OTHER; 9733 9837 break; 9734 9838 case 'B': 9735 f FpuBinary1 = true;9839 fCategories |= CATEGORY_FPU_BINARY_1; 9736 9840 break; 9737 9841 case 'P': 9738 f FpuBinary2 = true;9842 fCategories |= CATEGORY_FPU_BINARY_2; 9739 9843 break; 9740 9844 case 'S': 9741 f SseFpBinary = true;9845 fCategories |= CATEGORY_SSE_FP_BINARY; 9742 9846 break; 9743 9847 case 'T': 9744 f SseFpOther = true;9848 fCategories |= CATEGORY_SSE_FP_OTHER; 9745 9849 break; 9746 9850 case 'C': 9747 f SsePcmpxstrx = true;9851 fCategories |= CATEGORY_SSE_PCMPXSTRX; 9748 9852 break; 9749 9853 case 'i': 9750 f Int = true;9854 fCategories |= CATEGORY_INT; 9751 9855 break; 9752 9856 … … 9838 9942 } 9839 9943 9944 static const struct 9945 { 9946 uint32_t fCategory; 9947 void (*pfnTest)(void); 9948 #ifdef TSTIEMAIMPL_WITH_GENERATOR 9949 const char *pszFilenameFmt; 9950 RTEXITCODE (*pfnGenerate)(uint32_t cTests, const char * const *papszNameFmts); 9951 RTEXITCODE (*pfnDumpAll)(const char * const *papszNameFmts); 9952 uint32_t cMinTests; 9953 # define GROUP_ENTRY(a_fCategory, a_BaseNm, a_szFilenameFmt, a_cMinTests) \ 9954 { a_fCategory, a_BaseNm ## Test, a_szFilenameFmt, a_BaseNm ## Generate, a_BaseNm ## DumpAll, a_cMinTests } 9955 #else 9956 # define GROUP_ENTRY(a_fCategory, a_BaseNm, a_szFilenameFmt, a_cMinTests) \ 9957 { a_fCategory, a_BaseNm ## Test } 9958 #endif 9959 #define GROUP_ENTRY_MANUAL(a_fCategory, a_BaseNm) \ 9960 { a_fCategory, a_BaseNm ## Test } 9961 } s_aGroups[] = 9962 { 9963 GROUP_ENTRY(CATEGORY_INT, BinU8, "tstIEMAImplDataInt-%s.bin.gz", 0), 9964 GROUP_ENTRY(CATEGORY_INT, BinU16, "tstIEMAImplDataInt-%s.bin.gz", 0), 9965 GROUP_ENTRY(CATEGORY_INT, BinU32, "tstIEMAImplDataInt-%s.bin.gz", 0), 9966 GROUP_ENTRY(CATEGORY_INT, BinU64, "tstIEMAImplDataInt-%s.bin.gz", 0), 9967 GROUP_ENTRY(CATEGORY_INT, ShiftDbl, "tstIEMAImplDataInt-%s.bin.gz", 128), 9968 GROUP_ENTRY(CATEGORY_INT, Unary, "tstIEMAImplDataInt-%s.bin.gz", 0), 9969 GROUP_ENTRY(CATEGORY_INT, Shift, "tstIEMAImplDataInt-%s.bin.gz", 0), 9970 GROUP_ENTRY(CATEGORY_INT, MulDiv, "tstIEMAImplDataInt-%s.bin.gz", 0), 9971 GROUP_ENTRY_MANUAL(CATEGORY_INT, Xchg), 9972 GROUP_ENTRY_MANUAL(CATEGORY_INT, Xadd), 9973 GROUP_ENTRY_MANUAL(CATEGORY_INT, CmpXchg), 9974 GROUP_ENTRY_MANUAL(CATEGORY_INT, CmpXchg8b), 9975 GROUP_ENTRY_MANUAL(CATEGORY_INT, CmpXchg16b), 9976 GROUP_ENTRY_MANUAL(CATEGORY_INT, Bswap), 9977 9978 GROUP_ENTRY(CATEGORY_FPU_LD_ST, FpuLdConst, "tstIEMAImplDataFpuLdSt-%s.bin.gz", 0), 9979 GROUP_ENTRY(CATEGORY_FPU_LD_ST, FpuLdInt, "tstIEMAImplDataFpuLdSt-%s.bin.gz", 0), 9980 GROUP_ENTRY(CATEGORY_FPU_LD_ST, FpuLdD80, "tstIEMAImplDataFpuLdSt-%s.bin.gz", 0), 9981 GROUP_ENTRY(CATEGORY_FPU_LD_ST, FpuLdMem, "tstIEMAImplDataFpuLdSt-%s.bin.gz", 384), /* needs better coverage */ 9982 9983 GROUP_ENTRY(CATEGORY_FPU_LD_ST, FpuStInt, "tstIEMAImplDataFpuLdSt-%s.bin.gz", 0), 9984 GROUP_ENTRY(CATEGORY_FPU_LD_ST, FpuStD80, "tstIEMAImplDataFpuLdSt-%s.bin.gz", 0), 9985 GROUP_ENTRY(CATEGORY_FPU_LD_ST, FpuStMem, "tstIEMAImplDataFpuLdSt-%s.bin.gz", 384), /* needs better coverage */ 9986 9987 GROUP_ENTRY(CATEGORY_FPU_BINARY_1, FpuBinaryR80, "tstIEMAImplDataFpuBinary1-%s.bin.gz", 0), 9988 GROUP_ENTRY(CATEGORY_FPU_BINARY_1, FpuBinaryFswR80, "tstIEMAImplDataFpuBinary1-%s.bin.gz", 0), 9989 GROUP_ENTRY(CATEGORY_FPU_BINARY_1, FpuBinaryEflR80, "tstIEMAImplDataFpuBinary1-%s.bin.gz", 0), 9990 9991 GROUP_ENTRY(CATEGORY_FPU_BINARY_2, FpuBinaryR64, "tstIEMAImplDataFpuBinary2-%s.bin.gz", 0), 9992 GROUP_ENTRY(CATEGORY_FPU_BINARY_2, FpuBinaryR32, "tstIEMAImplDataFpuBinary2-%s.bin.gz", 0), 9993 GROUP_ENTRY(CATEGORY_FPU_BINARY_2, FpuBinaryI32, "tstIEMAImplDataFpuBinary2-%s.bin.gz", 0), 9994 GROUP_ENTRY(CATEGORY_FPU_BINARY_2, FpuBinaryI16, "tstIEMAImplDataFpuBinary2-%s.bin.gz", 0), 9995 9996 GROUP_ENTRY(CATEGORY_FPU_BINARY_2, FpuBinaryFswR64, "tstIEMAImplDataFpuBinary2-%s.bin.gz", 0), 9997 GROUP_ENTRY(CATEGORY_FPU_BINARY_2, FpuBinaryFswR32, "tstIEMAImplDataFpuBinary2-%s.bin.gz", 0), 9998 GROUP_ENTRY(CATEGORY_FPU_BINARY_2, FpuBinaryFswI32, "tstIEMAImplDataFpuBinary2-%s.bin.gz", 0), 9999 GROUP_ENTRY(CATEGORY_FPU_BINARY_2, FpuBinaryFswI16, "tstIEMAImplDataFpuBinary2-%s.bin.gz", 0), 10000 10001 GROUP_ENTRY(CATEGORY_FPU_OTHER, FpuUnaryR80, "tstIEMAImplDataFpuOther-%s.bin.gz", 0), 10002 GROUP_ENTRY(CATEGORY_FPU_OTHER, FpuUnaryFswR80, "tstIEMAImplDataFpuOther-%s.bin.gz", 0), 10003 GROUP_ENTRY(CATEGORY_FPU_OTHER, FpuUnaryTwoR80, "tstIEMAImplDataFpuOther-%s.bin.gz", 0), 10004 10005 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryR32, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10006 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryR64, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10007 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryU128R32, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10008 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryU128R64, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10009 10010 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryI32R64, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10011 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryI64R64, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10012 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryI32R32, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10013 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryI64R32, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10014 10015 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryR64I32, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10016 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryR64I64, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10017 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryR32I32, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10018 GROUP_ENTRY(CATEGORY_SSE_FP_BINARY, SseBinaryR32I64, "tstIEMAImplDataSseBinary-%s.bin.gz", 0), 10019 10020 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseCompareEflR32R32, "tstIEMAImplDataSseCompare-%s.bin.gz", 0), 10021 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseCompareEflR64R64, "tstIEMAImplDataSseCompare-%s.bin.gz", 0), 10022 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseCompareF2XmmR32Imm8, "tstIEMAImplDataSseCompare-%s.bin.gz", 0), 10023 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseCompareF2XmmR64Imm8, "tstIEMAImplDataSseCompare-%s.bin.gz", 0), 10024 10025 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseConvertXmmI32R32, "tstIEMAImplDataSseConvert-%s.bin.gz", 0), 10026 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseConvertXmmR32I32, "tstIEMAImplDataSseConvert-%s.bin.gz", 0), 10027 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseConvertXmmI32R64, "tstIEMAImplDataSseConvert-%s.bin.gz", 0), 10028 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseConvertXmmR64I32, "tstIEMAImplDataSseConvert-%s.bin.gz", 0), 10029 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseConvertMmXmm, "tstIEMAImplDataSseConvert-%s.bin.gz", 0), 10030 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseConvertXmmR32Mm, "tstIEMAImplDataSseConvert-%s.bin.gz", 0), 10031 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseConvertXmmR64Mm, "tstIEMAImplDataSseConvert-%s.bin.gz", 0), 10032 GROUP_ENTRY(CATEGORY_SSE_FP_OTHER, SseConvertMmI32XmmR32, "tstIEMAImplDataSseConvert-%s.bin.gz", 0), 10033 10034 GROUP_ENTRY(CATEGORY_SSE_PCMPXSTRX, SseComparePcmpistri, "tstIEMAImplDataSsePcmpxstrx-%s.bin.gz", 0), 10035 GROUP_ENTRY(CATEGORY_SSE_PCMPXSTRX, SseComparePcmpistrm, "tstIEMAImplDataSsePcmpxstrx-%s.bin.gz", 0), 10036 GROUP_ENTRY(CATEGORY_SSE_PCMPXSTRX, SseComparePcmpestri, "tstIEMAImplDataSsePcmpxstrx-%s.bin.gz", 0), 10037 GROUP_ENTRY(CATEGORY_SSE_PCMPXSTRX, SseComparePcmpestrm, "tstIEMAImplDataSsePcmpxstrx-%s.bin.gz", 0), 10038 }; 10039 9840 10040 /* 9841 10041 * Generate data? … … 9849 10049 g_cZeroSrcTests = g_cZeroDstTests * 2; 9850 10050 9851 if (fInt) 9852 { 9853 const char * const apszNameFmts[] = 10051 RTMpGetDescription(NIL_RTCPUID, g_szCpuDesc, sizeof(g_szCpuDesc)); 10052 10053 /* For the revision, use the highest for this file and VBoxRT. */ 10054 static const char s_szRev[] = "$Revision$"; 10055 const char *pszRev = s_szRev; 10056 while (*pszRev && !RT_C_IS_DIGIT(*pszRev)) 10057 pszRev++; 10058 g_uSvnRev = RTStrToUInt32(pszRev); 10059 g_uSvnRev = RT_MAX(g_uSvnRev, RTBldCfgRevision()); 10060 10061 /* Loop thru the groups and call the generate for any that's enabled. */ 10062 for (size_t i = 0; i < RT_ELEMENTS(s_aGroups); i++) 10063 if ((s_aGroups[i].fCategory & fCategories) && s_aGroups[i].pfnGenerate) 9854 10064 { 9855 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? "tstIEMAImplDataInt-%s.bin.gz" : NULL, 9856 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? "tstIEMAImplDataInt-%s-Intel.bin.gz" : NULL, 9857 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? "tstIEMAImplDataInt-%s-Amd.bin.gz" : NULL, 9858 }; 9859 RTEXITCODE rcExit = BinU8Generate(cTests, apszNameFmts); 9860 if (rcExit == RTEXITCODE_SUCCESS) 9861 rcExit = BinU16Generate(cTests, apszNameFmts); 9862 if (rcExit == RTEXITCODE_SUCCESS) 9863 rcExit = BinU32Generate(cTests, apszNameFmts); 9864 if (rcExit == RTEXITCODE_SUCCESS) 9865 rcExit = BinU64Generate(cTests, apszNameFmts); 9866 if (rcExit == RTEXITCODE_SUCCESS) 9867 rcExit = ShiftDblGenerate(RT_MAX(cTests, 128), apszNameFmts); 9868 if (rcExit == RTEXITCODE_SUCCESS) 9869 rcExit = UnaryGenerate(cTests, apszNameFmts); 9870 if (rcExit == RTEXITCODE_SUCCESS) 9871 rcExit = ShiftGenerate(cTests, apszNameFmts); 9872 if (rcExit == RTEXITCODE_SUCCESS) 9873 rcExit = MulDivGenerate(cTests, apszNameFmts); 9874 if (rcExit != RTEXITCODE_SUCCESS) 9875 return rcExit; 9876 } 9877 9878 if (fFpuLdSt) 9879 { 9880 const char * const apszNameFmts[] = 9881 { 9882 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? "tstIEMAImplDataFpuLdSt-%s.bin.gz" : NULL, 9883 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? "tstIEMAImplDataFpuLdSt-%s.bin.gz" : NULL, 9884 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? "tstIEMAImplDataFpuLdSt-%s.bin.gz" : NULL, 9885 }; 9886 RTEXITCODE rcExit = FpuLdConstGenerate(cTests, apszNameFmts); 9887 if (rcExit == RTEXITCODE_SUCCESS) 9888 rcExit = FpuLdIntGenerate(cTests, apszNameFmts); 9889 if (rcExit == RTEXITCODE_SUCCESS) 9890 rcExit = FpuLdD80Generate(cTests, apszNameFmts); 9891 if (rcExit == RTEXITCODE_SUCCESS) 9892 rcExit = FpuStIntGenerate(cTests, apszNameFmts); 9893 if (rcExit == RTEXITCODE_SUCCESS) 9894 rcExit = FpuStD80Generate(cTests, apszNameFmts); 9895 uint32_t const cTests2 = RT_MAX(cTests, 384); /* need better coverage for the next ones. */ 9896 if (rcExit == RTEXITCODE_SUCCESS) 9897 rcExit = FpuLdMemGenerate(cTests2, apszNameFmts); 9898 if (rcExit == RTEXITCODE_SUCCESS) 9899 rcExit = FpuStMemGenerate(cTests2, apszNameFmts); 9900 if (rcExit != RTEXITCODE_SUCCESS) 9901 return rcExit; 9902 } 9903 9904 if (fFpuBinary1) 9905 { 9906 const char * const apszNameFmts[] = 9907 { 9908 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? "tstIEMAImplDataFpuBinary1-%s.bin.gz" : NULL, 9909 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? "tstIEMAImplDataFpuBinary1-%s.bin.gz" : NULL, 9910 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? "tstIEMAImplDataFpuBinary1-%s.bin.gz" : NULL, 9911 }; 9912 RTEXITCODE rcExit = FpuBinaryR80Generate(cTests, apszNameFmts); 9913 if (rcExit == RTEXITCODE_SUCCESS) 9914 rcExit = FpuBinaryFswR80Generate(cTests, apszNameFmts); 9915 if (rcExit == RTEXITCODE_SUCCESS) 9916 rcExit = FpuBinaryEflR80Generate(cTests, apszNameFmts); 9917 if (rcExit != RTEXITCODE_SUCCESS) 9918 return rcExit; 9919 } 9920 9921 if (fFpuBinary2) 9922 { 9923 const char * const apszNameFmts[] = 9924 { 9925 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? "tstIEMAImplDataFpuBinary2-%s.bin.gz" : NULL, 9926 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? "tstIEMAImplDataFpuBinary2-%s.bin.gz" : NULL, 9927 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? "tstIEMAImplDataFpuBinary2-%s.bin.gz" : NULL, 9928 }; 9929 RTEXITCODE rcExit = FpuBinaryR64Generate(cTests, apszNameFmts); 9930 if (rcExit == RTEXITCODE_SUCCESS) 9931 rcExit = FpuBinaryR32Generate(cTests, apszNameFmts); 9932 if (rcExit == RTEXITCODE_SUCCESS) 9933 rcExit = FpuBinaryI32Generate(cTests, apszNameFmts); 9934 if (rcExit == RTEXITCODE_SUCCESS) 9935 rcExit = FpuBinaryI16Generate(cTests, apszNameFmts); 9936 if (rcExit == RTEXITCODE_SUCCESS) 9937 rcExit = FpuBinaryFswR64Generate(cTests, apszNameFmts); 9938 if (rcExit == RTEXITCODE_SUCCESS) 9939 rcExit = FpuBinaryFswR32Generate(cTests, apszNameFmts); 9940 if (rcExit == RTEXITCODE_SUCCESS) 9941 rcExit = FpuBinaryFswI32Generate(cTests, apszNameFmts); 9942 if (rcExit == RTEXITCODE_SUCCESS) 9943 rcExit = FpuBinaryFswI16Generate(cTests, apszNameFmts); 9944 if (rcExit != RTEXITCODE_SUCCESS) 9945 return rcExit; 9946 } 9947 9948 if (fFpuOther) 9949 { 9950 const char * const apszNameFmts[] = 9951 { 9952 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? "tstIEMAImplDataFpuOther-%s.bin.gz" : NULL, 9953 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? "tstIEMAImplDataFpuOther-%s.bin.gz" : NULL, 9954 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? "tstIEMAImplDataFpuOther-%s.bin.gz" : NULL, 9955 }; 9956 RTEXITCODE rcExit = FpuUnaryR80Generate(cTests, apszNameFmts); 9957 if (rcExit == RTEXITCODE_SUCCESS) 9958 rcExit = FpuUnaryFswR80Generate(cTests, apszNameFmts); 9959 if (rcExit == RTEXITCODE_SUCCESS) 9960 rcExit = FpuUnaryTwoR80Generate(cTests, apszNameFmts); 9961 if (rcExit != RTEXITCODE_SUCCESS) 9962 return rcExit; 9963 } 9964 9965 if (fSseFpBinary) 9966 { 9967 const char * const pszDataFileFmt = fCommonData ? "tstIEMAImplDataSseBinary-%s.bin.gz" : NULL; 9968 9969 RTEXITCODE rcExit = SseBinaryR32Generate(pszDataFileFmt, cTests); 9970 if (rcExit == RTEXITCODE_SUCCESS) 9971 rcExit = SseBinaryR64Generate(pszDataFileFmt, cTests); 9972 if (rcExit == RTEXITCODE_SUCCESS) 9973 rcExit = SseBinaryU128R32Generate(pszDataFileFmt, cTests); 9974 if (rcExit == RTEXITCODE_SUCCESS) 9975 rcExit = SseBinaryU128R64Generate(pszDataFileFmt, cTests); 9976 9977 if (rcExit == RTEXITCODE_SUCCESS) 9978 rcExit = SseBinaryI32R64Generate(pszDataFileFmt, cTests); 9979 if (rcExit == RTEXITCODE_SUCCESS) 9980 rcExit = SseBinaryI64R64Generate(pszDataFileFmt, cTests); 9981 if (rcExit == RTEXITCODE_SUCCESS) 9982 rcExit = SseBinaryI32R32Generate(pszDataFileFmt, cTests); 9983 if (rcExit == RTEXITCODE_SUCCESS) 9984 rcExit = SseBinaryI64R32Generate(pszDataFileFmt, cTests); 9985 9986 if (rcExit == RTEXITCODE_SUCCESS) 9987 rcExit = SseBinaryR64I32Generate(pszDataFileFmt, cTests); 9988 if (rcExit == RTEXITCODE_SUCCESS) 9989 rcExit = SseBinaryR64I64Generate(pszDataFileFmt, cTests); 9990 if (rcExit == RTEXITCODE_SUCCESS) 9991 rcExit = SseBinaryR32I32Generate(pszDataFileFmt, cTests); 9992 if (rcExit == RTEXITCODE_SUCCESS) 9993 rcExit = SseBinaryR32I64Generate(pszDataFileFmt, cTests); 9994 if (rcExit != RTEXITCODE_SUCCESS) 9995 return rcExit; 9996 } 9997 9998 if (fSseFpOther) 9999 { 10000 const char * const pszDataFileFmtCmp = fCommonData ? "tstIEMAImplDataSseCompare-%s.bin.gz" : NULL; 10001 const char * const pszDataFileFmtConv = fCommonData ? "tstIEMAImplDataSseConvert-%s.bin.gz" : NULL; 10002 10003 RTEXITCODE rcExit = SseCompareEflR32R32Generate(pszDataFileFmtCmp, cTests); 10004 if (rcExit == RTEXITCODE_SUCCESS) 10005 rcExit = SseCompareEflR64R64Generate(pszDataFileFmtCmp, cTests); 10006 if (rcExit == RTEXITCODE_SUCCESS) 10007 rcExit = SseCompareF2XmmR32Imm8Generate(pszDataFileFmtCmp, cTests); 10008 if (rcExit == RTEXITCODE_SUCCESS) 10009 rcExit = SseCompareF2XmmR64Imm8Generate(pszDataFileFmtCmp, cTests); 10010 if (rcExit == RTEXITCODE_SUCCESS) 10011 rcExit = SseConvertXmmI32R32Generate(pszDataFileFmtConv, cTests); 10012 if (rcExit == RTEXITCODE_SUCCESS) 10013 rcExit = SseConvertXmmR32I32Generate(pszDataFileFmtConv, cTests); 10014 if (rcExit == RTEXITCODE_SUCCESS) 10015 rcExit = SseConvertXmmI32R64Generate(pszDataFileFmtConv, cTests); 10016 if (rcExit == RTEXITCODE_SUCCESS) 10017 rcExit = SseConvertXmmR64I32Generate(pszDataFileFmtConv, cTests); 10018 if (rcExit == RTEXITCODE_SUCCESS) 10019 rcExit = SseConvertMmXmmGenerate(pszDataFileFmtConv, cTests); 10020 if (rcExit == RTEXITCODE_SUCCESS) 10021 rcExit = SseConvertXmmR32MmGenerate(pszDataFileFmtConv, cTests); 10022 if (rcExit == RTEXITCODE_SUCCESS) 10023 rcExit = SseConvertXmmR64MmGenerate(pszDataFileFmtConv, cTests); 10024 if (rcExit == RTEXITCODE_SUCCESS) 10025 rcExit = SseConvertMmI32XmmR32Generate(pszDataFileFmtConv, cTests); 10026 if (rcExit != RTEXITCODE_SUCCESS) 10027 return rcExit; 10028 } 10029 10030 if (fSsePcmpxstrx) 10031 { 10032 const char * const pszDataFileFmtCmp = fCommonData ? "tstIEMAImplDataSsePcmpxstrx-%s.bin.gz" : NULL; 10033 10034 RTEXITCODE rcExit = SseComparePcmpistriGenerate(pszDataFileFmtCmp, cTests); 10035 if (rcExit == RTEXITCODE_SUCCESS) 10036 rcExit = SseComparePcmpistrmGenerate(pszDataFileFmtCmp, cTests); 10037 if (rcExit == RTEXITCODE_SUCCESS) 10038 rcExit = SseComparePcmpestriGenerate(pszDataFileFmtCmp, cTests); 10039 if (rcExit == RTEXITCODE_SUCCESS) 10040 rcExit = SseComparePcmpestrmGenerate(pszDataFileFmtCmp, cTests); 10041 if (rcExit != RTEXITCODE_SUCCESS) 10042 return rcExit; 10043 } 10044 10065 const char * const apszNameFmts[] = 10066 { 10067 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? s_aGroups[i].pszFilenameFmt : NULL, 10068 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? s_aGroups[i].pszFilenameFmt : NULL, 10069 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? s_aGroups[i].pszFilenameFmt : NULL, 10070 }; 10071 RTEXITCODE rcExit = s_aGroups[i].pfnGenerate(RT_MAX(cTests, s_aGroups[i].cMinTests), apszNameFmts); 10072 if (rcExit != RTEXITCODE_SUCCESS) 10073 return rcExit; 10074 } 10045 10075 return RTEXITCODE_SUCCESS; 10046 10076 #else … … 10050 10080 10051 10081 /* 10052 * Dump tables .10082 * Dump tables (used for the conversion, mostly useless now). 10053 10083 */ 10054 10084 if (enmMode == kModeDump) 10055 10085 { 10056 10086 #ifdef TSTIEMAIMPL_WITH_GENERATOR 10057 if (fInt)10058 {10059 const char * const apszNameFmts[] =10087 /* Loop thru the groups and call the generate for any that's enabled. */ 10088 for (size_t i = 0; i < RT_ELEMENTS(s_aGroups); i++) 10089 if ((s_aGroups[i].fCategory & fCategories) && s_aGroups[i].pfnDumpAll) 10060 10090 { 10061 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? "tstIEMAImplDataInt-%s.bin.gz" : NULL, 10062 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? "tstIEMAImplDataInt-%s-Intel.bin.gz" : NULL, 10063 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? "tstIEMAImplDataInt-%s-Amd.bin.gz" : NULL, 10064 }; 10065 RTEXITCODE rcExit = BinU8DumpAll(apszNameFmts); 10066 if (rcExit == RTEXITCODE_SUCCESS) 10067 rcExit = BinU16DumpAll(apszNameFmts); 10068 if (rcExit == RTEXITCODE_SUCCESS) 10069 rcExit = BinU32DumpAll(apszNameFmts); 10070 if (rcExit == RTEXITCODE_SUCCESS) 10071 rcExit = BinU64DumpAll(apszNameFmts); 10072 if (rcExit == RTEXITCODE_SUCCESS) 10073 rcExit = ShiftDblDumpAll(apszNameFmts); 10074 if (rcExit == RTEXITCODE_SUCCESS) 10075 rcExit = UnaryDumpAll(apszNameFmts); 10076 if (rcExit == RTEXITCODE_SUCCESS) 10077 rcExit = ShiftDumpAll(apszNameFmts); 10078 if (rcExit == RTEXITCODE_SUCCESS) 10079 rcExit = MulDivDumpAll(apszNameFmts); 10080 if (rcExit != RTEXITCODE_SUCCESS) 10081 return rcExit; 10082 } 10083 10084 if (fFpuLdSt) 10085 { 10086 const char * const apszNameFmts[] = 10087 { 10088 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? "tstIEMAImplDataFpuLdSt-%s.bin.gz" : NULL, 10089 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? "tstIEMAImplDataFpuLdSt-%s.bin.gz" : NULL, 10090 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? "tstIEMAImplDataFpuLdSt-%s.bin.gz" : NULL, 10091 }; 10092 RTEXITCODE rcExit = FpuLdConstDumpAll(apszNameFmts); 10093 if (rcExit == RTEXITCODE_SUCCESS) 10094 rcExit = FpuLdIntDumpAll(apszNameFmts); 10095 if (rcExit == RTEXITCODE_SUCCESS) 10096 rcExit = FpuLdD80DumpAll(apszNameFmts); 10097 if (rcExit == RTEXITCODE_SUCCESS) 10098 rcExit = FpuStIntDumpAll(apszNameFmts); 10099 if (rcExit == RTEXITCODE_SUCCESS) 10100 rcExit = FpuStD80DumpAll(apszNameFmts); 10101 if (rcExit == RTEXITCODE_SUCCESS) 10102 rcExit = FpuLdMemDumpAll(apszNameFmts); 10103 if (rcExit == RTEXITCODE_SUCCESS) 10104 rcExit = FpuStMemDumpAll(apszNameFmts); 10105 if (rcExit != RTEXITCODE_SUCCESS) 10106 return rcExit; 10107 } 10108 10109 if (fFpuBinary1) 10110 { 10111 const char * const apszNameFmts[] = 10112 { 10113 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? "tstIEMAImplDataFpuBinary1-%s.bin.gz" : NULL, 10114 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? "tstIEMAImplDataFpuBinary1-%s.bin.gz" : NULL, 10115 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? "tstIEMAImplDataFpuBinary1-%s.bin.gz" : NULL, 10116 }; 10117 RTEXITCODE rcExit = FpuBinaryR80DumpAll(apszNameFmts); 10118 if (rcExit == RTEXITCODE_SUCCESS) 10119 rcExit = FpuBinaryFswR80DumpAll(apszNameFmts); 10120 if (rcExit == RTEXITCODE_SUCCESS) 10121 rcExit = FpuBinaryEflR80DumpAll(apszNameFmts); 10122 if (rcExit != RTEXITCODE_SUCCESS) 10123 return rcExit; 10124 } 10125 10126 if (fFpuBinary2) 10127 { 10128 const char * const apszNameFmts[] = 10129 { 10130 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? "tstIEMAImplDataFpuBinary2-%s.bin.gz" : NULL, 10131 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? "tstIEMAImplDataFpuBinary2-%s.bin.gz" : NULL, 10132 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? "tstIEMAImplDataFpuBinary2-%s.bin.gz" : NULL, 10133 }; 10134 RTEXITCODE rcExit = FpuBinaryR64DumpAll(apszNameFmts); 10135 if (rcExit == RTEXITCODE_SUCCESS) 10136 rcExit = FpuBinaryR32DumpAll(apszNameFmts); 10137 if (rcExit == RTEXITCODE_SUCCESS) 10138 rcExit = FpuBinaryI32DumpAll(apszNameFmts); 10139 if (rcExit == RTEXITCODE_SUCCESS) 10140 rcExit = FpuBinaryI16DumpAll(apszNameFmts); 10141 if (rcExit == RTEXITCODE_SUCCESS) 10142 rcExit = FpuBinaryFswR64DumpAll(apszNameFmts); 10143 if (rcExit == RTEXITCODE_SUCCESS) 10144 rcExit = FpuBinaryFswR32DumpAll(apszNameFmts); 10145 if (rcExit == RTEXITCODE_SUCCESS) 10146 rcExit = FpuBinaryFswI32DumpAll(apszNameFmts); 10147 if (rcExit == RTEXITCODE_SUCCESS) 10148 rcExit = FpuBinaryFswI16DumpAll(apszNameFmts); 10149 if (rcExit != RTEXITCODE_SUCCESS) 10150 return rcExit; 10151 } 10152 10153 if (fFpuOther) 10154 { 10155 const char * const apszNameFmts[] = 10156 { 10157 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? "tstIEMAImplDataFpuOther-%s.bin.gz" : NULL, 10158 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? "tstIEMAImplDataFpuOther-%s.bin.gz" : NULL, 10159 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? "tstIEMAImplDataFpuOther-%s.bin.gz" : NULL, 10160 }; 10161 RTEXITCODE rcExit = FpuUnaryR80DumpAll(apszNameFmts); 10162 if (rcExit == RTEXITCODE_SUCCESS) 10163 rcExit = FpuUnaryFswR80DumpAll(apszNameFmts); 10164 if (rcExit == RTEXITCODE_SUCCESS) 10165 rcExit = FpuUnaryTwoR80DumpAll(apszNameFmts); 10166 if (rcExit != RTEXITCODE_SUCCESS) 10167 return rcExit; 10168 } 10169 10091 const char * const apszNameFmts[] = 10092 { 10093 /*[IEMTARGETCPU_EFL_BEHAVIOR_NATIVE] =*/ fCommonData ? s_aGroups[i].pszFilenameFmt : NULL, 10094 /*[IEMTARGETCPU_EFL_BEHAVIOR_INTEL] =*/ fCpuData ? s_aGroups[i].pszFilenameFmt : NULL, 10095 /*[IEMTARGETCPU_EFL_BEHAVIOR_AMD] =*/ fCpuData ? s_aGroups[i].pszFilenameFmt : NULL, 10096 }; 10097 RTEXITCODE rcExit = s_aGroups[i].pfnGenerate(RT_MAX(cTests, s_aGroups[i].cMinTests), apszNameFmts); 10098 if (rcExit != RTEXITCODE_SUCCESS) 10099 return rcExit; 10100 } 10170 10101 return RTEXITCODE_SUCCESS; 10171 10102 #else … … 10179 10110 * on both intel and AMD systems first. 10180 10111 */ 10181 rc = RTTestCreate("tstIEMA impl", &g_hTest);10112 rc = RTTestCreate("tstIEMAImpl", &g_hTest); 10182 10113 AssertRCReturn(rc, RTEXITCODE_FAILURE); 10183 10114 if (enmMode == kModeTest) … … 10203 10134 if (RTTestErrorCount(g_hTest) == 0) 10204 10135 { 10205 if (fInt) 10206 { 10207 BinU8Test(); 10208 BinU16Test(); 10209 BinU32Test(); 10210 BinU64Test(); 10211 XchgTest(); 10212 XaddTest(); 10213 CmpXchgTest(); 10214 CmpXchg8bTest(); 10215 CmpXchg16bTest(); 10216 ShiftDblTest(); 10217 UnaryTest(); 10218 ShiftTest(); 10219 MulDivTest(); 10220 BswapTest(); 10221 } 10222 10223 if (fFpuLdSt) 10224 { 10225 FpuLoadConstTest(); 10226 FpuLdMemTest(); 10227 FpuLdIntTest(); 10228 FpuLdD80Test(); 10229 FpuStMemTest(); 10230 FpuStIntTest(); 10231 FpuStD80Test(); 10232 } 10233 10234 if (fFpuBinary1) 10235 { 10236 FpuBinaryR80Test(); 10237 FpuBinaryFswR80Test(); 10238 FpuBinaryEflR80Test(); 10239 } 10240 10241 if (fFpuBinary2) 10242 { 10243 FpuBinaryR64Test(); 10244 FpuBinaryR32Test(); 10245 FpuBinaryI32Test(); 10246 FpuBinaryI16Test(); 10247 FpuBinaryFswR64Test(); 10248 FpuBinaryFswR32Test(); 10249 FpuBinaryFswI32Test(); 10250 FpuBinaryFswI16Test(); 10251 } 10252 10253 if (fFpuOther) 10254 { 10255 FpuUnaryR80Test(); 10256 FpuUnaryFswR80Test(); 10257 FpuUnaryTwoR80Test(); 10258 } 10259 10260 if (fSseFpBinary) 10261 { 10262 SseBinaryR32Test(); 10263 SseBinaryR64Test(); 10264 SseBinaryU128R32Test(); 10265 SseBinaryU128R64Test(); 10266 10267 SseBinaryI32R64Test(); 10268 SseBinaryI64R64Test(); 10269 SseBinaryI32R32Test(); 10270 SseBinaryI64R32Test(); 10271 10272 SseBinaryR64I32Test(); 10273 SseBinaryR64I64Test(); 10274 SseBinaryR32I32Test(); 10275 SseBinaryR32I64Test(); 10276 } 10277 10278 if (fSseFpOther) 10279 { 10280 SseCompareEflR32R32Test(); 10281 SseCompareEflR64R64Test(); 10282 SseCompareEflR64R64Test(); 10283 SseCompareF2XmmR32Imm8Test(); 10284 SseCompareF2XmmR64Imm8Test(); 10285 SseConvertXmmI32R32Test(); 10286 SseConvertXmmR32I32Test(); 10287 SseConvertXmmI32R64Test(); 10288 SseConvertXmmR64I32Test(); 10289 SseConvertMmXmmTest(); 10290 SseConvertXmmR32MmTest(); 10291 SseConvertXmmR64MmTest(); 10292 SseConvertMmI32XmmR32Test(); 10293 } 10294 10295 if (fSsePcmpxstrx) 10296 { 10297 SseComparePcmpistriTest(); 10298 SseComparePcmpistrmTest(); 10299 SseComparePcmpestriTest(); 10300 SseComparePcmpestrmTest(); 10301 } 10136 /* Loop thru the groups and call test function for anything that's enabled. */ 10137 for (size_t i = 0; i < RT_ELEMENTS(s_aGroups); i++) 10138 if ((s_aGroups[i].fCategory & fCategories)) 10139 s_aGroups[i].pfnTest(); 10302 10140 } 10303 10141 return RTTestSummaryAndDestroy(g_hTest); -
trunk/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.S
r103074 r103075 191 191 IEM_TEST_DATA and_u64_locked, "tstIEMAImplDataInt-and_u64_locked.bin.gz" 192 192 IEM_TEST_DATA arpl, "tstIEMAImplDataInt-arpl.bin.gz" 193 IEM_TEST_DATA bsf_u16_amd, "tstIEMAImplDataInt-bsf_u16_amd -Amd.bin.gz"194 IEM_TEST_DATA bsf_u16_intel, "tstIEMAImplDataInt-bsf_u16_intel -Intel.bin.gz"195 IEM_TEST_DATA bsf_u32_amd, "tstIEMAImplDataInt-bsf_u32_amd -Amd.bin.gz"196 IEM_TEST_DATA bsf_u32_intel, "tstIEMAImplDataInt-bsf_u32_intel -Intel.bin.gz"197 IEM_TEST_DATA bsf_u64_amd, "tstIEMAImplDataInt-bsf_u64_amd -Amd.bin.gz"198 IEM_TEST_DATA bsf_u64_intel, "tstIEMAImplDataInt-bsf_u64_intel -Intel.bin.gz"199 IEM_TEST_DATA bsr_u16_amd, "tstIEMAImplDataInt-bsr_u16_amd -Amd.bin.gz"200 IEM_TEST_DATA bsr_u16_intel, "tstIEMAImplDataInt-bsr_u16_intel -Intel.bin.gz"201 IEM_TEST_DATA bsr_u32_amd, "tstIEMAImplDataInt-bsr_u32_amd -Amd.bin.gz"202 IEM_TEST_DATA bsr_u32_intel, "tstIEMAImplDataInt-bsr_u32_intel -Intel.bin.gz"203 IEM_TEST_DATA bsr_u64_amd, "tstIEMAImplDataInt-bsr_u64_amd -Amd.bin.gz"204 IEM_TEST_DATA bsr_u64_intel, "tstIEMAImplDataInt-bsr_u64_intel -Intel.bin.gz"193 IEM_TEST_DATA bsf_u16_amd, "tstIEMAImplDataInt-bsf_u16_amd.bin.gz" 194 IEM_TEST_DATA bsf_u16_intel, "tstIEMAImplDataInt-bsf_u16_intel.bin.gz" 195 IEM_TEST_DATA bsf_u32_amd, "tstIEMAImplDataInt-bsf_u32_amd.bin.gz" 196 IEM_TEST_DATA bsf_u32_intel, "tstIEMAImplDataInt-bsf_u32_intel.bin.gz" 197 IEM_TEST_DATA bsf_u64_amd, "tstIEMAImplDataInt-bsf_u64_amd.bin.gz" 198 IEM_TEST_DATA bsf_u64_intel, "tstIEMAImplDataInt-bsf_u64_intel.bin.gz" 199 IEM_TEST_DATA bsr_u16_amd, "tstIEMAImplDataInt-bsr_u16_amd.bin.gz" 200 IEM_TEST_DATA bsr_u16_intel, "tstIEMAImplDataInt-bsr_u16_intel.bin.gz" 201 IEM_TEST_DATA bsr_u32_amd, "tstIEMAImplDataInt-bsr_u32_amd.bin.gz" 202 IEM_TEST_DATA bsr_u32_intel, "tstIEMAImplDataInt-bsr_u32_intel.bin.gz" 203 IEM_TEST_DATA bsr_u64_amd, "tstIEMAImplDataInt-bsr_u64_amd.bin.gz" 204 IEM_TEST_DATA bsr_u64_intel, "tstIEMAImplDataInt-bsr_u64_intel.bin.gz" 205 205 IEM_TEST_DATA btc_u16, "tstIEMAImplDataInt-btc_u16.bin.gz" 206 206 IEM_TEST_DATA btc_u16_locked, "tstIEMAImplDataInt-btc_u16_locked.bin.gz" … … 236 236 IEM_TEST_DATA dec_u64, "tstIEMAImplDataInt-dec_u64.bin.gz" 237 237 IEM_TEST_DATA dec_u64_locked, "tstIEMAImplDataInt-dec_u64_locked.bin.gz" 238 IEM_TEST_DATA div_u8_amd, "tstIEMAImplDataInt-div_u8_amd -Amd.bin.gz"239 IEM_TEST_DATA div_u8_intel, "tstIEMAImplDataInt-div_u8_intel -Intel.bin.gz"240 IEM_TEST_DATA div_u16_amd, "tstIEMAImplDataInt-div_u16_amd -Amd.bin.gz"241 IEM_TEST_DATA div_u16_intel, "tstIEMAImplDataInt-div_u16_intel -Intel.bin.gz"242 IEM_TEST_DATA div_u32_amd, "tstIEMAImplDataInt-div_u32_amd -Amd.bin.gz"243 IEM_TEST_DATA div_u32_intel, "tstIEMAImplDataInt-div_u32_intel -Intel.bin.gz"244 IEM_TEST_DATA div_u64_amd, "tstIEMAImplDataInt-div_u64_amd -Amd.bin.gz"245 IEM_TEST_DATA div_u64_intel, "tstIEMAImplDataInt-div_u64_intel -Intel.bin.gz"246 IEM_TEST_DATA idiv_u8_amd, "tstIEMAImplDataInt-idiv_u8_amd -Amd.bin.gz"247 IEM_TEST_DATA idiv_u8_intel, "tstIEMAImplDataInt-idiv_u8_intel -Intel.bin.gz"248 IEM_TEST_DATA idiv_u16_amd, "tstIEMAImplDataInt-idiv_u16_amd -Amd.bin.gz"249 IEM_TEST_DATA idiv_u16_intel, "tstIEMAImplDataInt-idiv_u16_intel -Intel.bin.gz"250 IEM_TEST_DATA idiv_u32_amd, "tstIEMAImplDataInt-idiv_u32_amd -Amd.bin.gz"251 IEM_TEST_DATA idiv_u32_intel, "tstIEMAImplDataInt-idiv_u32_intel -Intel.bin.gz"252 IEM_TEST_DATA idiv_u64_amd, "tstIEMAImplDataInt-idiv_u64_amd -Amd.bin.gz"253 IEM_TEST_DATA idiv_u64_intel, "tstIEMAImplDataInt-idiv_u64_intel -Intel.bin.gz"254 IEM_TEST_DATA imul_two_u16_amd, "tstIEMAImplDataInt-imul_two_u16_amd -Amd.bin.gz"255 IEM_TEST_DATA imul_two_u16_intel, "tstIEMAImplDataInt-imul_two_u16_intel -Intel.bin.gz"256 IEM_TEST_DATA imul_two_u32_amd, "tstIEMAImplDataInt-imul_two_u32_amd -Amd.bin.gz"257 IEM_TEST_DATA imul_two_u32_intel, "tstIEMAImplDataInt-imul_two_u32_intel -Intel.bin.gz"258 IEM_TEST_DATA imul_two_u64_amd, "tstIEMAImplDataInt-imul_two_u64_amd -Amd.bin.gz"259 IEM_TEST_DATA imul_two_u64_intel, "tstIEMAImplDataInt-imul_two_u64_intel -Intel.bin.gz"260 IEM_TEST_DATA imul_u8_amd, "tstIEMAImplDataInt-imul_u8_amd -Amd.bin.gz"261 IEM_TEST_DATA imul_u8_intel, "tstIEMAImplDataInt-imul_u8_intel -Intel.bin.gz"262 IEM_TEST_DATA imul_u16_amd, "tstIEMAImplDataInt-imul_u16_amd -Amd.bin.gz"263 IEM_TEST_DATA imul_u16_intel, "tstIEMAImplDataInt-imul_u16_intel -Intel.bin.gz"264 IEM_TEST_DATA imul_u32_amd, "tstIEMAImplDataInt-imul_u32_amd -Amd.bin.gz"265 IEM_TEST_DATA imul_u32_intel, "tstIEMAImplDataInt-imul_u32_intel -Intel.bin.gz"266 IEM_TEST_DATA imul_u64_amd, "tstIEMAImplDataInt-imul_u64_amd -Amd.bin.gz"267 IEM_TEST_DATA imul_u64_intel, "tstIEMAImplDataInt-imul_u64_intel -Intel.bin.gz"238 IEM_TEST_DATA div_u8_amd, "tstIEMAImplDataInt-div_u8_amd.bin.gz" 239 IEM_TEST_DATA div_u8_intel, "tstIEMAImplDataInt-div_u8_intel.bin.gz" 240 IEM_TEST_DATA div_u16_amd, "tstIEMAImplDataInt-div_u16_amd.bin.gz" 241 IEM_TEST_DATA div_u16_intel, "tstIEMAImplDataInt-div_u16_intel.bin.gz" 242 IEM_TEST_DATA div_u32_amd, "tstIEMAImplDataInt-div_u32_amd.bin.gz" 243 IEM_TEST_DATA div_u32_intel, "tstIEMAImplDataInt-div_u32_intel.bin.gz" 244 IEM_TEST_DATA div_u64_amd, "tstIEMAImplDataInt-div_u64_amd.bin.gz" 245 IEM_TEST_DATA div_u64_intel, "tstIEMAImplDataInt-div_u64_intel.bin.gz" 246 IEM_TEST_DATA idiv_u8_amd, "tstIEMAImplDataInt-idiv_u8_amd.bin.gz" 247 IEM_TEST_DATA idiv_u8_intel, "tstIEMAImplDataInt-idiv_u8_intel.bin.gz" 248 IEM_TEST_DATA idiv_u16_amd, "tstIEMAImplDataInt-idiv_u16_amd.bin.gz" 249 IEM_TEST_DATA idiv_u16_intel, "tstIEMAImplDataInt-idiv_u16_intel.bin.gz" 250 IEM_TEST_DATA idiv_u32_amd, "tstIEMAImplDataInt-idiv_u32_amd.bin.gz" 251 IEM_TEST_DATA idiv_u32_intel, "tstIEMAImplDataInt-idiv_u32_intel.bin.gz" 252 IEM_TEST_DATA idiv_u64_amd, "tstIEMAImplDataInt-idiv_u64_amd.bin.gz" 253 IEM_TEST_DATA idiv_u64_intel, "tstIEMAImplDataInt-idiv_u64_intel.bin.gz" 254 IEM_TEST_DATA imul_two_u16_amd, "tstIEMAImplDataInt-imul_two_u16_amd.bin.gz" 255 IEM_TEST_DATA imul_two_u16_intel, "tstIEMAImplDataInt-imul_two_u16_intel.bin.gz" 256 IEM_TEST_DATA imul_two_u32_amd, "tstIEMAImplDataInt-imul_two_u32_amd.bin.gz" 257 IEM_TEST_DATA imul_two_u32_intel, "tstIEMAImplDataInt-imul_two_u32_intel.bin.gz" 258 IEM_TEST_DATA imul_two_u64_amd, "tstIEMAImplDataInt-imul_two_u64_amd.bin.gz" 259 IEM_TEST_DATA imul_two_u64_intel, "tstIEMAImplDataInt-imul_two_u64_intel.bin.gz" 260 IEM_TEST_DATA imul_u8_amd, "tstIEMAImplDataInt-imul_u8_amd.bin.gz" 261 IEM_TEST_DATA imul_u8_intel, "tstIEMAImplDataInt-imul_u8_intel.bin.gz" 262 IEM_TEST_DATA imul_u16_amd, "tstIEMAImplDataInt-imul_u16_amd.bin.gz" 263 IEM_TEST_DATA imul_u16_intel, "tstIEMAImplDataInt-imul_u16_intel.bin.gz" 264 IEM_TEST_DATA imul_u32_amd, "tstIEMAImplDataInt-imul_u32_amd.bin.gz" 265 IEM_TEST_DATA imul_u32_intel, "tstIEMAImplDataInt-imul_u32_intel.bin.gz" 266 IEM_TEST_DATA imul_u64_amd, "tstIEMAImplDataInt-imul_u64_amd.bin.gz" 267 IEM_TEST_DATA imul_u64_intel, "tstIEMAImplDataInt-imul_u64_intel.bin.gz" 268 268 IEM_TEST_DATA inc_u8, "tstIEMAImplDataInt-inc_u8.bin.gz" 269 269 IEM_TEST_DATA inc_u8_locked, "tstIEMAImplDataInt-inc_u8_locked.bin.gz" … … 274 274 IEM_TEST_DATA inc_u64, "tstIEMAImplDataInt-inc_u64.bin.gz" 275 275 IEM_TEST_DATA inc_u64_locked, "tstIEMAImplDataInt-inc_u64_locked.bin.gz" 276 IEM_TEST_DATA mul_u8_amd, "tstIEMAImplDataInt-mul_u8_amd -Amd.bin.gz"277 IEM_TEST_DATA mul_u8_intel, "tstIEMAImplDataInt-mul_u8_intel -Intel.bin.gz"278 IEM_TEST_DATA mul_u16_amd, "tstIEMAImplDataInt-mul_u16_amd -Amd.bin.gz"279 IEM_TEST_DATA mul_u16_intel, "tstIEMAImplDataInt-mul_u16_intel -Intel.bin.gz"280 IEM_TEST_DATA mul_u32_amd, "tstIEMAImplDataInt-mul_u32_amd -Amd.bin.gz"281 IEM_TEST_DATA mul_u32_intel, "tstIEMAImplDataInt-mul_u32_intel -Intel.bin.gz"282 IEM_TEST_DATA mul_u64_amd, "tstIEMAImplDataInt-mul_u64_amd -Amd.bin.gz"283 IEM_TEST_DATA mul_u64_intel, "tstIEMAImplDataInt-mul_u64_intel -Intel.bin.gz"276 IEM_TEST_DATA mul_u8_amd, "tstIEMAImplDataInt-mul_u8_amd.bin.gz" 277 IEM_TEST_DATA mul_u8_intel, "tstIEMAImplDataInt-mul_u8_intel.bin.gz" 278 IEM_TEST_DATA mul_u16_amd, "tstIEMAImplDataInt-mul_u16_amd.bin.gz" 279 IEM_TEST_DATA mul_u16_intel, "tstIEMAImplDataInt-mul_u16_intel.bin.gz" 280 IEM_TEST_DATA mul_u32_amd, "tstIEMAImplDataInt-mul_u32_amd.bin.gz" 281 IEM_TEST_DATA mul_u32_intel, "tstIEMAImplDataInt-mul_u32_intel.bin.gz" 282 IEM_TEST_DATA mul_u64_amd, "tstIEMAImplDataInt-mul_u64_amd.bin.gz" 283 IEM_TEST_DATA mul_u64_intel, "tstIEMAImplDataInt-mul_u64_intel.bin.gz" 284 284 IEM_TEST_DATA neg_u8, "tstIEMAImplDataInt-neg_u8.bin.gz" 285 285 IEM_TEST_DATA neg_u8_locked, "tstIEMAImplDataInt-neg_u8_locked.bin.gz" … … 306 306 IEM_TEST_DATA or_u64, "tstIEMAImplDataInt-or_u64.bin.gz" 307 307 IEM_TEST_DATA or_u64_locked, "tstIEMAImplDataInt-or_u64_locked.bin.gz" 308 IEM_TEST_DATA rcl_u8_amd, "tstIEMAImplDataInt-rcl_u8_amd -Amd.bin.gz"309 IEM_TEST_DATA rcl_u8_intel, "tstIEMAImplDataInt-rcl_u8_intel -Intel.bin.gz"310 IEM_TEST_DATA rcl_u16_amd, "tstIEMAImplDataInt-rcl_u16_amd -Amd.bin.gz"311 IEM_TEST_DATA rcl_u16_intel, "tstIEMAImplDataInt-rcl_u16_intel -Intel.bin.gz"312 IEM_TEST_DATA rcl_u32_amd, "tstIEMAImplDataInt-rcl_u32_amd -Amd.bin.gz"313 IEM_TEST_DATA rcl_u32_intel, "tstIEMAImplDataInt-rcl_u32_intel -Intel.bin.gz"314 IEM_TEST_DATA rcl_u64_amd, "tstIEMAImplDataInt-rcl_u64_amd -Amd.bin.gz"315 IEM_TEST_DATA rcl_u64_intel, "tstIEMAImplDataInt-rcl_u64_intel -Intel.bin.gz"316 IEM_TEST_DATA rcr_u8_amd, "tstIEMAImplDataInt-rcr_u8_amd -Amd.bin.gz"317 IEM_TEST_DATA rcr_u8_intel, "tstIEMAImplDataInt-rcr_u8_intel -Intel.bin.gz"318 IEM_TEST_DATA rcr_u16_amd, "tstIEMAImplDataInt-rcr_u16_amd -Amd.bin.gz"319 IEM_TEST_DATA rcr_u16_intel, "tstIEMAImplDataInt-rcr_u16_intel -Intel.bin.gz"320 IEM_TEST_DATA rcr_u32_amd, "tstIEMAImplDataInt-rcr_u32_amd -Amd.bin.gz"321 IEM_TEST_DATA rcr_u32_intel, "tstIEMAImplDataInt-rcr_u32_intel -Intel.bin.gz"322 IEM_TEST_DATA rcr_u64_amd, "tstIEMAImplDataInt-rcr_u64_amd -Amd.bin.gz"323 IEM_TEST_DATA rcr_u64_intel, "tstIEMAImplDataInt-rcr_u64_intel -Intel.bin.gz"324 IEM_TEST_DATA rol_u8_amd, "tstIEMAImplDataInt-rol_u8_amd -Amd.bin.gz"325 IEM_TEST_DATA rol_u8_intel, "tstIEMAImplDataInt-rol_u8_intel -Intel.bin.gz"326 IEM_TEST_DATA rol_u16_amd, "tstIEMAImplDataInt-rol_u16_amd -Amd.bin.gz"327 IEM_TEST_DATA rol_u16_intel, "tstIEMAImplDataInt-rol_u16_intel -Intel.bin.gz"328 IEM_TEST_DATA rol_u32_amd, "tstIEMAImplDataInt-rol_u32_amd -Amd.bin.gz"329 IEM_TEST_DATA rol_u32_intel, "tstIEMAImplDataInt-rol_u32_intel -Intel.bin.gz"330 IEM_TEST_DATA rol_u64_amd, "tstIEMAImplDataInt-rol_u64_amd -Amd.bin.gz"331 IEM_TEST_DATA rol_u64_intel, "tstIEMAImplDataInt-rol_u64_intel -Intel.bin.gz"332 IEM_TEST_DATA ror_u8_amd, "tstIEMAImplDataInt-ror_u8_amd -Amd.bin.gz"333 IEM_TEST_DATA ror_u8_intel, "tstIEMAImplDataInt-ror_u8_intel -Intel.bin.gz"334 IEM_TEST_DATA ror_u16_amd, "tstIEMAImplDataInt-ror_u16_amd -Amd.bin.gz"335 IEM_TEST_DATA ror_u16_intel, "tstIEMAImplDataInt-ror_u16_intel -Intel.bin.gz"336 IEM_TEST_DATA ror_u32_amd, "tstIEMAImplDataInt-ror_u32_amd -Amd.bin.gz"337 IEM_TEST_DATA ror_u32_intel, "tstIEMAImplDataInt-ror_u32_intel -Intel.bin.gz"338 IEM_TEST_DATA ror_u64_amd, "tstIEMAImplDataInt-ror_u64_amd -Amd.bin.gz"339 IEM_TEST_DATA ror_u64_intel, "tstIEMAImplDataInt-ror_u64_intel -Intel.bin.gz"340 IEM_TEST_DATA sar_u8_amd, "tstIEMAImplDataInt-sar_u8_amd -Amd.bin.gz"341 IEM_TEST_DATA sar_u8_intel, "tstIEMAImplDataInt-sar_u8_intel -Intel.bin.gz"342 IEM_TEST_DATA sar_u16_amd, "tstIEMAImplDataInt-sar_u16_amd -Amd.bin.gz"343 IEM_TEST_DATA sar_u16_intel, "tstIEMAImplDataInt-sar_u16_intel -Intel.bin.gz"344 IEM_TEST_DATA sar_u32_amd, "tstIEMAImplDataInt-sar_u32_amd -Amd.bin.gz"345 IEM_TEST_DATA sar_u32_intel, "tstIEMAImplDataInt-sar_u32_intel -Intel.bin.gz"346 IEM_TEST_DATA sar_u64_amd, "tstIEMAImplDataInt-sar_u64_amd -Amd.bin.gz"347 IEM_TEST_DATA sar_u64_intel, "tstIEMAImplDataInt-sar_u64_intel -Intel.bin.gz"308 IEM_TEST_DATA rcl_u8_amd, "tstIEMAImplDataInt-rcl_u8_amd.bin.gz" 309 IEM_TEST_DATA rcl_u8_intel, "tstIEMAImplDataInt-rcl_u8_intel.bin.gz" 310 IEM_TEST_DATA rcl_u16_amd, "tstIEMAImplDataInt-rcl_u16_amd.bin.gz" 311 IEM_TEST_DATA rcl_u16_intel, "tstIEMAImplDataInt-rcl_u16_intel.bin.gz" 312 IEM_TEST_DATA rcl_u32_amd, "tstIEMAImplDataInt-rcl_u32_amd.bin.gz" 313 IEM_TEST_DATA rcl_u32_intel, "tstIEMAImplDataInt-rcl_u32_intel.bin.gz" 314 IEM_TEST_DATA rcl_u64_amd, "tstIEMAImplDataInt-rcl_u64_amd.bin.gz" 315 IEM_TEST_DATA rcl_u64_intel, "tstIEMAImplDataInt-rcl_u64_intel.bin.gz" 316 IEM_TEST_DATA rcr_u8_amd, "tstIEMAImplDataInt-rcr_u8_amd.bin.gz" 317 IEM_TEST_DATA rcr_u8_intel, "tstIEMAImplDataInt-rcr_u8_intel.bin.gz" 318 IEM_TEST_DATA rcr_u16_amd, "tstIEMAImplDataInt-rcr_u16_amd.bin.gz" 319 IEM_TEST_DATA rcr_u16_intel, "tstIEMAImplDataInt-rcr_u16_intel.bin.gz" 320 IEM_TEST_DATA rcr_u32_amd, "tstIEMAImplDataInt-rcr_u32_amd.bin.gz" 321 IEM_TEST_DATA rcr_u32_intel, "tstIEMAImplDataInt-rcr_u32_intel.bin.gz" 322 IEM_TEST_DATA rcr_u64_amd, "tstIEMAImplDataInt-rcr_u64_amd.bin.gz" 323 IEM_TEST_DATA rcr_u64_intel, "tstIEMAImplDataInt-rcr_u64_intel.bin.gz" 324 IEM_TEST_DATA rol_u8_amd, "tstIEMAImplDataInt-rol_u8_amd.bin.gz" 325 IEM_TEST_DATA rol_u8_intel, "tstIEMAImplDataInt-rol_u8_intel.bin.gz" 326 IEM_TEST_DATA rol_u16_amd, "tstIEMAImplDataInt-rol_u16_amd.bin.gz" 327 IEM_TEST_DATA rol_u16_intel, "tstIEMAImplDataInt-rol_u16_intel.bin.gz" 328 IEM_TEST_DATA rol_u32_amd, "tstIEMAImplDataInt-rol_u32_amd.bin.gz" 329 IEM_TEST_DATA rol_u32_intel, "tstIEMAImplDataInt-rol_u32_intel.bin.gz" 330 IEM_TEST_DATA rol_u64_amd, "tstIEMAImplDataInt-rol_u64_amd.bin.gz" 331 IEM_TEST_DATA rol_u64_intel, "tstIEMAImplDataInt-rol_u64_intel.bin.gz" 332 IEM_TEST_DATA ror_u8_amd, "tstIEMAImplDataInt-ror_u8_amd.bin.gz" 333 IEM_TEST_DATA ror_u8_intel, "tstIEMAImplDataInt-ror_u8_intel.bin.gz" 334 IEM_TEST_DATA ror_u16_amd, "tstIEMAImplDataInt-ror_u16_amd.bin.gz" 335 IEM_TEST_DATA ror_u16_intel, "tstIEMAImplDataInt-ror_u16_intel.bin.gz" 336 IEM_TEST_DATA ror_u32_amd, "tstIEMAImplDataInt-ror_u32_amd.bin.gz" 337 IEM_TEST_DATA ror_u32_intel, "tstIEMAImplDataInt-ror_u32_intel.bin.gz" 338 IEM_TEST_DATA ror_u64_amd, "tstIEMAImplDataInt-ror_u64_amd.bin.gz" 339 IEM_TEST_DATA ror_u64_intel, "tstIEMAImplDataInt-ror_u64_intel.bin.gz" 340 IEM_TEST_DATA sar_u8_amd, "tstIEMAImplDataInt-sar_u8_amd.bin.gz" 341 IEM_TEST_DATA sar_u8_intel, "tstIEMAImplDataInt-sar_u8_intel.bin.gz" 342 IEM_TEST_DATA sar_u16_amd, "tstIEMAImplDataInt-sar_u16_amd.bin.gz" 343 IEM_TEST_DATA sar_u16_intel, "tstIEMAImplDataInt-sar_u16_intel.bin.gz" 344 IEM_TEST_DATA sar_u32_amd, "tstIEMAImplDataInt-sar_u32_amd.bin.gz" 345 IEM_TEST_DATA sar_u32_intel, "tstIEMAImplDataInt-sar_u32_intel.bin.gz" 346 IEM_TEST_DATA sar_u64_amd, "tstIEMAImplDataInt-sar_u64_amd.bin.gz" 347 IEM_TEST_DATA sar_u64_intel, "tstIEMAImplDataInt-sar_u64_intel.bin.gz" 348 348 IEM_TEST_DATA sbb_u8, "tstIEMAImplDataInt-sbb_u8.bin.gz" 349 349 IEM_TEST_DATA sbb_u8_locked, "tstIEMAImplDataInt-sbb_u8_locked.bin.gz" … … 354 354 IEM_TEST_DATA sbb_u64, "tstIEMAImplDataInt-sbb_u64.bin.gz" 355 355 IEM_TEST_DATA sbb_u64_locked, "tstIEMAImplDataInt-sbb_u64_locked.bin.gz" 356 IEM_TEST_DATA shld_u16_amd, "tstIEMAImplDataInt-shld_u16_amd -Amd.bin.gz"357 IEM_TEST_DATA shld_u16_intel, "tstIEMAImplDataInt-shld_u16_intel -Intel.bin.gz"358 IEM_TEST_DATA shld_u32_amd, "tstIEMAImplDataInt-shld_u32_amd -Amd.bin.gz"359 IEM_TEST_DATA shld_u32_intel, "tstIEMAImplDataInt-shld_u32_intel -Intel.bin.gz"360 IEM_TEST_DATA shld_u64_amd, "tstIEMAImplDataInt-shld_u64_amd -Amd.bin.gz"361 IEM_TEST_DATA shld_u64_intel, "tstIEMAImplDataInt-shld_u64_intel -Intel.bin.gz"362 IEM_TEST_DATA shl_u8_amd, "tstIEMAImplDataInt-shl_u8_amd -Amd.bin.gz"363 IEM_TEST_DATA shl_u8_intel, "tstIEMAImplDataInt-shl_u8_intel -Intel.bin.gz"364 IEM_TEST_DATA shl_u16_amd, "tstIEMAImplDataInt-shl_u16_amd -Amd.bin.gz"365 IEM_TEST_DATA shl_u16_intel, "tstIEMAImplDataInt-shl_u16_intel -Intel.bin.gz"366 IEM_TEST_DATA shl_u32_amd, "tstIEMAImplDataInt-shl_u32_amd -Amd.bin.gz"367 IEM_TEST_DATA shl_u32_intel, "tstIEMAImplDataInt-shl_u32_intel -Intel.bin.gz"368 IEM_TEST_DATA shl_u64_amd, "tstIEMAImplDataInt-shl_u64_amd -Amd.bin.gz"369 IEM_TEST_DATA shl_u64_intel, "tstIEMAImplDataInt-shl_u64_intel -Intel.bin.gz"370 IEM_TEST_DATA shrd_u16_amd, "tstIEMAImplDataInt-shrd_u16_amd -Amd.bin.gz"371 IEM_TEST_DATA shrd_u16_intel, "tstIEMAImplDataInt-shrd_u16_intel -Intel.bin.gz"372 IEM_TEST_DATA shrd_u32_amd, "tstIEMAImplDataInt-shrd_u32_amd -Amd.bin.gz"373 IEM_TEST_DATA shrd_u32_intel, "tstIEMAImplDataInt-shrd_u32_intel -Intel.bin.gz"374 IEM_TEST_DATA shrd_u64_amd, "tstIEMAImplDataInt-shrd_u64_amd -Amd.bin.gz"375 IEM_TEST_DATA shrd_u64_intel, "tstIEMAImplDataInt-shrd_u64_intel -Intel.bin.gz"376 IEM_TEST_DATA shr_u8_amd, "tstIEMAImplDataInt-shr_u8_amd -Amd.bin.gz"377 IEM_TEST_DATA shr_u8_intel, "tstIEMAImplDataInt-shr_u8_intel -Intel.bin.gz"378 IEM_TEST_DATA shr_u16_amd, "tstIEMAImplDataInt-shr_u16_amd -Amd.bin.gz"379 IEM_TEST_DATA shr_u16_intel, "tstIEMAImplDataInt-shr_u16_intel -Intel.bin.gz"380 IEM_TEST_DATA shr_u32_amd, "tstIEMAImplDataInt-shr_u32_amd -Amd.bin.gz"381 IEM_TEST_DATA shr_u32_intel, "tstIEMAImplDataInt-shr_u32_intel -Intel.bin.gz"382 IEM_TEST_DATA shr_u64_amd, "tstIEMAImplDataInt-shr_u64_amd -Amd.bin.gz"383 IEM_TEST_DATA shr_u64_intel, "tstIEMAImplDataInt-shr_u64_intel -Intel.bin.gz"356 IEM_TEST_DATA shld_u16_amd, "tstIEMAImplDataInt-shld_u16_amd.bin.gz" 357 IEM_TEST_DATA shld_u16_intel, "tstIEMAImplDataInt-shld_u16_intel.bin.gz" 358 IEM_TEST_DATA shld_u32_amd, "tstIEMAImplDataInt-shld_u32_amd.bin.gz" 359 IEM_TEST_DATA shld_u32_intel, "tstIEMAImplDataInt-shld_u32_intel.bin.gz" 360 IEM_TEST_DATA shld_u64_amd, "tstIEMAImplDataInt-shld_u64_amd.bin.gz" 361 IEM_TEST_DATA shld_u64_intel, "tstIEMAImplDataInt-shld_u64_intel.bin.gz" 362 IEM_TEST_DATA shl_u8_amd, "tstIEMAImplDataInt-shl_u8_amd.bin.gz" 363 IEM_TEST_DATA shl_u8_intel, "tstIEMAImplDataInt-shl_u8_intel.bin.gz" 364 IEM_TEST_DATA shl_u16_amd, "tstIEMAImplDataInt-shl_u16_amd.bin.gz" 365 IEM_TEST_DATA shl_u16_intel, "tstIEMAImplDataInt-shl_u16_intel.bin.gz" 366 IEM_TEST_DATA shl_u32_amd, "tstIEMAImplDataInt-shl_u32_amd.bin.gz" 367 IEM_TEST_DATA shl_u32_intel, "tstIEMAImplDataInt-shl_u32_intel.bin.gz" 368 IEM_TEST_DATA shl_u64_amd, "tstIEMAImplDataInt-shl_u64_amd.bin.gz" 369 IEM_TEST_DATA shl_u64_intel, "tstIEMAImplDataInt-shl_u64_intel.bin.gz" 370 IEM_TEST_DATA shrd_u16_amd, "tstIEMAImplDataInt-shrd_u16_amd.bin.gz" 371 IEM_TEST_DATA shrd_u16_intel, "tstIEMAImplDataInt-shrd_u16_intel.bin.gz" 372 IEM_TEST_DATA shrd_u32_amd, "tstIEMAImplDataInt-shrd_u32_amd.bin.gz" 373 IEM_TEST_DATA shrd_u32_intel, "tstIEMAImplDataInt-shrd_u32_intel.bin.gz" 374 IEM_TEST_DATA shrd_u64_amd, "tstIEMAImplDataInt-shrd_u64_amd.bin.gz" 375 IEM_TEST_DATA shrd_u64_intel, "tstIEMAImplDataInt-shrd_u64_intel.bin.gz" 376 IEM_TEST_DATA shr_u8_amd, "tstIEMAImplDataInt-shr_u8_amd.bin.gz" 377 IEM_TEST_DATA shr_u8_intel, "tstIEMAImplDataInt-shr_u8_intel.bin.gz" 378 IEM_TEST_DATA shr_u16_amd, "tstIEMAImplDataInt-shr_u16_amd.bin.gz" 379 IEM_TEST_DATA shr_u16_intel, "tstIEMAImplDataInt-shr_u16_intel.bin.gz" 380 IEM_TEST_DATA shr_u32_amd, "tstIEMAImplDataInt-shr_u32_amd.bin.gz" 381 IEM_TEST_DATA shr_u32_intel, "tstIEMAImplDataInt-shr_u32_intel.bin.gz" 382 IEM_TEST_DATA shr_u64_amd, "tstIEMAImplDataInt-shr_u64_amd.bin.gz" 383 IEM_TEST_DATA shr_u64_intel, "tstIEMAImplDataInt-shr_u64_intel.bin.gz" 384 384 IEM_TEST_DATA sub_u8, "tstIEMAImplDataInt-sub_u8.bin.gz" 385 385 IEM_TEST_DATA sub_u8_locked, "tstIEMAImplDataInt-sub_u8_locked.bin.gz" -
trunk/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.asm
r103064 r103075 189 189 IEM_TEST_DATA and_u64_locked, "tstIEMAImplDataInt-and_u64_locked.bin.gz" 190 190 IEM_TEST_DATA arpl, "tstIEMAImplDataInt-arpl.bin.gz" 191 IEM_TEST_DATA bsf_u16_amd, "tstIEMAImplDataInt-bsf_u16_amd -Amd.bin.gz"192 IEM_TEST_DATA bsf_u16_intel, "tstIEMAImplDataInt-bsf_u16_intel -Intel.bin.gz"193 IEM_TEST_DATA bsf_u32_amd, "tstIEMAImplDataInt-bsf_u32_amd -Amd.bin.gz"194 IEM_TEST_DATA bsf_u32_intel, "tstIEMAImplDataInt-bsf_u32_intel -Intel.bin.gz"195 IEM_TEST_DATA bsf_u64_amd, "tstIEMAImplDataInt-bsf_u64_amd -Amd.bin.gz"196 IEM_TEST_DATA bsf_u64_intel, "tstIEMAImplDataInt-bsf_u64_intel -Intel.bin.gz"197 IEM_TEST_DATA bsr_u16_amd, "tstIEMAImplDataInt-bsr_u16_amd -Amd.bin.gz"198 IEM_TEST_DATA bsr_u16_intel, "tstIEMAImplDataInt-bsr_u16_intel -Intel.bin.gz"199 IEM_TEST_DATA bsr_u32_amd, "tstIEMAImplDataInt-bsr_u32_amd -Amd.bin.gz"200 IEM_TEST_DATA bsr_u32_intel, "tstIEMAImplDataInt-bsr_u32_intel -Intel.bin.gz"201 IEM_TEST_DATA bsr_u64_amd, "tstIEMAImplDataInt-bsr_u64_amd -Amd.bin.gz"202 IEM_TEST_DATA bsr_u64_intel, "tstIEMAImplDataInt-bsr_u64_intel -Intel.bin.gz"191 IEM_TEST_DATA bsf_u16_amd, "tstIEMAImplDataInt-bsf_u16_amd.bin.gz" 192 IEM_TEST_DATA bsf_u16_intel, "tstIEMAImplDataInt-bsf_u16_intel.bin.gz" 193 IEM_TEST_DATA bsf_u32_amd, "tstIEMAImplDataInt-bsf_u32_amd.bin.gz" 194 IEM_TEST_DATA bsf_u32_intel, "tstIEMAImplDataInt-bsf_u32_intel.bin.gz" 195 IEM_TEST_DATA bsf_u64_amd, "tstIEMAImplDataInt-bsf_u64_amd.bin.gz" 196 IEM_TEST_DATA bsf_u64_intel, "tstIEMAImplDataInt-bsf_u64_intel.bin.gz" 197 IEM_TEST_DATA bsr_u16_amd, "tstIEMAImplDataInt-bsr_u16_amd.bin.gz" 198 IEM_TEST_DATA bsr_u16_intel, "tstIEMAImplDataInt-bsr_u16_intel.bin.gz" 199 IEM_TEST_DATA bsr_u32_amd, "tstIEMAImplDataInt-bsr_u32_amd.bin.gz" 200 IEM_TEST_DATA bsr_u32_intel, "tstIEMAImplDataInt-bsr_u32_intel.bin.gz" 201 IEM_TEST_DATA bsr_u64_amd, "tstIEMAImplDataInt-bsr_u64_amd.bin.gz" 202 IEM_TEST_DATA bsr_u64_intel, "tstIEMAImplDataInt-bsr_u64_intel.bin.gz" 203 203 IEM_TEST_DATA btc_u16, "tstIEMAImplDataInt-btc_u16.bin.gz" 204 204 IEM_TEST_DATA btc_u16_locked, "tstIEMAImplDataInt-btc_u16_locked.bin.gz" … … 234 234 IEM_TEST_DATA dec_u64, "tstIEMAImplDataInt-dec_u64.bin.gz" 235 235 IEM_TEST_DATA dec_u64_locked, "tstIEMAImplDataInt-dec_u64_locked.bin.gz" 236 IEM_TEST_DATA div_u8_amd, "tstIEMAImplDataInt-div_u8_amd -Amd.bin.gz"237 IEM_TEST_DATA div_u8_intel, "tstIEMAImplDataInt-div_u8_intel -Intel.bin.gz"238 IEM_TEST_DATA div_u16_amd, "tstIEMAImplDataInt-div_u16_amd -Amd.bin.gz"239 IEM_TEST_DATA div_u16_intel, "tstIEMAImplDataInt-div_u16_intel -Intel.bin.gz"240 IEM_TEST_DATA div_u32_amd, "tstIEMAImplDataInt-div_u32_amd -Amd.bin.gz"241 IEM_TEST_DATA div_u32_intel, "tstIEMAImplDataInt-div_u32_intel -Intel.bin.gz"242 IEM_TEST_DATA div_u64_amd, "tstIEMAImplDataInt-div_u64_amd -Amd.bin.gz"243 IEM_TEST_DATA div_u64_intel, "tstIEMAImplDataInt-div_u64_intel -Intel.bin.gz"244 IEM_TEST_DATA idiv_u8_amd, "tstIEMAImplDataInt-idiv_u8_amd -Amd.bin.gz"245 IEM_TEST_DATA idiv_u8_intel, "tstIEMAImplDataInt-idiv_u8_intel -Intel.bin.gz"246 IEM_TEST_DATA idiv_u16_amd, "tstIEMAImplDataInt-idiv_u16_amd -Amd.bin.gz"247 IEM_TEST_DATA idiv_u16_intel, "tstIEMAImplDataInt-idiv_u16_intel -Intel.bin.gz"248 IEM_TEST_DATA idiv_u32_amd, "tstIEMAImplDataInt-idiv_u32_amd -Amd.bin.gz"249 IEM_TEST_DATA idiv_u32_intel, "tstIEMAImplDataInt-idiv_u32_intel -Intel.bin.gz"250 IEM_TEST_DATA idiv_u64_amd, "tstIEMAImplDataInt-idiv_u64_amd -Amd.bin.gz"251 IEM_TEST_DATA idiv_u64_intel, "tstIEMAImplDataInt-idiv_u64_intel -Intel.bin.gz"252 IEM_TEST_DATA imul_two_u16_amd, "tstIEMAImplDataInt-imul_two_u16_amd -Amd.bin.gz"253 IEM_TEST_DATA imul_two_u16_intel, "tstIEMAImplDataInt-imul_two_u16_intel -Intel.bin.gz"254 IEM_TEST_DATA imul_two_u32_amd, "tstIEMAImplDataInt-imul_two_u32_amd -Amd.bin.gz"255 IEM_TEST_DATA imul_two_u32_intel, "tstIEMAImplDataInt-imul_two_u32_intel -Intel.bin.gz"256 IEM_TEST_DATA imul_two_u64_amd, "tstIEMAImplDataInt-imul_two_u64_amd -Amd.bin.gz"257 IEM_TEST_DATA imul_two_u64_intel, "tstIEMAImplDataInt-imul_two_u64_intel -Intel.bin.gz"258 IEM_TEST_DATA imul_u8_amd, "tstIEMAImplDataInt-imul_u8_amd -Amd.bin.gz"259 IEM_TEST_DATA imul_u8_intel, "tstIEMAImplDataInt-imul_u8_intel -Intel.bin.gz"260 IEM_TEST_DATA imul_u16_amd, "tstIEMAImplDataInt-imul_u16_amd -Amd.bin.gz"261 IEM_TEST_DATA imul_u16_intel, "tstIEMAImplDataInt-imul_u16_intel -Intel.bin.gz"262 IEM_TEST_DATA imul_u32_amd, "tstIEMAImplDataInt-imul_u32_amd -Amd.bin.gz"263 IEM_TEST_DATA imul_u32_intel, "tstIEMAImplDataInt-imul_u32_intel -Intel.bin.gz"264 IEM_TEST_DATA imul_u64_amd, "tstIEMAImplDataInt-imul_u64_amd -Amd.bin.gz"265 IEM_TEST_DATA imul_u64_intel, "tstIEMAImplDataInt-imul_u64_intel -Intel.bin.gz"236 IEM_TEST_DATA div_u8_amd, "tstIEMAImplDataInt-div_u8_amd.bin.gz" 237 IEM_TEST_DATA div_u8_intel, "tstIEMAImplDataInt-div_u8_intel.bin.gz" 238 IEM_TEST_DATA div_u16_amd, "tstIEMAImplDataInt-div_u16_amd.bin.gz" 239 IEM_TEST_DATA div_u16_intel, "tstIEMAImplDataInt-div_u16_intel.bin.gz" 240 IEM_TEST_DATA div_u32_amd, "tstIEMAImplDataInt-div_u32_amd.bin.gz" 241 IEM_TEST_DATA div_u32_intel, "tstIEMAImplDataInt-div_u32_intel.bin.gz" 242 IEM_TEST_DATA div_u64_amd, "tstIEMAImplDataInt-div_u64_amd.bin.gz" 243 IEM_TEST_DATA div_u64_intel, "tstIEMAImplDataInt-div_u64_intel.bin.gz" 244 IEM_TEST_DATA idiv_u8_amd, "tstIEMAImplDataInt-idiv_u8_amd.bin.gz" 245 IEM_TEST_DATA idiv_u8_intel, "tstIEMAImplDataInt-idiv_u8_intel.bin.gz" 246 IEM_TEST_DATA idiv_u16_amd, "tstIEMAImplDataInt-idiv_u16_amd.bin.gz" 247 IEM_TEST_DATA idiv_u16_intel, "tstIEMAImplDataInt-idiv_u16_intel.bin.gz" 248 IEM_TEST_DATA idiv_u32_amd, "tstIEMAImplDataInt-idiv_u32_amd.bin.gz" 249 IEM_TEST_DATA idiv_u32_intel, "tstIEMAImplDataInt-idiv_u32_intel.bin.gz" 250 IEM_TEST_DATA idiv_u64_amd, "tstIEMAImplDataInt-idiv_u64_amd.bin.gz" 251 IEM_TEST_DATA idiv_u64_intel, "tstIEMAImplDataInt-idiv_u64_intel.bin.gz" 252 IEM_TEST_DATA imul_two_u16_amd, "tstIEMAImplDataInt-imul_two_u16_amd.bin.gz" 253 IEM_TEST_DATA imul_two_u16_intel, "tstIEMAImplDataInt-imul_two_u16_intel.bin.gz" 254 IEM_TEST_DATA imul_two_u32_amd, "tstIEMAImplDataInt-imul_two_u32_amd.bin.gz" 255 IEM_TEST_DATA imul_two_u32_intel, "tstIEMAImplDataInt-imul_two_u32_intel.bin.gz" 256 IEM_TEST_DATA imul_two_u64_amd, "tstIEMAImplDataInt-imul_two_u64_amd.bin.gz" 257 IEM_TEST_DATA imul_two_u64_intel, "tstIEMAImplDataInt-imul_two_u64_intel.bin.gz" 258 IEM_TEST_DATA imul_u8_amd, "tstIEMAImplDataInt-imul_u8_amd.bin.gz" 259 IEM_TEST_DATA imul_u8_intel, "tstIEMAImplDataInt-imul_u8_intel.bin.gz" 260 IEM_TEST_DATA imul_u16_amd, "tstIEMAImplDataInt-imul_u16_amd.bin.gz" 261 IEM_TEST_DATA imul_u16_intel, "tstIEMAImplDataInt-imul_u16_intel.bin.gz" 262 IEM_TEST_DATA imul_u32_amd, "tstIEMAImplDataInt-imul_u32_amd.bin.gz" 263 IEM_TEST_DATA imul_u32_intel, "tstIEMAImplDataInt-imul_u32_intel.bin.gz" 264 IEM_TEST_DATA imul_u64_amd, "tstIEMAImplDataInt-imul_u64_amd.bin.gz" 265 IEM_TEST_DATA imul_u64_intel, "tstIEMAImplDataInt-imul_u64_intel.bin.gz" 266 266 IEM_TEST_DATA inc_u8, "tstIEMAImplDataInt-inc_u8.bin.gz" 267 267 IEM_TEST_DATA inc_u8_locked, "tstIEMAImplDataInt-inc_u8_locked.bin.gz" … … 272 272 IEM_TEST_DATA inc_u64, "tstIEMAImplDataInt-inc_u64.bin.gz" 273 273 IEM_TEST_DATA inc_u64_locked, "tstIEMAImplDataInt-inc_u64_locked.bin.gz" 274 IEM_TEST_DATA mul_u8_amd, "tstIEMAImplDataInt-mul_u8_amd -Amd.bin.gz"275 IEM_TEST_DATA mul_u8_intel, "tstIEMAImplDataInt-mul_u8_intel -Intel.bin.gz"276 IEM_TEST_DATA mul_u16_amd, "tstIEMAImplDataInt-mul_u16_amd -Amd.bin.gz"277 IEM_TEST_DATA mul_u16_intel, "tstIEMAImplDataInt-mul_u16_intel -Intel.bin.gz"278 IEM_TEST_DATA mul_u32_amd, "tstIEMAImplDataInt-mul_u32_amd -Amd.bin.gz"279 IEM_TEST_DATA mul_u32_intel, "tstIEMAImplDataInt-mul_u32_intel -Intel.bin.gz"280 IEM_TEST_DATA mul_u64_amd, "tstIEMAImplDataInt-mul_u64_amd -Amd.bin.gz"281 IEM_TEST_DATA mul_u64_intel, "tstIEMAImplDataInt-mul_u64_intel -Intel.bin.gz"274 IEM_TEST_DATA mul_u8_amd, "tstIEMAImplDataInt-mul_u8_amd.bin.gz" 275 IEM_TEST_DATA mul_u8_intel, "tstIEMAImplDataInt-mul_u8_intel.bin.gz" 276 IEM_TEST_DATA mul_u16_amd, "tstIEMAImplDataInt-mul_u16_amd.bin.gz" 277 IEM_TEST_DATA mul_u16_intel, "tstIEMAImplDataInt-mul_u16_intel.bin.gz" 278 IEM_TEST_DATA mul_u32_amd, "tstIEMAImplDataInt-mul_u32_amd.bin.gz" 279 IEM_TEST_DATA mul_u32_intel, "tstIEMAImplDataInt-mul_u32_intel.bin.gz" 280 IEM_TEST_DATA mul_u64_amd, "tstIEMAImplDataInt-mul_u64_amd.bin.gz" 281 IEM_TEST_DATA mul_u64_intel, "tstIEMAImplDataInt-mul_u64_intel.bin.gz" 282 282 IEM_TEST_DATA neg_u8, "tstIEMAImplDataInt-neg_u8.bin.gz" 283 283 IEM_TEST_DATA neg_u8_locked, "tstIEMAImplDataInt-neg_u8_locked.bin.gz" … … 304 304 IEM_TEST_DATA or_u64, "tstIEMAImplDataInt-or_u64.bin.gz" 305 305 IEM_TEST_DATA or_u64_locked, "tstIEMAImplDataInt-or_u64_locked.bin.gz" 306 IEM_TEST_DATA rcl_u8_amd, "tstIEMAImplDataInt-rcl_u8_amd -Amd.bin.gz"307 IEM_TEST_DATA rcl_u8_intel, "tstIEMAImplDataInt-rcl_u8_intel -Intel.bin.gz"308 IEM_TEST_DATA rcl_u16_amd, "tstIEMAImplDataInt-rcl_u16_amd -Amd.bin.gz"309 IEM_TEST_DATA rcl_u16_intel, "tstIEMAImplDataInt-rcl_u16_intel -Intel.bin.gz"310 IEM_TEST_DATA rcl_u32_amd, "tstIEMAImplDataInt-rcl_u32_amd -Amd.bin.gz"311 IEM_TEST_DATA rcl_u32_intel, "tstIEMAImplDataInt-rcl_u32_intel -Intel.bin.gz"312 IEM_TEST_DATA rcl_u64_amd, "tstIEMAImplDataInt-rcl_u64_amd -Amd.bin.gz"313 IEM_TEST_DATA rcl_u64_intel, "tstIEMAImplDataInt-rcl_u64_intel -Intel.bin.gz"314 IEM_TEST_DATA rcr_u8_amd, "tstIEMAImplDataInt-rcr_u8_amd -Amd.bin.gz"315 IEM_TEST_DATA rcr_u8_intel, "tstIEMAImplDataInt-rcr_u8_intel -Intel.bin.gz"316 IEM_TEST_DATA rcr_u16_amd, "tstIEMAImplDataInt-rcr_u16_amd -Amd.bin.gz"317 IEM_TEST_DATA rcr_u16_intel, "tstIEMAImplDataInt-rcr_u16_intel -Intel.bin.gz"318 IEM_TEST_DATA rcr_u32_amd, "tstIEMAImplDataInt-rcr_u32_amd -Amd.bin.gz"319 IEM_TEST_DATA rcr_u32_intel, "tstIEMAImplDataInt-rcr_u32_intel -Intel.bin.gz"320 IEM_TEST_DATA rcr_u64_amd, "tstIEMAImplDataInt-rcr_u64_amd -Amd.bin.gz"321 IEM_TEST_DATA rcr_u64_intel, "tstIEMAImplDataInt-rcr_u64_intel -Intel.bin.gz"322 IEM_TEST_DATA rol_u8_amd, "tstIEMAImplDataInt-rol_u8_amd -Amd.bin.gz"323 IEM_TEST_DATA rol_u8_intel, "tstIEMAImplDataInt-rol_u8_intel -Intel.bin.gz"324 IEM_TEST_DATA rol_u16_amd, "tstIEMAImplDataInt-rol_u16_amd -Amd.bin.gz"325 IEM_TEST_DATA rol_u16_intel, "tstIEMAImplDataInt-rol_u16_intel -Intel.bin.gz"326 IEM_TEST_DATA rol_u32_amd, "tstIEMAImplDataInt-rol_u32_amd -Amd.bin.gz"327 IEM_TEST_DATA rol_u32_intel, "tstIEMAImplDataInt-rol_u32_intel -Intel.bin.gz"328 IEM_TEST_DATA rol_u64_amd, "tstIEMAImplDataInt-rol_u64_amd -Amd.bin.gz"329 IEM_TEST_DATA rol_u64_intel, "tstIEMAImplDataInt-rol_u64_intel -Intel.bin.gz"330 IEM_TEST_DATA ror_u8_amd, "tstIEMAImplDataInt-ror_u8_amd -Amd.bin.gz"331 IEM_TEST_DATA ror_u8_intel, "tstIEMAImplDataInt-ror_u8_intel -Intel.bin.gz"332 IEM_TEST_DATA ror_u16_amd, "tstIEMAImplDataInt-ror_u16_amd -Amd.bin.gz"333 IEM_TEST_DATA ror_u16_intel, "tstIEMAImplDataInt-ror_u16_intel -Intel.bin.gz"334 IEM_TEST_DATA ror_u32_amd, "tstIEMAImplDataInt-ror_u32_amd -Amd.bin.gz"335 IEM_TEST_DATA ror_u32_intel, "tstIEMAImplDataInt-ror_u32_intel -Intel.bin.gz"336 IEM_TEST_DATA ror_u64_amd, "tstIEMAImplDataInt-ror_u64_amd -Amd.bin.gz"337 IEM_TEST_DATA ror_u64_intel, "tstIEMAImplDataInt-ror_u64_intel -Intel.bin.gz"338 IEM_TEST_DATA sar_u8_amd, "tstIEMAImplDataInt-sar_u8_amd -Amd.bin.gz"339 IEM_TEST_DATA sar_u8_intel, "tstIEMAImplDataInt-sar_u8_intel -Intel.bin.gz"340 IEM_TEST_DATA sar_u16_amd, "tstIEMAImplDataInt-sar_u16_amd -Amd.bin.gz"341 IEM_TEST_DATA sar_u16_intel, "tstIEMAImplDataInt-sar_u16_intel -Intel.bin.gz"342 IEM_TEST_DATA sar_u32_amd, "tstIEMAImplDataInt-sar_u32_amd -Amd.bin.gz"343 IEM_TEST_DATA sar_u32_intel, "tstIEMAImplDataInt-sar_u32_intel -Intel.bin.gz"344 IEM_TEST_DATA sar_u64_amd, "tstIEMAImplDataInt-sar_u64_amd -Amd.bin.gz"345 IEM_TEST_DATA sar_u64_intel, "tstIEMAImplDataInt-sar_u64_intel -Intel.bin.gz"306 IEM_TEST_DATA rcl_u8_amd, "tstIEMAImplDataInt-rcl_u8_amd.bin.gz" 307 IEM_TEST_DATA rcl_u8_intel, "tstIEMAImplDataInt-rcl_u8_intel.bin.gz" 308 IEM_TEST_DATA rcl_u16_amd, "tstIEMAImplDataInt-rcl_u16_amd.bin.gz" 309 IEM_TEST_DATA rcl_u16_intel, "tstIEMAImplDataInt-rcl_u16_intel.bin.gz" 310 IEM_TEST_DATA rcl_u32_amd, "tstIEMAImplDataInt-rcl_u32_amd.bin.gz" 311 IEM_TEST_DATA rcl_u32_intel, "tstIEMAImplDataInt-rcl_u32_intel.bin.gz" 312 IEM_TEST_DATA rcl_u64_amd, "tstIEMAImplDataInt-rcl_u64_amd.bin.gz" 313 IEM_TEST_DATA rcl_u64_intel, "tstIEMAImplDataInt-rcl_u64_intel.bin.gz" 314 IEM_TEST_DATA rcr_u8_amd, "tstIEMAImplDataInt-rcr_u8_amd.bin.gz" 315 IEM_TEST_DATA rcr_u8_intel, "tstIEMAImplDataInt-rcr_u8_intel.bin.gz" 316 IEM_TEST_DATA rcr_u16_amd, "tstIEMAImplDataInt-rcr_u16_amd.bin.gz" 317 IEM_TEST_DATA rcr_u16_intel, "tstIEMAImplDataInt-rcr_u16_intel.bin.gz" 318 IEM_TEST_DATA rcr_u32_amd, "tstIEMAImplDataInt-rcr_u32_amd.bin.gz" 319 IEM_TEST_DATA rcr_u32_intel, "tstIEMAImplDataInt-rcr_u32_intel.bin.gz" 320 IEM_TEST_DATA rcr_u64_amd, "tstIEMAImplDataInt-rcr_u64_amd.bin.gz" 321 IEM_TEST_DATA rcr_u64_intel, "tstIEMAImplDataInt-rcr_u64_intel.bin.gz" 322 IEM_TEST_DATA rol_u8_amd, "tstIEMAImplDataInt-rol_u8_amd.bin.gz" 323 IEM_TEST_DATA rol_u8_intel, "tstIEMAImplDataInt-rol_u8_intel.bin.gz" 324 IEM_TEST_DATA rol_u16_amd, "tstIEMAImplDataInt-rol_u16_amd.bin.gz" 325 IEM_TEST_DATA rol_u16_intel, "tstIEMAImplDataInt-rol_u16_intel.bin.gz" 326 IEM_TEST_DATA rol_u32_amd, "tstIEMAImplDataInt-rol_u32_amd.bin.gz" 327 IEM_TEST_DATA rol_u32_intel, "tstIEMAImplDataInt-rol_u32_intel.bin.gz" 328 IEM_TEST_DATA rol_u64_amd, "tstIEMAImplDataInt-rol_u64_amd.bin.gz" 329 IEM_TEST_DATA rol_u64_intel, "tstIEMAImplDataInt-rol_u64_intel.bin.gz" 330 IEM_TEST_DATA ror_u8_amd, "tstIEMAImplDataInt-ror_u8_amd.bin.gz" 331 IEM_TEST_DATA ror_u8_intel, "tstIEMAImplDataInt-ror_u8_intel.bin.gz" 332 IEM_TEST_DATA ror_u16_amd, "tstIEMAImplDataInt-ror_u16_amd.bin.gz" 333 IEM_TEST_DATA ror_u16_intel, "tstIEMAImplDataInt-ror_u16_intel.bin.gz" 334 IEM_TEST_DATA ror_u32_amd, "tstIEMAImplDataInt-ror_u32_amd.bin.gz" 335 IEM_TEST_DATA ror_u32_intel, "tstIEMAImplDataInt-ror_u32_intel.bin.gz" 336 IEM_TEST_DATA ror_u64_amd, "tstIEMAImplDataInt-ror_u64_amd.bin.gz" 337 IEM_TEST_DATA ror_u64_intel, "tstIEMAImplDataInt-ror_u64_intel.bin.gz" 338 IEM_TEST_DATA sar_u8_amd, "tstIEMAImplDataInt-sar_u8_amd.bin.gz" 339 IEM_TEST_DATA sar_u8_intel, "tstIEMAImplDataInt-sar_u8_intel.bin.gz" 340 IEM_TEST_DATA sar_u16_amd, "tstIEMAImplDataInt-sar_u16_amd.bin.gz" 341 IEM_TEST_DATA sar_u16_intel, "tstIEMAImplDataInt-sar_u16_intel.bin.gz" 342 IEM_TEST_DATA sar_u32_amd, "tstIEMAImplDataInt-sar_u32_amd.bin.gz" 343 IEM_TEST_DATA sar_u32_intel, "tstIEMAImplDataInt-sar_u32_intel.bin.gz" 344 IEM_TEST_DATA sar_u64_amd, "tstIEMAImplDataInt-sar_u64_amd.bin.gz" 345 IEM_TEST_DATA sar_u64_intel, "tstIEMAImplDataInt-sar_u64_intel.bin.gz" 346 346 IEM_TEST_DATA sbb_u8, "tstIEMAImplDataInt-sbb_u8.bin.gz" 347 347 IEM_TEST_DATA sbb_u8_locked, "tstIEMAImplDataInt-sbb_u8_locked.bin.gz" … … 352 352 IEM_TEST_DATA sbb_u64, "tstIEMAImplDataInt-sbb_u64.bin.gz" 353 353 IEM_TEST_DATA sbb_u64_locked, "tstIEMAImplDataInt-sbb_u64_locked.bin.gz" 354 IEM_TEST_DATA shld_u16_amd, "tstIEMAImplDataInt-shld_u16_amd -Amd.bin.gz"355 IEM_TEST_DATA shld_u16_intel, "tstIEMAImplDataInt-shld_u16_intel -Intel.bin.gz"356 IEM_TEST_DATA shld_u32_amd, "tstIEMAImplDataInt-shld_u32_amd -Amd.bin.gz"357 IEM_TEST_DATA shld_u32_intel, "tstIEMAImplDataInt-shld_u32_intel -Intel.bin.gz"358 IEM_TEST_DATA shld_u64_amd, "tstIEMAImplDataInt-shld_u64_amd -Amd.bin.gz"359 IEM_TEST_DATA shld_u64_intel, "tstIEMAImplDataInt-shld_u64_intel -Intel.bin.gz"360 IEM_TEST_DATA shl_u8_amd, "tstIEMAImplDataInt-shl_u8_amd -Amd.bin.gz"361 IEM_TEST_DATA shl_u8_intel, "tstIEMAImplDataInt-shl_u8_intel -Intel.bin.gz"362 IEM_TEST_DATA shl_u16_amd, "tstIEMAImplDataInt-shl_u16_amd -Amd.bin.gz"363 IEM_TEST_DATA shl_u16_intel, "tstIEMAImplDataInt-shl_u16_intel -Intel.bin.gz"364 IEM_TEST_DATA shl_u32_amd, "tstIEMAImplDataInt-shl_u32_amd -Amd.bin.gz"365 IEM_TEST_DATA shl_u32_intel, "tstIEMAImplDataInt-shl_u32_intel -Intel.bin.gz"366 IEM_TEST_DATA shl_u64_amd, "tstIEMAImplDataInt-shl_u64_amd -Amd.bin.gz"367 IEM_TEST_DATA shl_u64_intel, "tstIEMAImplDataInt-shl_u64_intel -Intel.bin.gz"368 IEM_TEST_DATA shrd_u16_amd, "tstIEMAImplDataInt-shrd_u16_amd -Amd.bin.gz"369 IEM_TEST_DATA shrd_u16_intel, "tstIEMAImplDataInt-shrd_u16_intel -Intel.bin.gz"370 IEM_TEST_DATA shrd_u32_amd, "tstIEMAImplDataInt-shrd_u32_amd -Amd.bin.gz"371 IEM_TEST_DATA shrd_u32_intel, "tstIEMAImplDataInt-shrd_u32_intel -Intel.bin.gz"372 IEM_TEST_DATA shrd_u64_amd, "tstIEMAImplDataInt-shrd_u64_amd -Amd.bin.gz"373 IEM_TEST_DATA shrd_u64_intel, "tstIEMAImplDataInt-shrd_u64_intel -Intel.bin.gz"374 IEM_TEST_DATA shr_u8_amd, "tstIEMAImplDataInt-shr_u8_amd -Amd.bin.gz"375 IEM_TEST_DATA shr_u8_intel, "tstIEMAImplDataInt-shr_u8_intel -Intel.bin.gz"376 IEM_TEST_DATA shr_u16_amd, "tstIEMAImplDataInt-shr_u16_amd -Amd.bin.gz"377 IEM_TEST_DATA shr_u16_intel, "tstIEMAImplDataInt-shr_u16_intel -Intel.bin.gz"378 IEM_TEST_DATA shr_u32_amd, "tstIEMAImplDataInt-shr_u32_amd -Amd.bin.gz"379 IEM_TEST_DATA shr_u32_intel, "tstIEMAImplDataInt-shr_u32_intel -Intel.bin.gz"380 IEM_TEST_DATA shr_u64_amd, "tstIEMAImplDataInt-shr_u64_amd -Amd.bin.gz"381 IEM_TEST_DATA shr_u64_intel, "tstIEMAImplDataInt-shr_u64_intel -Intel.bin.gz"354 IEM_TEST_DATA shld_u16_amd, "tstIEMAImplDataInt-shld_u16_amd.bin.gz" 355 IEM_TEST_DATA shld_u16_intel, "tstIEMAImplDataInt-shld_u16_intel.bin.gz" 356 IEM_TEST_DATA shld_u32_amd, "tstIEMAImplDataInt-shld_u32_amd.bin.gz" 357 IEM_TEST_DATA shld_u32_intel, "tstIEMAImplDataInt-shld_u32_intel.bin.gz" 358 IEM_TEST_DATA shld_u64_amd, "tstIEMAImplDataInt-shld_u64_amd.bin.gz" 359 IEM_TEST_DATA shld_u64_intel, "tstIEMAImplDataInt-shld_u64_intel.bin.gz" 360 IEM_TEST_DATA shl_u8_amd, "tstIEMAImplDataInt-shl_u8_amd.bin.gz" 361 IEM_TEST_DATA shl_u8_intel, "tstIEMAImplDataInt-shl_u8_intel.bin.gz" 362 IEM_TEST_DATA shl_u16_amd, "tstIEMAImplDataInt-shl_u16_amd.bin.gz" 363 IEM_TEST_DATA shl_u16_intel, "tstIEMAImplDataInt-shl_u16_intel.bin.gz" 364 IEM_TEST_DATA shl_u32_amd, "tstIEMAImplDataInt-shl_u32_amd.bin.gz" 365 IEM_TEST_DATA shl_u32_intel, "tstIEMAImplDataInt-shl_u32_intel.bin.gz" 366 IEM_TEST_DATA shl_u64_amd, "tstIEMAImplDataInt-shl_u64_amd.bin.gz" 367 IEM_TEST_DATA shl_u64_intel, "tstIEMAImplDataInt-shl_u64_intel.bin.gz" 368 IEM_TEST_DATA shrd_u16_amd, "tstIEMAImplDataInt-shrd_u16_amd.bin.gz" 369 IEM_TEST_DATA shrd_u16_intel, "tstIEMAImplDataInt-shrd_u16_intel.bin.gz" 370 IEM_TEST_DATA shrd_u32_amd, "tstIEMAImplDataInt-shrd_u32_amd.bin.gz" 371 IEM_TEST_DATA shrd_u32_intel, "tstIEMAImplDataInt-shrd_u32_intel.bin.gz" 372 IEM_TEST_DATA shrd_u64_amd, "tstIEMAImplDataInt-shrd_u64_amd.bin.gz" 373 IEM_TEST_DATA shrd_u64_intel, "tstIEMAImplDataInt-shrd_u64_intel.bin.gz" 374 IEM_TEST_DATA shr_u8_amd, "tstIEMAImplDataInt-shr_u8_amd.bin.gz" 375 IEM_TEST_DATA shr_u8_intel, "tstIEMAImplDataInt-shr_u8_intel.bin.gz" 376 IEM_TEST_DATA shr_u16_amd, "tstIEMAImplDataInt-shr_u16_amd.bin.gz" 377 IEM_TEST_DATA shr_u16_intel, "tstIEMAImplDataInt-shr_u16_intel.bin.gz" 378 IEM_TEST_DATA shr_u32_amd, "tstIEMAImplDataInt-shr_u32_amd.bin.gz" 379 IEM_TEST_DATA shr_u32_intel, "tstIEMAImplDataInt-shr_u32_intel.bin.gz" 380 IEM_TEST_DATA shr_u64_amd, "tstIEMAImplDataInt-shr_u64_amd.bin.gz" 381 IEM_TEST_DATA shr_u64_intel, "tstIEMAImplDataInt-shr_u64_intel.bin.gz" 382 382 IEM_TEST_DATA sub_u8, "tstIEMAImplDataInt-sub_u8.bin.gz" 383 383 IEM_TEST_DATA sub_u8_locked, "tstIEMAImplDataInt-sub_u8_locked.bin.gz"
Note:
See TracChangeset
for help on using the changeset viewer.