VirtualBox

Ignore:
Timestamp:
Jul 6, 2022 11:17:29 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
152169
Message:

ValKit/bs3-cpu-instr-3: Simple [v]movntps, [v]movntpd, [v]movaps and [v]movapd 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

    r95542 r95545  
    934934
    935935;
     936; [V]MOVNTPS
     937;
     938EMIT_INSTR_PLUS_ICEBP movntps,  FSxBX, XMM1
     939EMIT_INSTR_PLUS_ICEBP vmovntps, FSxBX, XMM1
     940EMIT_INSTR_PLUS_ICEBP vmovntps, FSxBX, YMM1
     941 %if TMPL_BITS == 64
     942EMIT_INSTR_PLUS_ICEBP movntps,  FSxBX, XMM10
     943EMIT_INSTR_PLUS_ICEBP vmovntps, FSxBX, XMM11
     944EMIT_INSTR_PLUS_ICEBP vmovntps, FSxBX, YMM12
     945 %endif
     946
     947;
     948; [V]MOVNTPD
     949;
     950EMIT_INSTR_PLUS_ICEBP movntpd,  FSxBX, XMM1
     951EMIT_INSTR_PLUS_ICEBP vmovntpd, FSxBX, XMM1
     952EMIT_INSTR_PLUS_ICEBP vmovntpd, FSxBX, YMM1
     953 %if TMPL_BITS == 64
     954EMIT_INSTR_PLUS_ICEBP movntpd,  FSxBX, XMM10
     955EMIT_INSTR_PLUS_ICEBP vmovntpd, FSxBX, XMM11
     956EMIT_INSTR_PLUS_ICEBP vmovntpd, FSxBX, YMM12
     957 %endif
     958
     959;
    936960; [V]MOVUPS - not testing the 2nd register variant.
    937961;
     
    11371161 %endif
    11381162
     1163;
     1164; [V]MOVAPS
     1165;
     1166EMIT_INSTR_PLUS_ICEBP movaps,  XMM1, XMM2
     1167EMIT_INSTR_PLUS_ICEBP movaps,  XMM1, FSxBX
     1168EMIT_INSTR_PLUS_ICEBP vmovaps, XMM1, XMM2
     1169EMIT_INSTR_PLUS_ICEBP vmovaps, XMM1, FSxBX
     1170EMIT_INSTR_PLUS_ICEBP vmovaps, YMM1, YMM2
     1171EMIT_INSTR_PLUS_ICEBP vmovaps, YMM1, FSxBX
     1172 %if TMPL_BITS == 64
     1173EMIT_INSTR_PLUS_ICEBP movaps,  XMM8,  XMM12
     1174EMIT_INSTR_PLUS_ICEBP movaps,  XMM10, FSxBX
     1175EMIT_INSTR_PLUS_ICEBP vmovaps, XMM7,  XMM14
     1176EMIT_INSTR_PLUS_ICEBP vmovaps, XMM11, FSxBX
     1177EMIT_INSTR_PLUS_ICEBP vmovaps, YMM12, YMM8
     1178EMIT_INSTR_PLUS_ICEBP vmovaps, YMM12, FSxBX
     1179 %endif
     1180
     1181EMIT_INSTR_PLUS_ICEBP movapd,  XMM1, XMM2
     1182EMIT_INSTR_PLUS_ICEBP movapd,  XMM1, FSxBX
     1183EMIT_INSTR_PLUS_ICEBP vmovapd, XMM1, XMM2
     1184EMIT_INSTR_PLUS_ICEBP vmovapd, XMM1, FSxBX
     1185EMIT_INSTR_PLUS_ICEBP vmovapd, YMM1, YMM2
     1186EMIT_INSTR_PLUS_ICEBP vmovapd, YMM1, FSxBX
     1187 %if TMPL_BITS == 64
     1188EMIT_INSTR_PLUS_ICEBP movapd,  XMM8,  XMM12
     1189EMIT_INSTR_PLUS_ICEBP movapd,  XMM10, FSxBX
     1190EMIT_INSTR_PLUS_ICEBP vmovapd, XMM7,  XMM14
     1191EMIT_INSTR_PLUS_ICEBP vmovapd, XMM11, FSxBX
     1192EMIT_INSTR_PLUS_ICEBP vmovapd, YMM12, YMM8
     1193EMIT_INSTR_PLUS_ICEBP vmovapd, YMM12, FSxBX
     1194 %endif
    11391195
    11401196
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32

    r95542 r95545  
    48014801
    48024802/*
     4803 * [V]MOVNPS / [V]MOVNTPD - load single/double precision floating-point, aligned,
     4804 *                          with non-temporal hint.  Only difference is the unit.
     4805 */
     4806BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_movntps_FSxBX_XMM1_icebp);
     4807extern FNBS3FAR             bs3CpuInstr3_movntps_FSxBX_XMM10_icebp_c64;
     4808BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovntps_FSxBX_XMM1_icebp);
     4809extern FNBS3FAR             bs3CpuInstr3_vmovntps_FSxBX_XMM11_icebp_c64;
     4810BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovntps_FSxBX_YMM1_icebp);
     4811extern FNBS3FAR             bs3CpuInstr3_vmovntps_FSxBX_YMM12_icebp_c64;
     4812
     4813BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_movntpd_FSxBX_XMM1_icebp);
     4814extern FNBS3FAR             bs3CpuInstr3_movntpd_FSxBX_XMM10_icebp_c64;
     4815BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovntpd_FSxBX_XMM1_icebp);
     4816extern FNBS3FAR             bs3CpuInstr3_vmovntpd_FSxBX_XMM11_icebp_c64;
     4817BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovntpd_FSxBX_YMM1_icebp);
     4818extern FNBS3FAR             bs3CpuInstr3_vmovntpd_FSxBX_YMM12_icebp_c64;
     4819
     4820BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_movntps_movntpd(uint8_t bMode)
     4821{
     4822    static BS3CPUINSTR3_TEST3_T const s_aTests16[] =
     4823    {
     4824        {  bs3CpuInstr3_movntps_FSxBX_XMM1_icebp_c16,   X86_XCPT_GP, RM_MEM, T_SSE,     255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4825        {  bs3CpuInstr3_vmovntps_FSxBX_XMM1_icebp_c16,  X86_XCPT_GP, RM_MEM, T_AVX_128, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4826        {  bs3CpuInstr3_vmovntps_FSxBX_YMM1_icebp_c16,  X86_XCPT_GP, RM_MEM, T_AVX_256, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4827
     4828        {  bs3CpuInstr3_movntpd_FSxBX_XMM1_icebp_c16,   X86_XCPT_GP, RM_MEM, T_SSE,     255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4829        {  bs3CpuInstr3_vmovntpd_FSxBX_XMM1_icebp_c16,  X86_XCPT_GP, RM_MEM, T_AVX_128, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4830        {  bs3CpuInstr3_vmovntpd_FSxBX_YMM1_icebp_c16,  X86_XCPT_GP, RM_MEM, T_AVX_256, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4831    };
     4832    static BS3CPUINSTR3_TEST3_T const s_aTests32[] =
     4833    {
     4834        {  bs3CpuInstr3_movntps_FSxBX_XMM1_icebp_c32,   X86_XCPT_GP, RM_MEM, T_SSE,     255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4835        {  bs3CpuInstr3_vmovntps_FSxBX_XMM1_icebp_c32,  X86_XCPT_GP, RM_MEM, T_AVX_128, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4836        {  bs3CpuInstr3_vmovntps_FSxBX_YMM1_icebp_c32,  X86_XCPT_GP, RM_MEM, T_AVX_256, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4837
     4838        {  bs3CpuInstr3_movntpd_FSxBX_XMM1_icebp_c32,   X86_XCPT_GP, RM_MEM, T_SSE,     255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4839        {  bs3CpuInstr3_vmovntpd_FSxBX_XMM1_icebp_c32,  X86_XCPT_GP, RM_MEM, T_AVX_128, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4840        {  bs3CpuInstr3_vmovntpd_FSxBX_YMM1_icebp_c32,  X86_XCPT_GP, RM_MEM, T_AVX_256, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4841    };
     4842    static BS3CPUINSTR3_TEST3_T const s_aTests64[] =
     4843    {
     4844        {  bs3CpuInstr3_movntps_FSxBX_XMM1_icebp_c64,   X86_XCPT_GP, RM_MEM, T_SSE,     255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4845        {  bs3CpuInstr3_movntps_FSxBX_XMM10_icebp_c64,  X86_XCPT_GP, RM_MEM, T_SSE,     255,  10, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4846        {  bs3CpuInstr3_vmovntps_FSxBX_XMM1_icebp_c64,  X86_XCPT_GP, RM_MEM, T_AVX_128, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4847        {  bs3CpuInstr3_vmovntps_FSxBX_XMM11_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, 255,  11, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4848        {  bs3CpuInstr3_vmovntps_FSxBX_YMM1_icebp_c64,  X86_XCPT_GP, RM_MEM, T_AVX_256, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4849        {  bs3CpuInstr3_vmovntps_FSxBX_YMM12_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, 255,  12, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4850
     4851        {  bs3CpuInstr3_movntpd_FSxBX_XMM1_icebp_c64,   X86_XCPT_GP, RM_MEM, T_SSE,     255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4852        {  bs3CpuInstr3_movntpd_FSxBX_XMM10_icebp_c64,  X86_XCPT_GP, RM_MEM, T_SSE,     255,  10, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4853        {  bs3CpuInstr3_vmovntpd_FSxBX_XMM1_icebp_c64,  X86_XCPT_GP, RM_MEM, T_AVX_128, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4854        {  bs3CpuInstr3_vmovntpd_FSxBX_XMM11_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, 255,  11, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4855        {  bs3CpuInstr3_vmovntpd_FSxBX_YMM1_icebp_c64,  X86_XCPT_GP, RM_MEM, T_AVX_256, 255,   1, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4856        {  bs3CpuInstr3_vmovntpd_FSxBX_YMM12_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, 255,  12, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     4857    };
     4858    static BS3CPUINSTR3_TEST3_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST3_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     4859    unsigned const                         iTest       = BS3CPUINSTR3_TEST_MODES_INDEX(bMode);
     4860    return bs3CpuInstr3_WorkerTestType3(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     4861                                        g_aXcptConfig1, RT_ELEMENTS(g_aXcptConfig1), 255 /*cbMaxAlign*/);
     4862}
     4863
     4864
     4865/*
    48034866 * MOVUPS - packed single-precision floating point, unaligned.
    48044867 *
     
    52005263    return bs3CpuInstr3_WorkerTestType3(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    52015264                                        g_aXcptConfig5, RT_ELEMENTS(g_aXcptConfig5), 0 /*cbMaxAlign*/);
     5265}
     5266
     5267
     5268/*
     5269 * [V]MOVAPS / [V]MOVAPD
     5270 */
     5271BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_movaps_XMM1_XMM2_icebp);
     5272BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_movaps_XMM1_FSxBX_icebp);
     5273extern FNBS3FAR             bs3CpuInstr3_movaps_XMM8_XMM12_icebp_c64;
     5274extern FNBS3FAR             bs3CpuInstr3_movaps_XMM10_FSxBX_icebp_c64;
     5275BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovaps_XMM1_XMM2_icebp);
     5276BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovaps_XMM1_FSxBX_icebp);
     5277extern FNBS3FAR             bs3CpuInstr3_vmovaps_XMM7_XMM14_icebp_c64;
     5278extern FNBS3FAR             bs3CpuInstr3_vmovaps_XMM11_FSxBX_icebp_c64;
     5279BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovaps_YMM1_YMM2_icebp);
     5280BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovaps_YMM1_FSxBX_icebp);
     5281extern FNBS3FAR             bs3CpuInstr3_vmovaps_YMM12_YMM8_icebp_c64;
     5282extern FNBS3FAR             bs3CpuInstr3_vmovaps_YMM12_FSxBX_icebp_c64;
     5283
     5284BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_movapd_XMM1_XMM2_icebp);
     5285BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_movapd_XMM1_FSxBX_icebp);
     5286extern FNBS3FAR             bs3CpuInstr3_movapd_XMM8_XMM12_icebp_c64;
     5287extern FNBS3FAR             bs3CpuInstr3_movapd_XMM10_FSxBX_icebp_c64;
     5288BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovapd_XMM1_XMM2_icebp);
     5289BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovapd_XMM1_FSxBX_icebp);
     5290extern FNBS3FAR             bs3CpuInstr3_vmovapd_XMM7_XMM14_icebp_c64;
     5291extern FNBS3FAR             bs3CpuInstr3_vmovapd_XMM11_FSxBX_icebp_c64;
     5292BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovapd_YMM1_YMM2_icebp);
     5293BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vmovapd_YMM1_FSxBX_icebp);
     5294extern FNBS3FAR             bs3CpuInstr3_vmovapd_YMM12_YMM8_icebp_c64;
     5295extern FNBS3FAR             bs3CpuInstr3_vmovapd_YMM12_FSxBX_icebp_c64;
     5296
     5297BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_movaps_movapd(uint8_t bMode)
     5298{
     5299    /* Note! Seems the 256-bit variants doesn't generate \#ACs on a 10980XE. WEIRD! */
     5300    static BS3CPUINSTR3_TEST3_T const s_aTests16[] =
     5301    {
     5302        {  bs3CpuInstr3_movaps_XMM1_XMM2_icebp_c16,    255,         RM_REG, T_SSE,       1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5303        {  bs3CpuInstr3_movaps_XMM1_FSxBX_icebp_c16,   X86_XCPT_GP, RM_MEM, T_SSE,       1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5304        {  bs3CpuInstr3_movapd_XMM1_XMM2_icebp_c16,    255,         RM_REG, T_SSE,       1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5305        {  bs3CpuInstr3_movapd_XMM1_FSxBX_icebp_c16,   X86_XCPT_GP, RM_MEM, T_SSE,       1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5306
     5307        {  bs3CpuInstr3_vmovaps_XMM1_XMM2_icebp_c16,   255,         RM_REG, T_AVX_128,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5308        {  bs3CpuInstr3_vmovaps_XMM1_FSxBX_icebp_c16,  X86_XCPT_GP, RM_MEM, T_AVX_128,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5309        {  bs3CpuInstr3_vmovapd_XMM1_XMM2_icebp_c16,   255,         RM_REG, T_AVX_128,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5310        {  bs3CpuInstr3_vmovapd_XMM1_FSxBX_icebp_c16,  X86_XCPT_GP, RM_MEM, T_AVX_128,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5311
     5312        {  bs3CpuInstr3_vmovaps_YMM1_YMM2_icebp_c16,   255,         RM_REG, T_AVX_256,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5313        {  bs3CpuInstr3_vmovaps_YMM1_FSxBX_icebp_c16,  X86_XCPT_GP, RM_MEM, T_AVX_256,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5314        {  bs3CpuInstr3_vmovapd_YMM1_YMM2_icebp_c16,   255,         RM_REG, T_AVX_256,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5315        {  bs3CpuInstr3_vmovapd_YMM1_FSxBX_icebp_c16,  X86_XCPT_GP, RM_MEM, T_AVX_256,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5316    };
     5317    static BS3CPUINSTR3_TEST3_T const s_aTests32[] =
     5318    {
     5319        {  bs3CpuInstr3_movaps_XMM1_XMM2_icebp_c32,    255,         RM_REG, T_SSE,       1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5320        {  bs3CpuInstr3_movaps_XMM1_FSxBX_icebp_c32,   X86_XCPT_GP, RM_MEM, T_SSE,       1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5321        {  bs3CpuInstr3_movapd_XMM1_XMM2_icebp_c32,    255,         RM_REG, T_SSE,       1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5322        {  bs3CpuInstr3_movapd_XMM1_FSxBX_icebp_c32,   X86_XCPT_GP, RM_MEM, T_SSE,       1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5323
     5324        {  bs3CpuInstr3_vmovaps_XMM1_XMM2_icebp_c32,   255,         RM_REG, T_AVX_128,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5325        {  bs3CpuInstr3_vmovaps_XMM1_FSxBX_icebp_c32,  X86_XCPT_GP, RM_MEM, T_AVX_128,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5326        {  bs3CpuInstr3_vmovapd_XMM1_XMM2_icebp_c32,   255,         RM_REG, T_AVX_128,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5327        {  bs3CpuInstr3_vmovapd_XMM1_FSxBX_icebp_c32,  X86_XCPT_GP, RM_MEM, T_AVX_128,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5328
     5329        {  bs3CpuInstr3_vmovaps_YMM1_YMM2_icebp_c32,   255,         RM_REG, T_AVX_256,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5330        {  bs3CpuInstr3_vmovaps_YMM1_FSxBX_icebp_c32,  X86_XCPT_GP, RM_MEM, T_AVX_256,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5331        {  bs3CpuInstr3_vmovapd_YMM1_YMM2_icebp_c32,   255,         RM_REG, T_AVX_256,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5332        {  bs3CpuInstr3_vmovapd_YMM1_FSxBX_icebp_c32,  X86_XCPT_GP, RM_MEM, T_AVX_256,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5333    };
     5334    static BS3CPUINSTR3_TEST3_T const s_aTests64[] =
     5335    {
     5336        {  bs3CpuInstr3_movaps_XMM1_XMM2_icebp_c64,    255,         RM_REG, T_SSE,       1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5337        {  bs3CpuInstr3_movaps_XMM8_XMM12_icebp_c64,   255,         RM_REG, T_SSE,       8,  12, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5338        {  bs3CpuInstr3_movaps_XMM1_FSxBX_icebp_c64,   X86_XCPT_GP, RM_MEM, T_SSE,       1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5339        {  bs3CpuInstr3_movaps_XMM10_FSxBX_icebp_c64,  X86_XCPT_GP, RM_MEM, T_SSE,      10, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5340        {  bs3CpuInstr3_movapd_XMM1_XMM2_icebp_c64,    255,         RM_REG, T_SSE,       1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5341        {  bs3CpuInstr3_movapd_XMM8_XMM12_icebp_c64,   255,         RM_REG, T_SSE,       8,  12, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5342        {  bs3CpuInstr3_movapd_XMM1_FSxBX_icebp_c64,   X86_XCPT_GP, RM_MEM, T_SSE,       1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5343        {  bs3CpuInstr3_movapd_XMM10_FSxBX_icebp_c64,  X86_XCPT_GP, RM_MEM, T_SSE,      10, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5344
     5345        {  bs3CpuInstr3_vmovaps_XMM1_XMM2_icebp_c64,   255,         RM_REG, T_AVX_128,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5346        {  bs3CpuInstr3_vmovaps_XMM7_XMM14_icebp_c64,  255,         RM_REG, T_AVX_128,   7,  14, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5347        {  bs3CpuInstr3_vmovaps_XMM1_FSxBX_icebp_c64,  X86_XCPT_GP, RM_MEM, T_AVX_128,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5348        {  bs3CpuInstr3_vmovaps_XMM11_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128,  11, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5349        {  bs3CpuInstr3_vmovapd_XMM1_XMM2_icebp_c64,   255,         RM_REG, T_AVX_128,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5350        {  bs3CpuInstr3_vmovapd_XMM7_XMM14_icebp_c64,  255,         RM_REG, T_AVX_128,   7,  14, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5351        {  bs3CpuInstr3_vmovapd_XMM1_FSxBX_icebp_c64,  X86_XCPT_GP, RM_MEM, T_AVX_128,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5352        {  bs3CpuInstr3_vmovapd_XMM11_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128,  11, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5353
     5354        {  bs3CpuInstr3_vmovaps_YMM1_YMM2_icebp_c64,   255,         RM_REG, T_AVX_256,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5355        {  bs3CpuInstr3_vmovaps_YMM12_YMM8_icebp_c64,  255,         RM_REG, T_AVX_256,  12,   8, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5356        {  bs3CpuInstr3_vmovaps_YMM1_FSxBX_icebp_c64,  X86_XCPT_GP, RM_MEM, T_AVX_256,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5357        {  bs3CpuInstr3_vmovaps_YMM12_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256,  12, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5358        {  bs3CpuInstr3_vmovapd_YMM1_YMM2_icebp_c64,   255,         RM_REG, T_AVX_256,   1,   2, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5359        {  bs3CpuInstr3_vmovapd_YMM12_YMM8_icebp_c64,  255,         RM_REG, T_AVX_256,  12,   8, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5360        {  bs3CpuInstr3_vmovapd_YMM1_FSxBX_icebp_c64,  X86_XCPT_GP, RM_MEM, T_AVX_256,   1, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5361        {  bs3CpuInstr3_vmovapd_YMM12_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256,  12, 255, RT_ELEMENTS(g_aMoveValues3), g_aMoveValues3 },
     5362    };
     5363    static BS3CPUINSTR3_TEST3_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST3_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     5364    unsigned const                         iTest       = BS3CPUINSTR3_TEST_MODES_INDEX(bMode);
     5365    return bs3CpuInstr3_WorkerTestType3(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     5366                                        g_aXcptConfig1, RT_ELEMENTS(g_aXcptConfig1), 255 /*cbMaxAlign*/);
    52025367}
    52035368
     
    52615426#if defined(ALL_TESTS)
    52625427        { "[v]movntdqa",                                    bs3CpuInstr3_v_movntdqa, 0 },
     5428        { "[v]movntps_movntpd",                             bs3CpuInstr3_v_movntps_movntpd, 0 },
    52635429        { "[v]movups",                                      bs3CpuInstr3_v_movups, 0 },
    52645430        { "[v]movupd",                                      bs3CpuInstr3_v_movupd, 0 },
     
    52715437        { "[v]movshdup",                                    bs3CpuInstr3_v_movshdup, 0 },
    52725438        { "[v]movddup",                                     bs3CpuInstr3_v_movddup, 0 },
     5439        { "[v]movaps_movapd",                               bs3CpuInstr3_v_movaps_movapd, 0 },
    52735440#endif
    52745441    };
Note: See TracChangeset for help on using the changeset viewer.

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