VirtualBox

Ignore:
Timestamp:
Jul 6, 2022 7:08:27 PM (3 years ago)
Author:
vboxsync
Message:

ValKit/bs3-cpu-instr-3: Simple [v]movlpd tests. bugref:9898

Location:
trunk/src/VBox/ValidationKit/bootsectors
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3-template.mac

    r95534 r95535  
    10321032
    10331033;
     1034; [V]MOVLPD
     1035;
     1036EMIT_INSTR_PLUS_ICEBP movlpd,  XMM1, FSxBX
     1037EMIT_INSTR_PLUS_ICEBP movlpd,  FSxBX, XMM1
     1038EMIT_INSTR_PLUS_ICEBP vmovlpd, XMM1, XMM2, FSxBX
     1039EMIT_INSTR_PLUS_ICEBP vmovlpd, FSxBX, XMM1
     1040 %if TMPL_BITS == 64
     1041EMIT_INSTR_PLUS_ICEBP movlpd,  XMM8, FSxBX
     1042EMIT_INSTR_PLUS_ICEBP movlpd,  FSxBX, XMM11
     1043EMIT_INSTR_PLUS_ICEBP vmovlpd, XMM10, XMM14, FSxBX
     1044EMIT_INSTR_PLUS_ICEBP vmovlpd, FSxBX, XMM9
     1045 %endif
     1046
     1047;
    10341048; [V]MOVHLPS
    10351049;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32

    r95534 r95535  
    35433543 *             or VEX 2nd source).
    35443544 *             The store variant just stores the lower qword.
     3545 * [V]MOVLPD - Same, just using double precision floating-point unit.
    35453546 */
    35463547BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_movlps_XMM1_FSxBX_icebp);
     
    35533554extern FNBS3FAR             bs3CpuInstr3_vmovlps_FSxBX_XMM9_icebp_c64;
    35543555
    3555 BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_movlps(uint8_t bMode)
     3556BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_movlpd_XMM1_FSxBX_icebp);
     3557BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_movlpd_FSxBX_XMM1_icebp);
     3558BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovlpd_XMM1_XMM2_FSxBX_icebp);
     3559BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovlpd_FSxBX_XMM1_icebp);
     3560extern FNBS3FAR             bs3CpuInstr3_movlpd_XMM8_FSxBX_icebp_c64;
     3561extern FNBS3FAR             bs3CpuInstr3_movlpd_FSxBX_XMM11_icebp_c64;
     3562extern FNBS3FAR             bs3CpuInstr3_vmovlpd_XMM10_XMM14_FSxBX_icebp_c64;
     3563extern FNBS3FAR             bs3CpuInstr3_vmovlpd_FSxBX_XMM9_icebp_c64;
     3564
     3565BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_movlps_movlpd(uint8_t bMode)
    35563566{
    35573567    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesLd[] =
     
    35903600        {  bs3CpuInstr3_movlps_XMM1_FSxBX_icebp_c16,        X86_XCPT_AC, RM_MEM64, T_SSE,         1,   1, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
    35913601        {  bs3CpuInstr3_movlps_FSxBX_XMM1_icebp_c16,        X86_XCPT_AC, RM_MEM64, T_SSE,       255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt },
     3602        {  bs3CpuInstr3_movlpd_XMM1_FSxBX_icebp_c16,        X86_XCPT_AC, RM_MEM64, T_SSE,         1,   1, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
     3603        {  bs3CpuInstr3_movlpd_FSxBX_XMM1_icebp_c16,        X86_XCPT_AC, RM_MEM64, T_SSE,       255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt },
    35923604
    35933605        {  bs3CpuInstr3_vmovlps_XMM1_XMM2_FSxBX_icebp_c16,  X86_XCPT_AC, RM_MEM64, T_AVX_128,     1,   2, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
    35943606        {  bs3CpuInstr3_vmovlps_FSxBX_XMM1_icebp_c16,       X86_XCPT_AC, RM_MEM64, T_AVX_128,   255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt},
     3607        {  bs3CpuInstr3_vmovlpd_XMM1_XMM2_FSxBX_icebp_c16,  X86_XCPT_AC, RM_MEM64, T_AVX_128,     1,   2, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
     3608        {  bs3CpuInstr3_vmovlpd_FSxBX_XMM1_icebp_c16,       X86_XCPT_AC, RM_MEM64, T_AVX_128,   255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt},
    35953609    };
    35963610    static BS3CPUINSTR3_TEST1_T const s_aTests32[] =
     
    35983612        {  bs3CpuInstr3_movlps_XMM1_FSxBX_icebp_c32,        X86_XCPT_AC, RM_MEM64, T_SSE,         1,   1, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
    35993613        {  bs3CpuInstr3_movlps_FSxBX_XMM1_icebp_c32,        X86_XCPT_AC, RM_MEM64, T_SSE,       255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt },
     3614        {  bs3CpuInstr3_movlpd_XMM1_FSxBX_icebp_c32,        X86_XCPT_AC, RM_MEM64, T_SSE,         1,   1, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
     3615        {  bs3CpuInstr3_movlpd_FSxBX_XMM1_icebp_c32,        X86_XCPT_AC, RM_MEM64, T_SSE,       255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt },
    36003616
    36013617        {  bs3CpuInstr3_vmovlps_XMM1_XMM2_FSxBX_icebp_c32,  X86_XCPT_AC, RM_MEM64, T_AVX_128,     1,   2, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
    36023618        {  bs3CpuInstr3_vmovlps_FSxBX_XMM1_icebp_c32,       X86_XCPT_AC, RM_MEM64, T_AVX_128,   255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt},
     3619        {  bs3CpuInstr3_vmovlpd_XMM1_XMM2_FSxBX_icebp_c32,  X86_XCPT_AC, RM_MEM64, T_AVX_128,     1,   2, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
     3620        {  bs3CpuInstr3_vmovlpd_FSxBX_XMM1_icebp_c32,       X86_XCPT_AC, RM_MEM64, T_AVX_128,   255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt},
    36033621    };
    36043622    static BS3CPUINSTR3_TEST1_T const s_aTests64[] =
     
    36083626        {  bs3CpuInstr3_movlps_FSxBX_XMM1_icebp_c64,        X86_XCPT_AC, RM_MEM64, T_SSE,       255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt },
    36093627        {  bs3CpuInstr3_movlps_FSxBX_XMM11_icebp_c64,       X86_XCPT_AC, RM_MEM64, T_SSE,       255, 128,  11, RT_ELEMENTS(s_aValuesSt), s_aValuesSt },
     3628        {  bs3CpuInstr3_movlpd_XMM1_FSxBX_icebp_c64,        X86_XCPT_AC, RM_MEM64, T_SSE,         1,   1, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
     3629        {  bs3CpuInstr3_movlpd_XMM8_FSxBX_icebp_c64,        X86_XCPT_AC, RM_MEM64, T_SSE,         8,   8, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
     3630        {  bs3CpuInstr3_movlpd_FSxBX_XMM1_icebp_c64,        X86_XCPT_AC, RM_MEM64, T_SSE,       255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt },
     3631        {  bs3CpuInstr3_movlpd_FSxBX_XMM11_icebp_c64,       X86_XCPT_AC, RM_MEM64, T_SSE,       255, 128,  11, RT_ELEMENTS(s_aValuesSt), s_aValuesSt },
    36103632
    36113633        {  bs3CpuInstr3_vmovlps_XMM1_XMM2_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM64, T_AVX_128,     1,   2, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
     
    36133635        {  bs3CpuInstr3_vmovlps_FSxBX_XMM1_icebp_c64,       X86_XCPT_AC, RM_MEM64, T_AVX_128,   255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt},
    36143636        {  bs3CpuInstr3_vmovlps_FSxBX_XMM9_icebp_c64,       X86_XCPT_AC, RM_MEM64, T_AVX_128,   255, 128,   9, RT_ELEMENTS(s_aValuesSt), s_aValuesSt},
     3637        {  bs3CpuInstr3_vmovlpd_XMM1_XMM2_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM64, T_AVX_128,     1,   2, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
     3638        {  bs3CpuInstr3_vmovlpd_XMM10_XMM14_FSxBX_icebp_c64,X86_XCPT_AC, RM_MEM64, T_AVX_128,    10,  14, 255, RT_ELEMENTS(s_aValuesLd), s_aValuesLd },
     3639        {  bs3CpuInstr3_vmovlpd_FSxBX_XMM1_icebp_c64,       X86_XCPT_AC, RM_MEM64, T_AVX_128,   255, 128,   1, RT_ELEMENTS(s_aValuesSt), s_aValuesSt},
     3640        {  bs3CpuInstr3_vmovlpd_FSxBX_XMM9_icebp_c64,       X86_XCPT_AC, RM_MEM64, T_AVX_128,   255, 128,   9, RT_ELEMENTS(s_aValuesSt), s_aValuesSt},
    36153641    };
    36163642    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    36713697                                        g_aXcptConfig5, RT_ELEMENTS(g_aXcptConfig5));
    36723698}
    3673 
    3674 
    36753699
    36763700
     
    48544878    static const BS3TESTMODEBYONEENTRY g_aTests[] =
    48554879    {
    4856 //#define ALL_TESTS
     4880#define ALL_TESTS
    48574881#if defined(ALL_TESTS)
    48584882        { "[v]andps/[v]andpd/[v]pand",                      bs3CpuInstr3_v_andps_andpd_pand, 0 },
     
    49014925        { "[v]movss",                                       bs3CpuInstr3_v_movss, 0 },
    49024926        { "[v]movsd",                                       bs3CpuInstr3_v_movsd, 0 },
    4903         { "[v]movlps",                                      bs3CpuInstr3_v_movlps, 0 },
     4927        { "[v]vmovhlps",                                    bs3CpuInstr3_v_movhlps, 0 },
     4928        { "[v]movlps/[v]movlpd",                            bs3CpuInstr3_v_movlps_movlpd, 0 },
    49044929#endif
    4905         { "[v]vmovhlps",                                    bs3CpuInstr3_v_movhlps, 0 },
    49064930    };
    49074931    Bs3TestInit("bs3-cpu-instr-3");
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