VirtualBox

Changeset 103075 in vbox


Ignore:
Timestamp:
Jan 25, 2024 10:13:32 PM (10 months ago)
Author:
vboxsync
Message:

tstIEMAImpl: Generalized the code some more. bugref:9898

Location:
trunk/src/VBox/VMM/testcase
Files:
4 edited
118 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/testcase/Makefile.kmk

    r103064 r103075  
    272272        tstIEMAImplDataInt-and_u64_locked.bin.gz \
    273273        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 \
    286286        tstIEMAImplDataInt-btc_u16.bin.gz \
    287287        tstIEMAImplDataInt-btc_u16_locked.bin.gz \
     
    317317        tstIEMAImplDataInt-dec_u64.bin.gz \
    318318        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 \
    349349        tstIEMAImplDataInt-inc_u8.bin.gz \
    350350        tstIEMAImplDataInt-inc_u8_locked.bin.gz \
     
    355355        tstIEMAImplDataInt-inc_u64.bin.gz \
    356356        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 \
    365365        tstIEMAImplDataInt-neg_u8.bin.gz \
    366366        tstIEMAImplDataInt-neg_u8_locked.bin.gz \
     
    387387        tstIEMAImplDataInt-or_u64.bin.gz \
    388388        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 \
    429429        tstIEMAImplDataInt-sbb_u8.bin.gz \
    430430        tstIEMAImplDataInt-sbb_u8_locked.bin.gz \
     
    435435        tstIEMAImplDataInt-sbb_u64.bin.gz \
    436436        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 \
    465465        tstIEMAImplDataInt-sub_u8.bin.gz \
    466466        tstIEMAImplDataInt-sub_u8_locked.bin.gz \
  • trunk/src/VBox/VMM/testcase/tstIEMAImpl.cpp

    r103065 r103075  
    3535#include <VBox/log.h>
    3636#include <iprt/assert.h>
     37#include <iprt/buildconfig.h>
    3738#include <iprt/ctype.h>
    3839#include <iprt/err.h>
     
    134135        a_TestType const           *paTests; /**< The decompressed info. */ \
    135136        uint32_t                    cTests;  /**< The decompressed info. */ \
     137        IEMTESTENTRYINFO            Info; \
    136138    } a_TypeName
    137139
     
    143145*   Structures and Typedefs                                                                                                      *
    144146*********************************************************************************************************************************/
     147typedef 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;
     155AssertCompileSize(IEMBINARYHEADER, 128);
     156
     157                            // 01234567890123456
     158#define IEMBINARYHEADER_MAGIC "IEMAImpl Bin v1"
     159AssertCompile(sizeof(IEMBINARYHEADER_MAGIC) == 16);
     160
     161
     162/** Fixed part of TYPEDEF_SUBTEST_TYPE and friends. */
     163typedef 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
    145173typedef struct IEMBINARYOUTPUT
    146174{
     
    157185} IEMBINARYOUTPUT;
    158186typedef IEMBINARYOUTPUT *PIEMBINARYOUTPUT;
     187#endif /* TSTIEMAIMPL_WITH_GENERATOR */
    159188
    160189
     
    186215
    187216static unsigned     g_cVerbosity = 0;
     217
     218
     219#ifdef TSTIEMAIMPL_WITH_GENERATOR
     220/** The SVN revision (for use in the binary headers). */
     221static uint32_t     g_uSvnRev = 0;
     222/** The CPU description (for use in the binary headers). */
     223static char         g_szCpuDesc[80] = "";
     224#endif
    188225
    189226
     
    9961033# endif  /* unused */
    9971034
    998 static bool GenerateBinaryOpen(PIEMBINARYOUTPUT pBinOut, const char *pszFilenameFmt, const char *pszName)
     1035static 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
     1046static bool GenerateBinaryOpen(PIEMBINARYOUTPUT pBinOut, const char *pszFilenameFmt, const char *pszName,
     1047                               IEMTESTENTRYINFO const *pInfoToPreserve, uint32_t cbEntry)
    9991048{
    10001049    pBinOut->hVfsFile         = NIL_RTVFSFILE;
     
    10191068                    {
    10201069                        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
    10211085                        return true;
    10221086                    }
     
    10501114
    10511115# 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]))
    10661118
    10671119static bool GenerateBinaryClose(PIEMBINARYOUTPUT pBinOut)
     
    10881140
    10891141/* 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    }
    10991159#endif /* TSTIEMAIMPL_WITH_GENERATOR */
    11001160
     
    11361196
    11371197/** 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 {
     1198static 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
    11411205    /* Open a memory stream for the compressed binary data. */
    11421206    RTVFSIOSTREAM  hVfsIos      = NIL_RTVFSIOSTREAM;
     
    11771241            if (RT_SUCCESS(rc))
    11781242            {
    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)
    11801247                {
     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. */
    11811272                    if (cbDecompressedAlloc - off > _512K)
    11821273                    {
    11831274                        void * const pvNew = RTMemRealloc(pbDecompressed, off);
    11841275                        if (pvNew)
     1276                        {
    11851277                            pbDecompressed = (uint8_t *)pvNew;
     1278                            if (pHdr)
     1279                                pHdr = (IEMBINARYHEADER const *)pbDecompressed;
     1280                        }
    11861281                    }
    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;
    11921291
    11931292                    pbDecompressed = NULL;
    11941293                    rc = VINF_SUCCESS;
    11951294                }
    1196                 else
    1197                 {
    1198                     RTTestIFailed("Uneven decompressed data size: %#zx vs entry size %#zx -> %#zx", off, cbEntry, off % cbEntry);
    1199                     rc = VERR_IO_BAD_LENGTH;
    1200                 }
    12011295            }
    12021296            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);
    12041299            RTMemFree(pbDecompressed);
    12051300        }
    12061301        else
    12071302        {
    1208             RTTestIFailed("Out of memory decompressing test data");
     1303            RTTestIFailed("Out of memory decompressing test data '%s'", pszWhat);
    12091304            rc = VERR_NO_MEMORY;
    12101305        }
     
    12161311
    12171312#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. */
     1318static 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. */
    12231332static 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)
    12251334{
    12261335    if (SubTestAndCheckIfEnabled(pszName))
    12271336    {
    1228         int const rc = DecompressBinaryTest(pvCompressed, cbCompressed, cbEntry, ppvTests, pcTests);
     1337        int const rc = DecompressBinaryTest(pvCompressed, cbCompressed, cbEntry, pszName, ppvTests, pcTests, pInfo);
    12291338        if (RT_SUCCESS(rc))
    12301339            return true;
     
    12351344#define SUBTEST_CHECK_IF_ENABLED_AND_DECOMPRESS(a_Entry) \
    12361345    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)
    12381348
    12391349
     
    16031713    return RTEXITCODE_SUCCESS; \
    16041714} \
    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 }
     1715DUMP_ALL_FN(BinU ## a_cBits, g_aBinU ## a_cBits)
    16121716
    16131717#else
     
    17091813            pfn = a_aSubTests[iFn].pfnNative; \
    17101814        } \
     1815        FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \
    17111816    } \
    17121817}
     
    19632068            BINU ## a_cBits ## _TEST_T const   *paTests; \
    19642069            uint32_t                            cTests; \
     2070            IEMTESTENTRYINFO                    Info; \
    19652071        } s_aFuncs[] = \
    19662072        { \
     
    19902096                                 EFlagsDiff(fEfl, paTests[iTest].fEflOut)); \
    19912097            } \
     2098           FREE_DECOMPRESSED_TESTS(s_aFuncs[iFn]); \
    19922099        } \
    19932100    } while(0)
     
    20162123            BINU ## a_cBits ## _TEST_T const       *paTests; \
    20172124            uint32_t                                cTests; \
     2125            IEMTESTENTRYINFO                        Info; \
    20182126        } s_aFuncs[] = \
    20192127        { \
     
    20612169                                 EFlagsDiff(fEfl, fEflExpect)); \
    20622170            } \
     2171            FREE_DECOMPRESSED_TESTS(s_aFuncs[iFn]); \
    20632172        } \
    20642173    } while(0)
     
    22382347    return RTEXITCODE_SUCCESS; \
    22392348} \
    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 }
     2349DUMP_ALL_FN(ShiftDblU ## a_cBits, a_aSubTests)
    22462350
    22472351#else
     
    22982402            pfn = a_aSubTests[iFn].pfnNative; \
    22992403        } \
     2404        FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \
    23002405    } \
    23012406}
     
    23632468    return RTEXITCODE_SUCCESS; \
    23642469} \
    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 }
     2470DUMP_ALL_FN(UnaryU ## a_cBits, g_aUnaryU ## a_cBits)
    23712471#else
    23722472# define GEN_UNARY(a_cBits, a_Type, a_Fmt, a_TestType, a_SubTestType)
     
    24182518            } \
    24192519        } \
     2520        FREE_DECOMPRESSED_TESTS(g_aUnaryU ## a_cBits[iFn]); \
    24202521    } \
    24212522}
     
    24982599    return RTEXITCODE_SUCCESS; \
    24992600} \
    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 }
     2601DUMP_ALL_FN(ShiftU ## a_cBits, a_aSubTests)
    25062602#else
    25072603# define GEN_SHIFT(a_cBits, a_Fmt, a_TestType, a_aSubTests)
     
    25662662            pfn = a_aSubTests[iFn].pfnNative; \
    25672663        } \
     2664        FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \
    25682665    } \
    25692666}
     
    26322729
    26332730#ifdef TSTIEMAIMPL_WITH_GENERATOR
     2731DUMP_ALL_FN(MulDivU8, g_aMulDivU8)
    26342732static RTEXITCODE MulDivU8Generate(uint32_t cTests, const char * const * papszNameFmts)
    26352733{
     
    26542752        AssertReturn(GenerateBinaryClose(&BinOut), RTEXITCODE_FAILURE);
    26552753    }
    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);
    26622754    return RTEXITCODE_SUCCESS;
    26632755}
     
    27052797            pfn = g_aMulDivU8[iFn].pfnNative;
    27062798        }
     2799        FREE_DECOMPRESSED_TESTS(g_aMulDivU8[iFn]); \
    27072800    }
    27082801}
     
    27102803#ifdef TSTIEMAIMPL_WITH_GENERATOR
    27112804# define GEN_MULDIV(a_cBits, a_Fmt, a_TestType, a_aSubTests) \
     2805DUMP_ALL_FN(MulDivU ## a_cBits, a_aSubTests) \
    27122806static RTEXITCODE MulDivU ## a_cBits ## Generate(uint32_t cTests, const char * const * papszNameFmts) \
    27132807{ \
     
    27352829    } \
    27362830    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}
    27452832#else
    27462833# define GEN_MULDIV(a_cBits, a_Fmt, a_TestType, a_aSubTests)
     
    28112898            pfn = a_aSubTests[iFn].pfnNative; \
    28122899        } \
     2900        FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \
    28132901    } \
    28142902}
     
    29393027    return RTEXITCODE_SUCCESS;
    29403028}
    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 }
     3029DUMP_ALL_FN(FpuLdConst, g_aFpuLdConst)
    29483030#endif
    29493031
    2950 static void FpuLoadConstTest(void)
     3032static void FpuLdConstTest(void)
    29513033{
    29523034    /*
     
    29893071            pfn = g_aFpuLdConst[iFn].pfnNative;
    29903072        }
     3073
     3074        FREE_DECOMPRESSED_TESTS(g_aFpuLdConst[iFn]);
    29913075    }
    29923076}
     
    30253109    return RTEXITCODE_SUCCESS; \
    30263110} \
    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 }
     3111DUMP_ALL_FN(FpuLdR ## a_cBits, a_aSubTests)
    30333112#else
    30343113# define GEN_FPU_LOAD(a_cBits, a_rdTypeIn, a_aSubTests, a_TestType)
     
    30843163            pfn = a_aSubTests[iFn].pfnNative; \
    30853164        } \
     3165        \
     3166        FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \
    30863167    } \
    30873168}
     
    31533234    return RTEXITCODE_SUCCESS; \
    31543235} \
    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 }
     3236DUMP_ALL_FN(FpuLdI ## a_cBits, a_aSubTests)
    31613237#else
    31623238# define GEN_FPU_LOAD_INT(a_cBits, a_iTypeIn, a_szFmtIn, a_aSubTests, a_TestType)
     
    32113287            pfn = a_aSubTests[iFn].pfnNative; \
    32123288        } \
     3289        FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \
    32133290    } \
    32143291}
     
    32883365    return RTEXITCODE_SUCCESS;
    32893366}
    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 }
     3367DUMP_ALL_FN(FpuLdD80, g_aFpuLdD80)
    32963368#endif
    32973369
     
    33343406            pfn = g_aFpuLdD80[iFn].pfnNative;
    33353407        }
     3408
     3409        FREE_DECOMPRESSED_TESTS(g_aFpuLdD80[iFn]);
    33363410    }
    33373411}
     
    34023476    return RTEXITCODE_SUCCESS; \
    34033477} \
    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 }
     3478DUMP_ALL_FN(FpuStR ## a_cBits, a_aSubTests)
    34103479#else
    34113480# define GEN_FPU_STORE(a_cBits, a_rdType, a_aSubTests, a_TestType)
     
    34653534            pfn = a_aSubTests[iFn].pfnNative; \
    34663535        } \
     3536        FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \
    34673537    } \
    34683538}
     
    36623732    return RTEXITCODE_SUCCESS; \
    36633733} \
    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 }
     3734DUMP_ALL_FN(FpuStI ## a_cBits, a_aSubTests)
    36703735#else
    36713736# define GEN_FPU_STORE_INT(a_cBits, a_iType, a_szFmt, a_aSubTests, a_TestType)
     
    37133778            pfn = a_aSubTests[iFn].pfnNative; \
    37143779        } \
     3780        FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \
    37153781    } \
    37163782}
     
    38163882    return RTEXITCODE_SUCCESS;
    38173883}
    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 }
     3884DUMP_ALL_FN(FpuStD80, g_aFpuStD80)
    38253885#endif
    38263886
     
    38653925            pfn = g_aFpuStD80[iFn].pfnNative;
    38663926        }
     3927
     3928        FREE_DECOMPRESSED_TESTS(g_aFpuStD80[iFn]);
    38673929    }
    38683930}
     
    40954157    return RTEXITCODE_SUCCESS;
    40964158}
    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 }
     4159DUMP_ALL_FN(FpuBinaryR80, g_aFpuBinaryR80)
    41044160#endif
    41054161
     
    41444200            pfn = g_aFpuBinaryR80[iFn].pfnNative;
    41454201        }
     4202
     4203        FREE_DECOMPRESSED_TESTS(g_aFpuBinaryR80[iFn]);
    41464204    }
    41474205}
     
    42274285    return RTEXITCODE_SUCCESS; \
    42284286} \
    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 }
     4287DUMP_ALL_FN(FpuBinary ## a_UpBits, a_aSubTests)
    42354288#else
    42364289# define GEN_FPU_BINARY_SMALL(a_fIntType, a_cBits, a_LoBits, a_UpBits, a_Type2, a_aSubTests, a_TestType)
     
    42914344            pfn = a_aSubTests[iFn].pfnNative; \
    42924345        } \
     4346        FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \
    42934347    } \
    42944348}
     
    43724426    return RTEXITCODE_SUCCESS; \
    43734427} \
    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 }
     4428DUMP_ALL_FN(FpuBinaryFsw ## a_UpBits, a_aSubTests)
    43804429#else
    43814430# define GEN_FPU_BINARY_FSW(a_fIntType, a_cBits, a_UpBits, a_Type2, a_aSubTests, a_TestType)
     
    44284477            pfn = a_aSubTests[iFn].pfnNative; \
    44294478        } \
     4479        FREE_DECOMPRESSED_TESTS(a_aSubTests[iFn]); \
    44304480    } \
    44314481}
     
    44974547    return RTEXITCODE_SUCCESS;
    44984548}
    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 }
     4549DUMP_ALL_FN(FpuBinaryEflR80, g_aFpuBinaryEflR80)
    45064550#endif /*TSTIEMAIMPL_WITH_GENERATOR*/
    45074551
     
    45444588            pfn = g_aFpuBinaryEflR80[iFn].pfnNative;
    45454589        }
     4590
     4591        FREE_DECOMPRESSED_TESTS(g_aFpuBinaryEflR80[iFn]);
    45464592    }
    45474593}
     
    45874633}
    45884634
     4635DUMP_ALL_FN(FpuUnaryR80, g_aFpuUnaryR80)
    45894636static RTEXITCODE FpuUnaryR80Generate(uint32_t cTests, const char * const *papszNameFmts)
    45904637{
     
    47014748        AssertReturn(GenerateBinaryClose(&BinOut), RTEXITCODE_FAILURE);
    47024749    }
    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);
    47104750    return RTEXITCODE_SUCCESS;
    47114751}
     
    47984838        if (cPossibleRndErrs > 0)
    47994839            RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "rounding errors: %u out of %u\n", cRndErrs, cPossibleRndErrs);
     4840        FREE_DECOMPRESSED_TESTS(g_aFpuUnaryR80[iFn]);
    48004841    }
    48014842}
     
    48844925    return RTEXITCODE_SUCCESS;
    48854926}
    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 }
     4927DUMP_ALL_FN(FpuUnaryFswR80, g_aFpuUnaryFswR80)
    48934928#endif
    48944929
     
    49314966            pfn = g_aFpuUnaryFswR80[iFn].pfnNative;
    49324967        }
     4968
     4969        FREE_DECOMPRESSED_TESTS(g_aFpuUnaryFswR80[iFn]);
    49334970    }
    49344971}
     
    50575094    return RTEXITCODE_SUCCESS;
    50585095}
    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 }
     5096DUMP_ALL_FN(FpuUnaryTwoR80, g_aFpuUnaryTwoR80)
    50665097#endif
    50675098
     
    51075138            pfn = g_aFpuUnaryTwoR80[iFn].pfnNative;
    51085139        }
     5140
     5141        FREE_DECOMPRESSED_TESTS(g_aFpuUnaryTwoR80[iFn]);
    51095142    }
    51105143}
     
    51365169
    51375170#ifdef TSTIEMAIMPL_WITH_GENERATOR
    5138 static RTEXITCODE SseBinaryR32Generate(const char *pszDataFileFmt, uint32_t cTests)
     5171DUMP_ALL_FN(SseBinaryR32, g_aSseBinaryR32)
     5172static RTEXITCODE SseBinaryR32Generate(uint32_t cTests, const char * const *papszNameFmts)
    51395173{
    51405174    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    51555189
    51565190        IEMBINARYOUTPUT BinOut;
    5157         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR32[iFn].pszName), RTEXITCODE_FAILURE);
     5191        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR32[iFn]), RTEXITCODE_FAILURE);
    51585192
    51595193        uint32_t cNormalInputPairs  = 0;
     
    53005334            pfn = g_aSseBinaryR32[iFn].pfnNative;
    53015335        }
     5336
     5337        FREE_DECOMPRESSED_TESTS(g_aSseBinaryR32[iFn]);
    53025338    }
    53035339}
     
    53255361
    53265362#ifdef TSTIEMAIMPL_WITH_GENERATOR
    5327 static RTEXITCODE SseBinaryR64Generate(const char *pszDataFileFmt, uint32_t cTests)
     5363DUMP_ALL_FN(SseBinaryR64, g_aSseBinaryR32)
     5364static RTEXITCODE SseBinaryR64Generate(uint32_t cTests, const char * const *papszNameFmts)
    53285365{
    53295366    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    53445381
    53455382        IEMBINARYOUTPUT BinOut;
    5346         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR64[iFn].pszName), RTEXITCODE_FAILURE);
     5383        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR64[iFn]), RTEXITCODE_FAILURE);
    53475384
    53485385        uint32_t cNormalInputPairs  = 0;
     
    54785515            pfn = g_aSseBinaryR64[iFn].pfnNative;
    54795516        }
     5517
     5518        FREE_DECOMPRESSED_TESTS(g_aSseBinaryR64[iFn]);
    54805519    }
    54815520}
     
    55005539
    55015540#ifdef TSTIEMAIMPL_WITH_GENERATOR
    5502 static RTEXITCODE SseBinaryU128R32Generate(const char *pszDataFileFmt, uint32_t cTests)
     5541DUMP_ALL_FN(SseBinaryU128R32, g_aSseBinaryU128R32)
     5542static RTEXITCODE SseBinaryU128R32Generate(uint32_t cTests, const char * const *papszNameFmts)
    55035543{
    55045544    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    55185558
    55195559        IEMBINARYOUTPUT BinOut;
    5520         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryU128R32[iFn].pszName), RTEXITCODE_FAILURE);
     5560        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryU128R32[iFn]), RTEXITCODE_FAILURE);
    55215561
    55225562        uint32_t cNormalInputPairs  = 0;
     
    56595699            }
    56605700        }
     5701
     5702        FREE_DECOMPRESSED_TESTS(g_aSseBinaryU128R32[iFn]);
    56615703    }
    56625704}
     
    56815723
    56825724#ifdef TSTIEMAIMPL_WITH_GENERATOR
    5683 static RTEXITCODE SseBinaryU128R64Generate(const char *pszDataFileFmt, uint32_t cTests)
     5725DUMP_ALL_FN(SseBinaryU128R64, g_aSseBinaryU128R64)
     5726static RTEXITCODE SseBinaryU128R64Generate(uint32_t cTests, const char * const *papszNameFmts)
    56845727{
    56855728    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    56995742
    57005743        IEMBINARYOUTPUT BinOut;
    5701         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryU128R64[iFn].pszName), RTEXITCODE_FAILURE);
     5744        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryU128R64[iFn]), RTEXITCODE_FAILURE);
    57025745
    57035746        uint32_t cNormalInputPairs  = 0;
     
    58315874            }
    58325875        }
     5876
     5877        FREE_DECOMPRESSED_TESTS(g_aSseBinaryU128R64[iFn]);
    58335878    }
    58345879}
     
    58475892
    58485893#ifdef TSTIEMAIMPL_WITH_GENERATOR
    5849 static RTEXITCODE SseBinaryI32R64Generate(const char *pszDataFileFmt, uint32_t cTests)
     5894DUMP_ALL_FN(SseBinaryI32R64, g_aSseBinaryI32R64)
     5895static RTEXITCODE SseBinaryI32R64Generate(uint32_t cTests, const char * const *papszNameFmts)
    58505896{
    58515897    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    58655911
    58665912        IEMBINARYOUTPUT BinOut;
    5867         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryI32R64[iFn].pszName), RTEXITCODE_FAILURE);
     5913        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryI32R64[iFn]), RTEXITCODE_FAILURE);
    58685914
    58695915        uint32_t cNormalInputPairs  = 0;
     
    59906036            }
    59916037        }
     6038
     6039        FREE_DECOMPRESSED_TESTS(g_aSseBinaryI32R64[iFn]);
    59926040    }
    59936041}
     
    60066054
    60076055#ifdef TSTIEMAIMPL_WITH_GENERATOR
    6008 static RTEXITCODE SseBinaryI64R64Generate(const char *pszDataFileFmt, uint32_t cTests)
     6056DUMP_ALL_FN(SseBinaryI64R64, g_aSseBinaryI64R64)
     6057static RTEXITCODE SseBinaryI64R64Generate(uint32_t cTests, const char * const *papszNameFmts)
    60096058{
    60106059    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    60246073
    60256074        IEMBINARYOUTPUT BinOut;
    6026         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryI64R64[iFn].pszName), RTEXITCODE_FAILURE);
     6075        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryI64R64[iFn]), RTEXITCODE_FAILURE);
    60276076
    60286077        uint32_t cNormalInputPairs  = 0;
     
    61496198            }
    61506199        }
     6200
     6201        FREE_DECOMPRESSED_TESTS(g_aSseBinaryI64R64[iFn]);
    61516202    }
    61526203}
     
    61656216
    61666217#ifdef TSTIEMAIMPL_WITH_GENERATOR
    6167 static RTEXITCODE SseBinaryI32R32Generate(const char *pszDataFileFmt, uint32_t cTests)
     6218DUMP_ALL_FN(SseBinaryI32R32, g_aSseBinaryI32R32)
     6219static RTEXITCODE SseBinaryI32R32Generate(uint32_t cTests, const char * const *papszNameFmts)
    61686220{
    61696221    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    61836235
    61846236        IEMBINARYOUTPUT BinOut;
    6185         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryI32R32[iFn].pszName), RTEXITCODE_FAILURE);
     6237        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryI32R32[iFn]), RTEXITCODE_FAILURE);
    61866238
    61876239        uint32_t cNormalInputPairs  = 0;
     
    63086360            }
    63096361        }
     6362
     6363        FREE_DECOMPRESSED_TESTS(g_aSseBinaryI32R32[iFn]);
    63106364    }
    63116365}
     
    63246378
    63256379#ifdef TSTIEMAIMPL_WITH_GENERATOR
    6326 static RTEXITCODE SseBinaryI64R32Generate(const char *pszDataFileFmt, uint32_t cTests)
     6380DUMP_ALL_FN(SseBinaryI64R32, g_aSseBinaryI64R32)
     6381static RTEXITCODE SseBinaryI64R32Generate(uint32_t cTests, const char * const *papszNameFmts)
    63276382{
    63286383    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    63426397
    63436398        IEMBINARYOUTPUT BinOut;
    6344         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryI64R32[iFn].pszName), RTEXITCODE_FAILURE);
     6399        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryI64R32[iFn]), RTEXITCODE_FAILURE);
    63456400
    63466401        uint32_t cNormalInputPairs  = 0;
     
    64676522            }
    64686523        }
     6524
     6525        FREE_DECOMPRESSED_TESTS(g_aSseBinaryI64R32[iFn]);
    64696526    }
    64706527}
     
    64826539
    64836540#ifdef TSTIEMAIMPL_WITH_GENERATOR
    6484 static RTEXITCODE SseBinaryR64I32Generate(const char *pszDataFileFmt, uint32_t cTests)
     6541DUMP_ALL_FN(SseBinaryR64I32, g_aSseBinaryR64I32)
     6542static RTEXITCODE SseBinaryR64I32Generate(uint32_t cTests, const char * const *papszNameFmts)
    64856543{
    64866544    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    65006558
    65016559        IEMBINARYOUTPUT BinOut;
    6502         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR64I32[iFn].pszName), RTEXITCODE_FAILURE);
     6560        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR64I32[iFn]), RTEXITCODE_FAILURE);
    65036561
    65046562        for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1)
     
    66166674            }
    66176675        }
     6676
     6677        FREE_DECOMPRESSED_TESTS(g_aSseBinaryR64I32[iFn]);
    66186678    }
    66196679}
     
    66316691
    66326692#ifdef TSTIEMAIMPL_WITH_GENERATOR
    6633 static RTEXITCODE SseBinaryR64I64Generate(const char *pszDataFileFmt, uint32_t cTests)
     6693DUMP_ALL_FN(SseBinaryR64I64, g_aSseBinaryR64I64)
     6694static RTEXITCODE SseBinaryR64I64Generate(uint32_t cTests, const char * const *papszNameFmts)
    66346695{
    66356696    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    66496710
    66506711        IEMBINARYOUTPUT BinOut;
    6651         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR64I64[iFn].pszName), RTEXITCODE_FAILURE);
     6712        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR64I64[iFn]), RTEXITCODE_FAILURE);
    66526713
    66536714        for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1)
     
    67656826            }
    67666827        }
     6828
     6829        FREE_DECOMPRESSED_TESTS(g_aSseBinaryR64I64[iFn]);
    67676830    }
    67686831}
     
    67806843
    67816844#ifdef TSTIEMAIMPL_WITH_GENERATOR
    6782 static RTEXITCODE SseBinaryR32I32Generate(const char *pszDataFileFmt, uint32_t cTests)
     6845DUMP_ALL_FN(SseBinaryR32I32, g_aSseBinaryR32I32)
     6846static RTEXITCODE SseBinaryR32I32Generate(uint32_t cTests, const char * const *papszNameFmts)
    67836847{
    67846848    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    67986862
    67996863        IEMBINARYOUTPUT BinOut;
    6800         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR32I32[iFn].pszName), RTEXITCODE_FAILURE);
     6864        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR32I32[iFn]), RTEXITCODE_FAILURE);
    68016865
    68026866        for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1)
     
    69146978            }
    69156979        }
     6980
     6981        FREE_DECOMPRESSED_TESTS(g_aSseBinaryR32I32[iFn]);
    69166982    }
    69176983}
     
    69296995
    69306996#ifdef TSTIEMAIMPL_WITH_GENERATOR
    6931 static RTEXITCODE SseBinaryR32I64Generate(const char *pszDataFileFmt, uint32_t cTests)
     6997DUMP_ALL_FN(SseBinaryR32I64, g_aSseBinaryR32I64)
     6998static RTEXITCODE SseBinaryR32I64Generate(uint32_t cTests, const char * const *papszNameFmts)
    69326999{
    69337000    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    69477014
    69487015        IEMBINARYOUTPUT BinOut;
    6949         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseBinaryR32I64[iFn].pszName), RTEXITCODE_FAILURE);
     7016        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseBinaryR32I64[iFn]), RTEXITCODE_FAILURE);
    69507017
    69517018        for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1)
     
    70637130            }
    70647131        }
     7132
     7133        FREE_DECOMPRESSED_TESTS(g_aSseBinaryR32I64[iFn]);
    70657134    }
    70667135}
     
    70817150
    70827151#ifdef TSTIEMAIMPL_WITH_GENERATOR
    7083 static RTEXITCODE SseCompareEflR32R32Generate(const char *pszDataFileFmt, uint32_t cTests)
     7152DUMP_ALL_FN(SseCompareEflR32R32, g_aSseCompareEflR32R32)
     7153static RTEXITCODE SseCompareEflR32R32Generate(uint32_t cTests, const char * const *papszNameFmts)
    70847154{
    70857155    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    71047174
    71057175        IEMBINARYOUTPUT BinOut;
    7106         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseCompareEflR32R32[iFn].pszName), RTEXITCODE_FAILURE);
     7176        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseCompareEflR32R32[iFn]), RTEXITCODE_FAILURE);
    71077177
    71087178        uint32_t cNormalInputPairs  = 0;
     
    72467316            }
    72477317        }
     7318
     7319        FREE_DECOMPRESSED_TESTS(g_aSseCompareEflR32R32[iFn]);
    72487320    }
    72497321}
     
    72647336
    72657337#ifdef TSTIEMAIMPL_WITH_GENERATOR
    7266 static RTEXITCODE SseCompareEflR64R64Generate(const char *pszDataFileFmt, uint32_t cTests)
     7338DUMP_ALL_FN(SseCompareEflR64R64, g_aSseCompareEflR64R64)
     7339static RTEXITCODE SseCompareEflR64R64Generate(uint32_t cTests, const char * const *papszNameFmts)
    72677340{
    72687341    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    72877360
    72887361        IEMBINARYOUTPUT BinOut;
    7289         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseCompareEflR64R64[iFn].pszName), RTEXITCODE_FAILURE);
     7362        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseCompareEflR64R64[iFn]), RTEXITCODE_FAILURE);
    72907363
    72917364        uint32_t cNormalInputPairs  = 0;
     
    74297502            }
    74307503        }
     7504
     7505        FREE_DECOMPRESSED_TESTS(g_aSseCompareEflR64R64[iFn]);
    74317506    }
    74327507}
     
    74487523
    74497524#ifdef TSTIEMAIMPL_WITH_GENERATOR
    7450 static RTEXITCODE SseCompareF2XmmR32Imm8Generate(const char *pszDataFileFmt, uint32_t cTests)
     7525DUMP_ALL_FN(SseCompareF2XmmR32Imm8, g_aSseCompareF2XmmR32Imm8)
     7526static RTEXITCODE SseCompareF2XmmR32Imm8Generate(uint32_t cTests, const char * const *papszNameFmts)
    74517527{
    74527528    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    74717547
    74727548        IEMBINARYOUTPUT BinOut;
    7473         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseCompareF2XmmR32Imm8[iFn].pszName), RTEXITCODE_FAILURE);
     7549        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseCompareF2XmmR32Imm8[iFn]), RTEXITCODE_FAILURE);
    74747550
    74757551        uint32_t cNormalInputPairs  = 0;
     
    76367712            }
    76377713        }
     7714
     7715        FREE_DECOMPRESSED_TESTS(g_aSseCompareF2XmmR32Imm8[iFn]);
    76387716    }
    76397717}
     
    76507728
    76517729#ifdef TSTIEMAIMPL_WITH_GENERATOR
    7652 static RTEXITCODE SseCompareF2XmmR64Imm8Generate(const char *pszDataFileFmt, uint32_t cTests)
     7730DUMP_ALL_FN(SseCompareF2XmmR64Imm8, g_aSseCompareF2XmmR64Imm8)
     7731static RTEXITCODE SseCompareF2XmmR64Imm8Generate(uint32_t cTests, const char * const *papszNameFmts)
    76537732{
    76547733    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    76737752
    76747753        IEMBINARYOUTPUT BinOut;
    7675         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseCompareF2XmmR64Imm8[iFn].pszName), RTEXITCODE_FAILURE);
     7754        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseCompareF2XmmR64Imm8[iFn]), RTEXITCODE_FAILURE);
    76767755
    76777756        uint32_t cNormalInputPairs  = 0;
     
    78237902            }
    78247903        }
     7904
     7905        FREE_DECOMPRESSED_TESTS(g_aSseCompareF2XmmR64Imm8[iFn]);
    78257906    }
    78267907}
     
    78387919
    78397920#ifdef TSTIEMAIMPL_WITH_GENERATOR
    7840 static RTEXITCODE SseConvertXmmI32R32Generate(const char *pszDataFileFmt, uint32_t cTests)
     7921DUMP_ALL_FN(SseConvertXmmI32R32, g_aSseConvertXmmI32R32)
     7922static RTEXITCODE SseConvertXmmI32R32Generate(uint32_t cTests, const char * const *papszNameFmts)
    78417923{
    78427924    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    78587940
    78597941        IEMBINARYOUTPUT BinOut;
    7860         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmI32R32[iFn].pszName), RTEXITCODE_FAILURE);
     7942        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmI32R32[iFn]), RTEXITCODE_FAILURE);
    78617943
    78627944        X86FXSTATE State;
     
    79898071            }
    79908072        }
     8073
     8074        FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmI32R32[iFn]);
    79918075    }
    79928076}
     
    80038087
    80048088#ifdef TSTIEMAIMPL_WITH_GENERATOR
    8005 static RTEXITCODE SseConvertXmmR32I32Generate(const char *pszDataFileFmt, uint32_t cTests)
     8089DUMP_ALL_FN(SseConvertXmmR32I32, g_aSseConvertXmmR32I32)
     8090static RTEXITCODE SseConvertXmmR32I32Generate(uint32_t cTests, const char * const *papszNameFmts)
    80068091{
    80078092    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    80248109
    80258110        IEMBINARYOUTPUT BinOut;
    8026         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmR32I32[iFn].pszName), RTEXITCODE_FAILURE);
     8111        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmR32I32[iFn]), RTEXITCODE_FAILURE);
    80278112
    80288113        uint32_t cNormalInputPairs  = 0;
     
    81658250            }
    81668251        }
     8252
     8253        FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmR32I32[iFn]);
    81678254    }
    81688255}
     
    81788265
    81798266#ifdef TSTIEMAIMPL_WITH_GENERATOR
    8180 static RTEXITCODE SseConvertXmmI32R64Generate(const char *pszDataFileFmt, uint32_t cTests)
     8267DUMP_ALL_FN(SseConvertXmmI32R64, g_aSseConvertXmmI32R64)
     8268static RTEXITCODE SseConvertXmmI32R64Generate(uint32_t cTests, const char * const *papszNameFmts)
    81818269{
    81828270    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    81988286
    81998287        IEMBINARYOUTPUT BinOut;
    8200         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmI32R64[iFn].pszName), RTEXITCODE_FAILURE);
     8288        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmI32R64[iFn]), RTEXITCODE_FAILURE);
    82018289
    82028290        X86FXSTATE State;
     
    83238411            }
    83248412        }
     8413
     8414        FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmI32R64[iFn]);
    83258415    }
    83268416}
     
    83378427
    83388428#ifdef TSTIEMAIMPL_WITH_GENERATOR
    8339 static RTEXITCODE SseConvertXmmR64I32Generate(const char *pszDataFileFmt, uint32_t cTests)
     8429DUMP_ALL_FN(SseConvertXmmR64I32, g_aSseConvertXmmR64I32)
     8430static RTEXITCODE SseConvertXmmR64I32Generate(uint32_t cTests, const char * const *papszNameFmts)
    83408431{
    83418432    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    83588449
    83598450        IEMBINARYOUTPUT BinOut;
    8360         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmR64I32[iFn].pszName), RTEXITCODE_FAILURE);
     8451        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmR64I32[iFn]), RTEXITCODE_FAILURE);
    83618452
    83628453        uint32_t cNormalInputPairs  = 0;
     
    84948585            }
    84958586        }
     8587
     8588        FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmR64I32[iFn]);
    84968589    }
    84978590}
     
    85108603
    85118604#ifdef TSTIEMAIMPL_WITH_GENERATOR
    8512 static RTEXITCODE SseConvertMmXmmGenerate(const char *pszDataFileFmt, uint32_t cTests)
     8605DUMP_ALL_FN(SseConvertMmXmm, g_aSseConvertMmXmm)
     8606static RTEXITCODE SseConvertMmXmmGenerate(uint32_t cTests, const char * const *papszNameFmts)
    85138607{
    85148608    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    85298623
    85308624        IEMBINARYOUTPUT BinOut;
    8531         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertMmXmm[iFn].pszName), RTEXITCODE_FAILURE);
     8625        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertMmXmm[iFn]), RTEXITCODE_FAILURE);
    85328626
    85338627        uint32_t cNormalInputPairs  = 0;
     
    86628756            }
    86638757        }
     8758
     8759        FREE_DECOMPRESSED_TESTS(g_aSseConvertMmXmm[iFn]);
    86648760    }
    86658761}
     
    86778773
    86788774#ifdef TSTIEMAIMPL_WITH_GENERATOR
    8679 static RTEXITCODE SseConvertXmmR64MmGenerate(const char *pszDataFileFmt, uint32_t cTests)
     8775DUMP_ALL_FN(SseConvertXmmR64Mm, g_aSseConvertXmmR64Mm)
     8776static RTEXITCODE SseConvertXmmR64MmGenerate(uint32_t cTests, const char * const *papszNameFmts)
    86808777{
    86818778    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    86938790
    86948791        IEMBINARYOUTPUT BinOut;
    8695         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmR64Mm[iFn].pszName), RTEXITCODE_FAILURE);
     8792        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmR64Mm[iFn]), RTEXITCODE_FAILURE);
    86968793
    86978794        for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1)
     
    88048901            }
    88058902        }
     8903
     8904        FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmR64Mm[iFn]);
    88068905    }
    88078906}
     
    88198918
    88208919#ifdef TSTIEMAIMPL_WITH_GENERATOR
    8821 static RTEXITCODE SseConvertXmmR32MmGenerate(const char *pszDataFileFmt, uint32_t cTests)
     8920DUMP_ALL_FN(SseConvertXmmR32Mm, g_aSseConvertXmmR32Mm)
     8921static RTEXITCODE SseConvertXmmR32MmGenerate(uint32_t cTests, const char * const *papszNameFmts)
    88228922{
    88238923    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    88358935
    88368936        IEMBINARYOUTPUT BinOut;
    8837         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertXmmR32Mm[iFn].pszName), RTEXITCODE_FAILURE);
     8937        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertXmmR32Mm[iFn]), RTEXITCODE_FAILURE);
    88388938
    88398939        for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1)
     
    89469046            }
    89479047        }
     9048
     9049        FREE_DECOMPRESSED_TESTS(g_aSseConvertXmmR32Mm[iFn]);
    89489050    }
    89499051}
     
    89629064
    89639065#ifdef TSTIEMAIMPL_WITH_GENERATOR
    8964 static RTEXITCODE SseConvertMmI32XmmR32Generate(const char *pszDataFileFmt, uint32_t cTests)
     9066DUMP_ALL_FN(SseConvertMmI32XmmR32, g_aSseConvertMmI32XmmR32)
     9067static RTEXITCODE SseConvertMmI32XmmR32Generate(uint32_t cTests, const char * const *papszNameFmts)
    89659068{
    89669069    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    89819084
    89829085        IEMBINARYOUTPUT BinOut;
    8983         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSseConvertMmI32XmmR32[iFn].pszName), RTEXITCODE_FAILURE);
     9086        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSseConvertMmI32XmmR32[iFn]), RTEXITCODE_FAILURE);
    89849087
    89859088        uint32_t cNormalInputPairs  = 0;
     
    91249227            }
    91259228        }
     9229
     9230        FREE_DECOMPRESSED_TESTS(g_aSseConvertMmI32XmmR32[iFn]);
    91269231    }
    91279232}
     
    91399244
    91409245#ifdef TSTIEMAIMPL_WITH_GENERATOR
    9141 static RTEXITCODE SseComparePcmpistriGenerate(const char *pszDataFileFmt, uint32_t cTests)
     9246DUMP_ALL_FN(SseComparePcmpistri, g_aSsePcmpistri)
     9247static RTEXITCODE SseComparePcmpistriGenerate(uint32_t cTests, const char * const *papszNameFmts)
    91429248{
    91439249    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    91549260
    91559261        IEMBINARYOUTPUT BinOut;
    9156         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSsePcmpistri[iFn].pszName), RTEXITCODE_FAILURE);
     9262        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSsePcmpistri[iFn]), RTEXITCODE_FAILURE);
    91579263
    91589264        for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1)
     
    92399345            }
    92409346        }
     9347
     9348        FREE_DECOMPRESSED_TESTS(g_aSsePcmpistri[iFn]);
    92419349    }
    92429350}
     
    92519359
    92529360#ifdef TSTIEMAIMPL_WITH_GENERATOR
    9253 static RTEXITCODE SseComparePcmpistrmGenerate(const char *pszDataFileFmt, uint32_t cTests)
     9361DUMP_ALL_FN(SseComparePcmpistrm, g_aSsePcmpistrm)
     9362static RTEXITCODE SseComparePcmpistrmGenerate(uint32_t cTests, const char * const *papszNameFmts)
    92549363{
    92559364    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    92669375
    92679376        IEMBINARYOUTPUT BinOut;
    9268         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSsePcmpistrm[iFn].pszName), RTEXITCODE_FAILURE);
     9377        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSsePcmpistrm[iFn]), RTEXITCODE_FAILURE);
    92699378
    92709379        for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1)
     
    93539462            }
    93549463        }
     9464
     9465        FREE_DECOMPRESSED_TESTS(g_aSsePcmpistrm[iFn]);
    93559466    }
    93569467}
     
    93659476
    93669477#ifdef TSTIEMAIMPL_WITH_GENERATOR
    9367 static RTEXITCODE SseComparePcmpestriGenerate(const char *pszDataFileFmt, uint32_t cTests)
     9478DUMP_ALL_FN(SseComparePcmpestri, g_aSsePcmpestri)
     9479static RTEXITCODE SseComparePcmpestriGenerate(uint32_t cTests, const char * const *papszNameFmts)
    93689480{
    93699481    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    93809492
    93819493        IEMBINARYOUTPUT BinOut;
    9382         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSsePcmpestri[iFn].pszName), RTEXITCODE_FAILURE);
     9494        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSsePcmpestri[iFn]), RTEXITCODE_FAILURE);
    93839495
    93849496        for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1)
     
    94789590            }
    94799591        }
     9592
     9593        FREE_DECOMPRESSED_TESTS(g_aSsePcmpestri[iFn]);
    94809594    }
    94819595}
     
    94909604
    94919605#ifdef TSTIEMAIMPL_WITH_GENERATOR
    9492 static RTEXITCODE SseComparePcmpestrmGenerate(const char *pszDataFileFmt, uint32_t cTests)
     9606DUMP_ALL_FN(SseComparePcmpestrm, g_aSsePcmpestrm)
     9607static RTEXITCODE SseComparePcmpestrmGenerate(uint32_t cTests, const char * const *papszNameFmts)
    94939608{
    94949609    cTests = RT_MAX(192, cTests); /* there are 144 standard input variations */
     
    95059620
    95069621        IEMBINARYOUTPUT BinOut;
    9507         AssertReturn(GenerateBinaryOpen(&BinOut, pszDataFileFmt, g_aSsePcmpestrm[iFn].pszName), RTEXITCODE_FAILURE);
     9622        AssertReturn(GENERATE_BINARY_OPEN(&BinOut, papszNameFmts, g_aSsePcmpestrm[iFn]), RTEXITCODE_FAILURE);
    95089623
    95099624        for (uint32_t iTest = 0; iTest < cTests + RT_ELEMENTS(s_aSpecials); iTest += 1)
     
    96059720            }
    96069721        }
     9722
     9723        FREE_DECOMPRESSED_TESTS(g_aSsePcmpestrm[iFn]);
    96079724    }
    96089725}
     
    96339750    enum { kModeNotSet, kModeTest, kModeGenerate, kModeDump }
    96349751                        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;
    96409761    bool                fCpuData      = true;
    96419762    bool                fCommonData   = true;
    9642     bool                fSseFpBinary  = true;
    9643     bool                fSseFpOther   = true;
    9644     bool                fSsePcmpxstrx = true;
    96459763    uint32_t const      cDefaultTests = 96;
    96469764    uint32_t            cTests        = cDefaultTests;
     
    97049822                fCpuData    = true;
    97059823                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;
    97149825                break;
    97159826            case 'z':
    97169827                fCpuData    = false;
    97179828                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;
    97269830                break;
    97279831
    97289832            case 'F':
    9729                 fFpuLdSt    = true;
     9833                fCategories |= CATEGORY_FPU_LD_ST;
    97309834                break;
    97319835            case 'O':
    9732                 fFpuOther   = true;
     9836                fCategories |= CATEGORY_FPU_OTHER;
    97339837                break;
    97349838            case 'B':
    9735                 fFpuBinary1 = true;
     9839                fCategories |= CATEGORY_FPU_BINARY_1;
    97369840                break;
    97379841            case 'P':
    9738                 fFpuBinary2 = true;
     9842                fCategories |= CATEGORY_FPU_BINARY_2;
    97399843                break;
    97409844            case 'S':
    9741                 fSseFpBinary = true;
     9845                fCategories |= CATEGORY_SSE_FP_BINARY;
    97429846                break;
    97439847            case 'T':
    9744                 fSseFpOther  = true;
     9848                fCategories |= CATEGORY_SSE_FP_OTHER;
    97459849                break;
    97469850            case 'C':
    9747                 fSsePcmpxstrx = true;
     9851                fCategories |= CATEGORY_SSE_PCMPXSTRX;
    97489852                break;
    97499853            case 'i':
    9750                 fInt        = true;
     9854                fCategories |= CATEGORY_INT;
    97519855                break;
    97529856
     
    98389942    }
    98399943
     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
    984010040    /*
    984110041     * Generate data?
     
    984910049        g_cZeroSrcTests = g_cZeroDstTests * 2;
    985010050
    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)
    985410064            {
    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            }
    1004510075        return RTEXITCODE_SUCCESS;
    1004610076#else
     
    1005010080
    1005110081    /*
    10052      * Dump tables.
     10082     * Dump tables (used for the conversion, mostly useless now).
    1005310083     */
    1005410084    if (enmMode == kModeDump)
    1005510085    {
    1005610086#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)
    1006010090            {
    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            }
    1017010101        return RTEXITCODE_SUCCESS;
    1017110102#else
     
    1017910110     * on both intel and AMD systems first.
    1018010111     */
    10181     rc = RTTestCreate("tstIEMAimpl", &g_hTest);
     10112    rc = RTTestCreate("tstIEMAImpl", &g_hTest);
    1018210113    AssertRCReturn(rc, RTEXITCODE_FAILURE);
    1018310114    if (enmMode == kModeTest)
     
    1020310134        if (RTTestErrorCount(g_hTest) == 0)
    1020410135        {
    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();
    1030210140        }
    1030310141        return RTTestSummaryAndDestroy(g_hTest);
  • trunk/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.S

    r103074 r103075  
    191191IEM_TEST_DATA and_u64_locked, "tstIEMAImplDataInt-and_u64_locked.bin.gz"
    192192IEM_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"
     193IEM_TEST_DATA bsf_u16_amd, "tstIEMAImplDataInt-bsf_u16_amd.bin.gz"
     194IEM_TEST_DATA bsf_u16_intel, "tstIEMAImplDataInt-bsf_u16_intel.bin.gz"
     195IEM_TEST_DATA bsf_u32_amd, "tstIEMAImplDataInt-bsf_u32_amd.bin.gz"
     196IEM_TEST_DATA bsf_u32_intel, "tstIEMAImplDataInt-bsf_u32_intel.bin.gz"
     197IEM_TEST_DATA bsf_u64_amd, "tstIEMAImplDataInt-bsf_u64_amd.bin.gz"
     198IEM_TEST_DATA bsf_u64_intel, "tstIEMAImplDataInt-bsf_u64_intel.bin.gz"
     199IEM_TEST_DATA bsr_u16_amd, "tstIEMAImplDataInt-bsr_u16_amd.bin.gz"
     200IEM_TEST_DATA bsr_u16_intel, "tstIEMAImplDataInt-bsr_u16_intel.bin.gz"
     201IEM_TEST_DATA bsr_u32_amd, "tstIEMAImplDataInt-bsr_u32_amd.bin.gz"
     202IEM_TEST_DATA bsr_u32_intel, "tstIEMAImplDataInt-bsr_u32_intel.bin.gz"
     203IEM_TEST_DATA bsr_u64_amd, "tstIEMAImplDataInt-bsr_u64_amd.bin.gz"
     204IEM_TEST_DATA bsr_u64_intel, "tstIEMAImplDataInt-bsr_u64_intel.bin.gz"
    205205IEM_TEST_DATA btc_u16, "tstIEMAImplDataInt-btc_u16.bin.gz"
    206206IEM_TEST_DATA btc_u16_locked, "tstIEMAImplDataInt-btc_u16_locked.bin.gz"
     
    236236IEM_TEST_DATA dec_u64, "tstIEMAImplDataInt-dec_u64.bin.gz"
    237237IEM_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"
     238IEM_TEST_DATA div_u8_amd, "tstIEMAImplDataInt-div_u8_amd.bin.gz"
     239IEM_TEST_DATA div_u8_intel, "tstIEMAImplDataInt-div_u8_intel.bin.gz"
     240IEM_TEST_DATA div_u16_amd, "tstIEMAImplDataInt-div_u16_amd.bin.gz"
     241IEM_TEST_DATA div_u16_intel, "tstIEMAImplDataInt-div_u16_intel.bin.gz"
     242IEM_TEST_DATA div_u32_amd, "tstIEMAImplDataInt-div_u32_amd.bin.gz"
     243IEM_TEST_DATA div_u32_intel, "tstIEMAImplDataInt-div_u32_intel.bin.gz"
     244IEM_TEST_DATA div_u64_amd, "tstIEMAImplDataInt-div_u64_amd.bin.gz"
     245IEM_TEST_DATA div_u64_intel, "tstIEMAImplDataInt-div_u64_intel.bin.gz"
     246IEM_TEST_DATA idiv_u8_amd, "tstIEMAImplDataInt-idiv_u8_amd.bin.gz"
     247IEM_TEST_DATA idiv_u8_intel, "tstIEMAImplDataInt-idiv_u8_intel.bin.gz"
     248IEM_TEST_DATA idiv_u16_amd, "tstIEMAImplDataInt-idiv_u16_amd.bin.gz"
     249IEM_TEST_DATA idiv_u16_intel, "tstIEMAImplDataInt-idiv_u16_intel.bin.gz"
     250IEM_TEST_DATA idiv_u32_amd, "tstIEMAImplDataInt-idiv_u32_amd.bin.gz"
     251IEM_TEST_DATA idiv_u32_intel, "tstIEMAImplDataInt-idiv_u32_intel.bin.gz"
     252IEM_TEST_DATA idiv_u64_amd, "tstIEMAImplDataInt-idiv_u64_amd.bin.gz"
     253IEM_TEST_DATA idiv_u64_intel, "tstIEMAImplDataInt-idiv_u64_intel.bin.gz"
     254IEM_TEST_DATA imul_two_u16_amd, "tstIEMAImplDataInt-imul_two_u16_amd.bin.gz"
     255IEM_TEST_DATA imul_two_u16_intel, "tstIEMAImplDataInt-imul_two_u16_intel.bin.gz"
     256IEM_TEST_DATA imul_two_u32_amd, "tstIEMAImplDataInt-imul_two_u32_amd.bin.gz"
     257IEM_TEST_DATA imul_two_u32_intel, "tstIEMAImplDataInt-imul_two_u32_intel.bin.gz"
     258IEM_TEST_DATA imul_two_u64_amd, "tstIEMAImplDataInt-imul_two_u64_amd.bin.gz"
     259IEM_TEST_DATA imul_two_u64_intel, "tstIEMAImplDataInt-imul_two_u64_intel.bin.gz"
     260IEM_TEST_DATA imul_u8_amd, "tstIEMAImplDataInt-imul_u8_amd.bin.gz"
     261IEM_TEST_DATA imul_u8_intel, "tstIEMAImplDataInt-imul_u8_intel.bin.gz"
     262IEM_TEST_DATA imul_u16_amd, "tstIEMAImplDataInt-imul_u16_amd.bin.gz"
     263IEM_TEST_DATA imul_u16_intel, "tstIEMAImplDataInt-imul_u16_intel.bin.gz"
     264IEM_TEST_DATA imul_u32_amd, "tstIEMAImplDataInt-imul_u32_amd.bin.gz"
     265IEM_TEST_DATA imul_u32_intel, "tstIEMAImplDataInt-imul_u32_intel.bin.gz"
     266IEM_TEST_DATA imul_u64_amd, "tstIEMAImplDataInt-imul_u64_amd.bin.gz"
     267IEM_TEST_DATA imul_u64_intel, "tstIEMAImplDataInt-imul_u64_intel.bin.gz"
    268268IEM_TEST_DATA inc_u8, "tstIEMAImplDataInt-inc_u8.bin.gz"
    269269IEM_TEST_DATA inc_u8_locked, "tstIEMAImplDataInt-inc_u8_locked.bin.gz"
     
    274274IEM_TEST_DATA inc_u64, "tstIEMAImplDataInt-inc_u64.bin.gz"
    275275IEM_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"
     276IEM_TEST_DATA mul_u8_amd, "tstIEMAImplDataInt-mul_u8_amd.bin.gz"
     277IEM_TEST_DATA mul_u8_intel, "tstIEMAImplDataInt-mul_u8_intel.bin.gz"
     278IEM_TEST_DATA mul_u16_amd, "tstIEMAImplDataInt-mul_u16_amd.bin.gz"
     279IEM_TEST_DATA mul_u16_intel, "tstIEMAImplDataInt-mul_u16_intel.bin.gz"
     280IEM_TEST_DATA mul_u32_amd, "tstIEMAImplDataInt-mul_u32_amd.bin.gz"
     281IEM_TEST_DATA mul_u32_intel, "tstIEMAImplDataInt-mul_u32_intel.bin.gz"
     282IEM_TEST_DATA mul_u64_amd, "tstIEMAImplDataInt-mul_u64_amd.bin.gz"
     283IEM_TEST_DATA mul_u64_intel, "tstIEMAImplDataInt-mul_u64_intel.bin.gz"
    284284IEM_TEST_DATA neg_u8, "tstIEMAImplDataInt-neg_u8.bin.gz"
    285285IEM_TEST_DATA neg_u8_locked, "tstIEMAImplDataInt-neg_u8_locked.bin.gz"
     
    306306IEM_TEST_DATA or_u64, "tstIEMAImplDataInt-or_u64.bin.gz"
    307307IEM_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"
     308IEM_TEST_DATA rcl_u8_amd, "tstIEMAImplDataInt-rcl_u8_amd.bin.gz"
     309IEM_TEST_DATA rcl_u8_intel, "tstIEMAImplDataInt-rcl_u8_intel.bin.gz"
     310IEM_TEST_DATA rcl_u16_amd, "tstIEMAImplDataInt-rcl_u16_amd.bin.gz"
     311IEM_TEST_DATA rcl_u16_intel, "tstIEMAImplDataInt-rcl_u16_intel.bin.gz"
     312IEM_TEST_DATA rcl_u32_amd, "tstIEMAImplDataInt-rcl_u32_amd.bin.gz"
     313IEM_TEST_DATA rcl_u32_intel, "tstIEMAImplDataInt-rcl_u32_intel.bin.gz"
     314IEM_TEST_DATA rcl_u64_amd, "tstIEMAImplDataInt-rcl_u64_amd.bin.gz"
     315IEM_TEST_DATA rcl_u64_intel, "tstIEMAImplDataInt-rcl_u64_intel.bin.gz"
     316IEM_TEST_DATA rcr_u8_amd, "tstIEMAImplDataInt-rcr_u8_amd.bin.gz"
     317IEM_TEST_DATA rcr_u8_intel, "tstIEMAImplDataInt-rcr_u8_intel.bin.gz"
     318IEM_TEST_DATA rcr_u16_amd, "tstIEMAImplDataInt-rcr_u16_amd.bin.gz"
     319IEM_TEST_DATA rcr_u16_intel, "tstIEMAImplDataInt-rcr_u16_intel.bin.gz"
     320IEM_TEST_DATA rcr_u32_amd, "tstIEMAImplDataInt-rcr_u32_amd.bin.gz"
     321IEM_TEST_DATA rcr_u32_intel, "tstIEMAImplDataInt-rcr_u32_intel.bin.gz"
     322IEM_TEST_DATA rcr_u64_amd, "tstIEMAImplDataInt-rcr_u64_amd.bin.gz"
     323IEM_TEST_DATA rcr_u64_intel, "tstIEMAImplDataInt-rcr_u64_intel.bin.gz"
     324IEM_TEST_DATA rol_u8_amd, "tstIEMAImplDataInt-rol_u8_amd.bin.gz"
     325IEM_TEST_DATA rol_u8_intel, "tstIEMAImplDataInt-rol_u8_intel.bin.gz"
     326IEM_TEST_DATA rol_u16_amd, "tstIEMAImplDataInt-rol_u16_amd.bin.gz"
     327IEM_TEST_DATA rol_u16_intel, "tstIEMAImplDataInt-rol_u16_intel.bin.gz"
     328IEM_TEST_DATA rol_u32_amd, "tstIEMAImplDataInt-rol_u32_amd.bin.gz"
     329IEM_TEST_DATA rol_u32_intel, "tstIEMAImplDataInt-rol_u32_intel.bin.gz"
     330IEM_TEST_DATA rol_u64_amd, "tstIEMAImplDataInt-rol_u64_amd.bin.gz"
     331IEM_TEST_DATA rol_u64_intel, "tstIEMAImplDataInt-rol_u64_intel.bin.gz"
     332IEM_TEST_DATA ror_u8_amd, "tstIEMAImplDataInt-ror_u8_amd.bin.gz"
     333IEM_TEST_DATA ror_u8_intel, "tstIEMAImplDataInt-ror_u8_intel.bin.gz"
     334IEM_TEST_DATA ror_u16_amd, "tstIEMAImplDataInt-ror_u16_amd.bin.gz"
     335IEM_TEST_DATA ror_u16_intel, "tstIEMAImplDataInt-ror_u16_intel.bin.gz"
     336IEM_TEST_DATA ror_u32_amd, "tstIEMAImplDataInt-ror_u32_amd.bin.gz"
     337IEM_TEST_DATA ror_u32_intel, "tstIEMAImplDataInt-ror_u32_intel.bin.gz"
     338IEM_TEST_DATA ror_u64_amd, "tstIEMAImplDataInt-ror_u64_amd.bin.gz"
     339IEM_TEST_DATA ror_u64_intel, "tstIEMAImplDataInt-ror_u64_intel.bin.gz"
     340IEM_TEST_DATA sar_u8_amd, "tstIEMAImplDataInt-sar_u8_amd.bin.gz"
     341IEM_TEST_DATA sar_u8_intel, "tstIEMAImplDataInt-sar_u8_intel.bin.gz"
     342IEM_TEST_DATA sar_u16_amd, "tstIEMAImplDataInt-sar_u16_amd.bin.gz"
     343IEM_TEST_DATA sar_u16_intel, "tstIEMAImplDataInt-sar_u16_intel.bin.gz"
     344IEM_TEST_DATA sar_u32_amd, "tstIEMAImplDataInt-sar_u32_amd.bin.gz"
     345IEM_TEST_DATA sar_u32_intel, "tstIEMAImplDataInt-sar_u32_intel.bin.gz"
     346IEM_TEST_DATA sar_u64_amd, "tstIEMAImplDataInt-sar_u64_amd.bin.gz"
     347IEM_TEST_DATA sar_u64_intel, "tstIEMAImplDataInt-sar_u64_intel.bin.gz"
    348348IEM_TEST_DATA sbb_u8, "tstIEMAImplDataInt-sbb_u8.bin.gz"
    349349IEM_TEST_DATA sbb_u8_locked, "tstIEMAImplDataInt-sbb_u8_locked.bin.gz"
     
    354354IEM_TEST_DATA sbb_u64, "tstIEMAImplDataInt-sbb_u64.bin.gz"
    355355IEM_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"
     356IEM_TEST_DATA shld_u16_amd, "tstIEMAImplDataInt-shld_u16_amd.bin.gz"
     357IEM_TEST_DATA shld_u16_intel, "tstIEMAImplDataInt-shld_u16_intel.bin.gz"
     358IEM_TEST_DATA shld_u32_amd, "tstIEMAImplDataInt-shld_u32_amd.bin.gz"
     359IEM_TEST_DATA shld_u32_intel, "tstIEMAImplDataInt-shld_u32_intel.bin.gz"
     360IEM_TEST_DATA shld_u64_amd, "tstIEMAImplDataInt-shld_u64_amd.bin.gz"
     361IEM_TEST_DATA shld_u64_intel, "tstIEMAImplDataInt-shld_u64_intel.bin.gz"
     362IEM_TEST_DATA shl_u8_amd, "tstIEMAImplDataInt-shl_u8_amd.bin.gz"
     363IEM_TEST_DATA shl_u8_intel, "tstIEMAImplDataInt-shl_u8_intel.bin.gz"
     364IEM_TEST_DATA shl_u16_amd, "tstIEMAImplDataInt-shl_u16_amd.bin.gz"
     365IEM_TEST_DATA shl_u16_intel, "tstIEMAImplDataInt-shl_u16_intel.bin.gz"
     366IEM_TEST_DATA shl_u32_amd, "tstIEMAImplDataInt-shl_u32_amd.bin.gz"
     367IEM_TEST_DATA shl_u32_intel, "tstIEMAImplDataInt-shl_u32_intel.bin.gz"
     368IEM_TEST_DATA shl_u64_amd, "tstIEMAImplDataInt-shl_u64_amd.bin.gz"
     369IEM_TEST_DATA shl_u64_intel, "tstIEMAImplDataInt-shl_u64_intel.bin.gz"
     370IEM_TEST_DATA shrd_u16_amd, "tstIEMAImplDataInt-shrd_u16_amd.bin.gz"
     371IEM_TEST_DATA shrd_u16_intel, "tstIEMAImplDataInt-shrd_u16_intel.bin.gz"
     372IEM_TEST_DATA shrd_u32_amd, "tstIEMAImplDataInt-shrd_u32_amd.bin.gz"
     373IEM_TEST_DATA shrd_u32_intel, "tstIEMAImplDataInt-shrd_u32_intel.bin.gz"
     374IEM_TEST_DATA shrd_u64_amd, "tstIEMAImplDataInt-shrd_u64_amd.bin.gz"
     375IEM_TEST_DATA shrd_u64_intel, "tstIEMAImplDataInt-shrd_u64_intel.bin.gz"
     376IEM_TEST_DATA shr_u8_amd, "tstIEMAImplDataInt-shr_u8_amd.bin.gz"
     377IEM_TEST_DATA shr_u8_intel, "tstIEMAImplDataInt-shr_u8_intel.bin.gz"
     378IEM_TEST_DATA shr_u16_amd, "tstIEMAImplDataInt-shr_u16_amd.bin.gz"
     379IEM_TEST_DATA shr_u16_intel, "tstIEMAImplDataInt-shr_u16_intel.bin.gz"
     380IEM_TEST_DATA shr_u32_amd, "tstIEMAImplDataInt-shr_u32_amd.bin.gz"
     381IEM_TEST_DATA shr_u32_intel, "tstIEMAImplDataInt-shr_u32_intel.bin.gz"
     382IEM_TEST_DATA shr_u64_amd, "tstIEMAImplDataInt-shr_u64_amd.bin.gz"
     383IEM_TEST_DATA shr_u64_intel, "tstIEMAImplDataInt-shr_u64_intel.bin.gz"
    384384IEM_TEST_DATA sub_u8, "tstIEMAImplDataInt-sub_u8.bin.gz"
    385385IEM_TEST_DATA sub_u8_locked, "tstIEMAImplDataInt-sub_u8_locked.bin.gz"
  • trunk/src/VBox/VMM/testcase/tstIEMAImplDataSseBinary.asm

    r103064 r103075  
    189189IEM_TEST_DATA and_u64_locked, "tstIEMAImplDataInt-and_u64_locked.bin.gz"
    190190IEM_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"
     191IEM_TEST_DATA bsf_u16_amd, "tstIEMAImplDataInt-bsf_u16_amd.bin.gz"
     192IEM_TEST_DATA bsf_u16_intel, "tstIEMAImplDataInt-bsf_u16_intel.bin.gz"
     193IEM_TEST_DATA bsf_u32_amd, "tstIEMAImplDataInt-bsf_u32_amd.bin.gz"
     194IEM_TEST_DATA bsf_u32_intel, "tstIEMAImplDataInt-bsf_u32_intel.bin.gz"
     195IEM_TEST_DATA bsf_u64_amd, "tstIEMAImplDataInt-bsf_u64_amd.bin.gz"
     196IEM_TEST_DATA bsf_u64_intel, "tstIEMAImplDataInt-bsf_u64_intel.bin.gz"
     197IEM_TEST_DATA bsr_u16_amd, "tstIEMAImplDataInt-bsr_u16_amd.bin.gz"
     198IEM_TEST_DATA bsr_u16_intel, "tstIEMAImplDataInt-bsr_u16_intel.bin.gz"
     199IEM_TEST_DATA bsr_u32_amd, "tstIEMAImplDataInt-bsr_u32_amd.bin.gz"
     200IEM_TEST_DATA bsr_u32_intel, "tstIEMAImplDataInt-bsr_u32_intel.bin.gz"
     201IEM_TEST_DATA bsr_u64_amd, "tstIEMAImplDataInt-bsr_u64_amd.bin.gz"
     202IEM_TEST_DATA bsr_u64_intel, "tstIEMAImplDataInt-bsr_u64_intel.bin.gz"
    203203IEM_TEST_DATA btc_u16, "tstIEMAImplDataInt-btc_u16.bin.gz"
    204204IEM_TEST_DATA btc_u16_locked, "tstIEMAImplDataInt-btc_u16_locked.bin.gz"
     
    234234IEM_TEST_DATA dec_u64, "tstIEMAImplDataInt-dec_u64.bin.gz"
    235235IEM_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"
     236IEM_TEST_DATA div_u8_amd, "tstIEMAImplDataInt-div_u8_amd.bin.gz"
     237IEM_TEST_DATA div_u8_intel, "tstIEMAImplDataInt-div_u8_intel.bin.gz"
     238IEM_TEST_DATA div_u16_amd, "tstIEMAImplDataInt-div_u16_amd.bin.gz"
     239IEM_TEST_DATA div_u16_intel, "tstIEMAImplDataInt-div_u16_intel.bin.gz"
     240IEM_TEST_DATA div_u32_amd, "tstIEMAImplDataInt-div_u32_amd.bin.gz"
     241IEM_TEST_DATA div_u32_intel, "tstIEMAImplDataInt-div_u32_intel.bin.gz"
     242IEM_TEST_DATA div_u64_amd, "tstIEMAImplDataInt-div_u64_amd.bin.gz"
     243IEM_TEST_DATA div_u64_intel, "tstIEMAImplDataInt-div_u64_intel.bin.gz"
     244IEM_TEST_DATA idiv_u8_amd, "tstIEMAImplDataInt-idiv_u8_amd.bin.gz"
     245IEM_TEST_DATA idiv_u8_intel, "tstIEMAImplDataInt-idiv_u8_intel.bin.gz"
     246IEM_TEST_DATA idiv_u16_amd, "tstIEMAImplDataInt-idiv_u16_amd.bin.gz"
     247IEM_TEST_DATA idiv_u16_intel, "tstIEMAImplDataInt-idiv_u16_intel.bin.gz"
     248IEM_TEST_DATA idiv_u32_amd, "tstIEMAImplDataInt-idiv_u32_amd.bin.gz"
     249IEM_TEST_DATA idiv_u32_intel, "tstIEMAImplDataInt-idiv_u32_intel.bin.gz"
     250IEM_TEST_DATA idiv_u64_amd, "tstIEMAImplDataInt-idiv_u64_amd.bin.gz"
     251IEM_TEST_DATA idiv_u64_intel, "tstIEMAImplDataInt-idiv_u64_intel.bin.gz"
     252IEM_TEST_DATA imul_two_u16_amd, "tstIEMAImplDataInt-imul_two_u16_amd.bin.gz"
     253IEM_TEST_DATA imul_two_u16_intel, "tstIEMAImplDataInt-imul_two_u16_intel.bin.gz"
     254IEM_TEST_DATA imul_two_u32_amd, "tstIEMAImplDataInt-imul_two_u32_amd.bin.gz"
     255IEM_TEST_DATA imul_two_u32_intel, "tstIEMAImplDataInt-imul_two_u32_intel.bin.gz"
     256IEM_TEST_DATA imul_two_u64_amd, "tstIEMAImplDataInt-imul_two_u64_amd.bin.gz"
     257IEM_TEST_DATA imul_two_u64_intel, "tstIEMAImplDataInt-imul_two_u64_intel.bin.gz"
     258IEM_TEST_DATA imul_u8_amd, "tstIEMAImplDataInt-imul_u8_amd.bin.gz"
     259IEM_TEST_DATA imul_u8_intel, "tstIEMAImplDataInt-imul_u8_intel.bin.gz"
     260IEM_TEST_DATA imul_u16_amd, "tstIEMAImplDataInt-imul_u16_amd.bin.gz"
     261IEM_TEST_DATA imul_u16_intel, "tstIEMAImplDataInt-imul_u16_intel.bin.gz"
     262IEM_TEST_DATA imul_u32_amd, "tstIEMAImplDataInt-imul_u32_amd.bin.gz"
     263IEM_TEST_DATA imul_u32_intel, "tstIEMAImplDataInt-imul_u32_intel.bin.gz"
     264IEM_TEST_DATA imul_u64_amd, "tstIEMAImplDataInt-imul_u64_amd.bin.gz"
     265IEM_TEST_DATA imul_u64_intel, "tstIEMAImplDataInt-imul_u64_intel.bin.gz"
    266266IEM_TEST_DATA inc_u8, "tstIEMAImplDataInt-inc_u8.bin.gz"
    267267IEM_TEST_DATA inc_u8_locked, "tstIEMAImplDataInt-inc_u8_locked.bin.gz"
     
    272272IEM_TEST_DATA inc_u64, "tstIEMAImplDataInt-inc_u64.bin.gz"
    273273IEM_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"
     274IEM_TEST_DATA mul_u8_amd, "tstIEMAImplDataInt-mul_u8_amd.bin.gz"
     275IEM_TEST_DATA mul_u8_intel, "tstIEMAImplDataInt-mul_u8_intel.bin.gz"
     276IEM_TEST_DATA mul_u16_amd, "tstIEMAImplDataInt-mul_u16_amd.bin.gz"
     277IEM_TEST_DATA mul_u16_intel, "tstIEMAImplDataInt-mul_u16_intel.bin.gz"
     278IEM_TEST_DATA mul_u32_amd, "tstIEMAImplDataInt-mul_u32_amd.bin.gz"
     279IEM_TEST_DATA mul_u32_intel, "tstIEMAImplDataInt-mul_u32_intel.bin.gz"
     280IEM_TEST_DATA mul_u64_amd, "tstIEMAImplDataInt-mul_u64_amd.bin.gz"
     281IEM_TEST_DATA mul_u64_intel, "tstIEMAImplDataInt-mul_u64_intel.bin.gz"
    282282IEM_TEST_DATA neg_u8, "tstIEMAImplDataInt-neg_u8.bin.gz"
    283283IEM_TEST_DATA neg_u8_locked, "tstIEMAImplDataInt-neg_u8_locked.bin.gz"
     
    304304IEM_TEST_DATA or_u64, "tstIEMAImplDataInt-or_u64.bin.gz"
    305305IEM_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"
     306IEM_TEST_DATA rcl_u8_amd, "tstIEMAImplDataInt-rcl_u8_amd.bin.gz"
     307IEM_TEST_DATA rcl_u8_intel, "tstIEMAImplDataInt-rcl_u8_intel.bin.gz"
     308IEM_TEST_DATA rcl_u16_amd, "tstIEMAImplDataInt-rcl_u16_amd.bin.gz"
     309IEM_TEST_DATA rcl_u16_intel, "tstIEMAImplDataInt-rcl_u16_intel.bin.gz"
     310IEM_TEST_DATA rcl_u32_amd, "tstIEMAImplDataInt-rcl_u32_amd.bin.gz"
     311IEM_TEST_DATA rcl_u32_intel, "tstIEMAImplDataInt-rcl_u32_intel.bin.gz"
     312IEM_TEST_DATA rcl_u64_amd, "tstIEMAImplDataInt-rcl_u64_amd.bin.gz"
     313IEM_TEST_DATA rcl_u64_intel, "tstIEMAImplDataInt-rcl_u64_intel.bin.gz"
     314IEM_TEST_DATA rcr_u8_amd, "tstIEMAImplDataInt-rcr_u8_amd.bin.gz"
     315IEM_TEST_DATA rcr_u8_intel, "tstIEMAImplDataInt-rcr_u8_intel.bin.gz"
     316IEM_TEST_DATA rcr_u16_amd, "tstIEMAImplDataInt-rcr_u16_amd.bin.gz"
     317IEM_TEST_DATA rcr_u16_intel, "tstIEMAImplDataInt-rcr_u16_intel.bin.gz"
     318IEM_TEST_DATA rcr_u32_amd, "tstIEMAImplDataInt-rcr_u32_amd.bin.gz"
     319IEM_TEST_DATA rcr_u32_intel, "tstIEMAImplDataInt-rcr_u32_intel.bin.gz"
     320IEM_TEST_DATA rcr_u64_amd, "tstIEMAImplDataInt-rcr_u64_amd.bin.gz"
     321IEM_TEST_DATA rcr_u64_intel, "tstIEMAImplDataInt-rcr_u64_intel.bin.gz"
     322IEM_TEST_DATA rol_u8_amd, "tstIEMAImplDataInt-rol_u8_amd.bin.gz"
     323IEM_TEST_DATA rol_u8_intel, "tstIEMAImplDataInt-rol_u8_intel.bin.gz"
     324IEM_TEST_DATA rol_u16_amd, "tstIEMAImplDataInt-rol_u16_amd.bin.gz"
     325IEM_TEST_DATA rol_u16_intel, "tstIEMAImplDataInt-rol_u16_intel.bin.gz"
     326IEM_TEST_DATA rol_u32_amd, "tstIEMAImplDataInt-rol_u32_amd.bin.gz"
     327IEM_TEST_DATA rol_u32_intel, "tstIEMAImplDataInt-rol_u32_intel.bin.gz"
     328IEM_TEST_DATA rol_u64_amd, "tstIEMAImplDataInt-rol_u64_amd.bin.gz"
     329IEM_TEST_DATA rol_u64_intel, "tstIEMAImplDataInt-rol_u64_intel.bin.gz"
     330IEM_TEST_DATA ror_u8_amd, "tstIEMAImplDataInt-ror_u8_amd.bin.gz"
     331IEM_TEST_DATA ror_u8_intel, "tstIEMAImplDataInt-ror_u8_intel.bin.gz"
     332IEM_TEST_DATA ror_u16_amd, "tstIEMAImplDataInt-ror_u16_amd.bin.gz"
     333IEM_TEST_DATA ror_u16_intel, "tstIEMAImplDataInt-ror_u16_intel.bin.gz"
     334IEM_TEST_DATA ror_u32_amd, "tstIEMAImplDataInt-ror_u32_amd.bin.gz"
     335IEM_TEST_DATA ror_u32_intel, "tstIEMAImplDataInt-ror_u32_intel.bin.gz"
     336IEM_TEST_DATA ror_u64_amd, "tstIEMAImplDataInt-ror_u64_amd.bin.gz"
     337IEM_TEST_DATA ror_u64_intel, "tstIEMAImplDataInt-ror_u64_intel.bin.gz"
     338IEM_TEST_DATA sar_u8_amd, "tstIEMAImplDataInt-sar_u8_amd.bin.gz"
     339IEM_TEST_DATA sar_u8_intel, "tstIEMAImplDataInt-sar_u8_intel.bin.gz"
     340IEM_TEST_DATA sar_u16_amd, "tstIEMAImplDataInt-sar_u16_amd.bin.gz"
     341IEM_TEST_DATA sar_u16_intel, "tstIEMAImplDataInt-sar_u16_intel.bin.gz"
     342IEM_TEST_DATA sar_u32_amd, "tstIEMAImplDataInt-sar_u32_amd.bin.gz"
     343IEM_TEST_DATA sar_u32_intel, "tstIEMAImplDataInt-sar_u32_intel.bin.gz"
     344IEM_TEST_DATA sar_u64_amd, "tstIEMAImplDataInt-sar_u64_amd.bin.gz"
     345IEM_TEST_DATA sar_u64_intel, "tstIEMAImplDataInt-sar_u64_intel.bin.gz"
    346346IEM_TEST_DATA sbb_u8, "tstIEMAImplDataInt-sbb_u8.bin.gz"
    347347IEM_TEST_DATA sbb_u8_locked, "tstIEMAImplDataInt-sbb_u8_locked.bin.gz"
     
    352352IEM_TEST_DATA sbb_u64, "tstIEMAImplDataInt-sbb_u64.bin.gz"
    353353IEM_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"
     354IEM_TEST_DATA shld_u16_amd, "tstIEMAImplDataInt-shld_u16_amd.bin.gz"
     355IEM_TEST_DATA shld_u16_intel, "tstIEMAImplDataInt-shld_u16_intel.bin.gz"
     356IEM_TEST_DATA shld_u32_amd, "tstIEMAImplDataInt-shld_u32_amd.bin.gz"
     357IEM_TEST_DATA shld_u32_intel, "tstIEMAImplDataInt-shld_u32_intel.bin.gz"
     358IEM_TEST_DATA shld_u64_amd, "tstIEMAImplDataInt-shld_u64_amd.bin.gz"
     359IEM_TEST_DATA shld_u64_intel, "tstIEMAImplDataInt-shld_u64_intel.bin.gz"
     360IEM_TEST_DATA shl_u8_amd, "tstIEMAImplDataInt-shl_u8_amd.bin.gz"
     361IEM_TEST_DATA shl_u8_intel, "tstIEMAImplDataInt-shl_u8_intel.bin.gz"
     362IEM_TEST_DATA shl_u16_amd, "tstIEMAImplDataInt-shl_u16_amd.bin.gz"
     363IEM_TEST_DATA shl_u16_intel, "tstIEMAImplDataInt-shl_u16_intel.bin.gz"
     364IEM_TEST_DATA shl_u32_amd, "tstIEMAImplDataInt-shl_u32_amd.bin.gz"
     365IEM_TEST_DATA shl_u32_intel, "tstIEMAImplDataInt-shl_u32_intel.bin.gz"
     366IEM_TEST_DATA shl_u64_amd, "tstIEMAImplDataInt-shl_u64_amd.bin.gz"
     367IEM_TEST_DATA shl_u64_intel, "tstIEMAImplDataInt-shl_u64_intel.bin.gz"
     368IEM_TEST_DATA shrd_u16_amd, "tstIEMAImplDataInt-shrd_u16_amd.bin.gz"
     369IEM_TEST_DATA shrd_u16_intel, "tstIEMAImplDataInt-shrd_u16_intel.bin.gz"
     370IEM_TEST_DATA shrd_u32_amd, "tstIEMAImplDataInt-shrd_u32_amd.bin.gz"
     371IEM_TEST_DATA shrd_u32_intel, "tstIEMAImplDataInt-shrd_u32_intel.bin.gz"
     372IEM_TEST_DATA shrd_u64_amd, "tstIEMAImplDataInt-shrd_u64_amd.bin.gz"
     373IEM_TEST_DATA shrd_u64_intel, "tstIEMAImplDataInt-shrd_u64_intel.bin.gz"
     374IEM_TEST_DATA shr_u8_amd, "tstIEMAImplDataInt-shr_u8_amd.bin.gz"
     375IEM_TEST_DATA shr_u8_intel, "tstIEMAImplDataInt-shr_u8_intel.bin.gz"
     376IEM_TEST_DATA shr_u16_amd, "tstIEMAImplDataInt-shr_u16_amd.bin.gz"
     377IEM_TEST_DATA shr_u16_intel, "tstIEMAImplDataInt-shr_u16_intel.bin.gz"
     378IEM_TEST_DATA shr_u32_amd, "tstIEMAImplDataInt-shr_u32_amd.bin.gz"
     379IEM_TEST_DATA shr_u32_intel, "tstIEMAImplDataInt-shr_u32_intel.bin.gz"
     380IEM_TEST_DATA shr_u64_amd, "tstIEMAImplDataInt-shr_u64_amd.bin.gz"
     381IEM_TEST_DATA shr_u64_intel, "tstIEMAImplDataInt-shr_u64_intel.bin.gz"
    382382IEM_TEST_DATA sub_u8, "tstIEMAImplDataInt-sub_u8.bin.gz"
    383383IEM_TEST_DATA sub_u8_locked, "tstIEMAImplDataInt-sub_u8_locked.bin.gz"
Note: See TracChangeset for help on using the changeset viewer.

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