Changeset 105835 in vbox for trunk/src/VBox/ValidationKit
- Timestamp:
- Aug 23, 2024 1:16:01 AM (3 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32
r105666 r105835 2155 2155 { bs3CpuInstr3_pmullw_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, 1, 1, 2, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2156 2156 { bs3CpuInstr3_pmullw_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 1, 1, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2157 { bs3CpuInstr3_pmullw_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2158 { bs3CpuInstr3_pmullw_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 8, 8, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2157 2159 { bs3CpuInstr3_vpmullw_XMM1_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, 1, 1, 2, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2158 2160 { bs3CpuInstr3_vpmullw_XMM1_XMM1_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128, 1, 1, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2161 { bs3CpuInstr3_vpmullw_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2162 { bs3CpuInstr3_vpmullw_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128, 8, 9, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2159 2163 { bs3CpuInstr3_vpmullw_YMM1_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, 1, 1, 2, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2160 2164 { bs3CpuInstr3_vpmullw_YMM1_YMM1_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 1, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2165 { bs3CpuInstr3_vpmullw_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, 8, 9, 10, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2166 { bs3CpuInstr3_vpmullw_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 8, 9, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2161 2167 2162 2168 { bs3CpuInstr3_pmulld_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValuesD), s_aValuesD }, 2163 2169 { bs3CpuInstr3_pmulld_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE4_1, 1, 1, 255, RT_ELEMENTS(s_aValuesD), s_aValuesD }, 2170 { bs3CpuInstr3_pmulld_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE4_1, 8, 8, 9, RT_ELEMENTS(s_aValuesD), s_aValuesD }, 2171 { bs3CpuInstr3_pmulld_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE4_1, 8, 8, 255, RT_ELEMENTS(s_aValuesD), s_aValuesD }, 2164 2172 { bs3CpuInstr3_vpmulld_XMM2_XMM1_XMM0_icebp_c64, 255, RM_REG, T_AVX_128, 2, 1, 0, RT_ELEMENTS(s_aValuesD), s_aValuesD }, 2165 2173 { bs3CpuInstr3_vpmulld_XMM2_XMM1_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128, 2, 1, 255, RT_ELEMENTS(s_aValuesD), s_aValuesD }, 2174 { bs3CpuInstr3_vpmulld_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, RT_ELEMENTS(s_aValuesD), s_aValuesD }, 2175 { bs3CpuInstr3_vpmulld_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128, 8, 9, 255, RT_ELEMENTS(s_aValuesD), s_aValuesD }, 2166 2176 { bs3CpuInstr3_vpmulld_YMM2_YMM1_YMM0_icebp_c64, 255, RM_REG, T_AVX_256, 2, 1, 0, RT_ELEMENTS(s_aValuesD), s_aValuesD }, 2167 2177 { bs3CpuInstr3_vpmulld_YMM2_YMM1_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 2, 1, 255, RT_ELEMENTS(s_aValuesD), s_aValuesD }, … … 2222 2232 { bs3CpuInstr3_pmulhw_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, 1, 1, 2, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2223 2233 { bs3CpuInstr3_pmulhw_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 1, 1, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2234 { bs3CpuInstr3_pmulhw_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2235 { bs3CpuInstr3_pmulhw_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 8, 8, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2224 2236 { bs3CpuInstr3_vpmulhw_XMM1_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, 1, 1, 2, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2225 2237 { bs3CpuInstr3_vpmulhw_XMM1_XMM1_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128, 1, 1, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2226 2238 { bs3CpuInstr3_vpmulhw_YMM1_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, 1, 1, 2, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2227 2239 { bs3CpuInstr3_vpmulhw_YMM1_YMM1_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 1, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2240 { bs3CpuInstr3_vpmulhw_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2241 { bs3CpuInstr3_vpmulhw_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128, 8, 9, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2242 { bs3CpuInstr3_vpmulhw_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, 8, 9, 10, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2243 { bs3CpuInstr3_vpmulhw_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 8, 9, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2228 2244 }; 2229 2245 static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); … … 2284 2300 { bs3CpuInstr3_vpmulhuw_YMM1_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, 1, 1, 2, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2285 2301 { bs3CpuInstr3_vpmulhuw_YMM1_YMM1_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 1, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2302 2303 { bs3CpuInstr3_pmulhuw_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2304 { bs3CpuInstr3_pmulhuw_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 8, 8, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2305 { bs3CpuInstr3_vpmulhuw_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2306 { bs3CpuInstr3_vpmulhuw_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128, 8, 9, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2307 { bs3CpuInstr3_vpmulhuw_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, 8, 9, 10, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2308 { bs3CpuInstr3_vpmulhuw_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 8, 9, 255, RT_ELEMENTS(s_aValuesW), s_aValuesW }, 2286 2309 }; 2287 2310 static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); … … 6923 6946 { bs3CpuInstr3_sha1rnds4_XMM1_FSxBX_003h_icebp_c64, 255, RM_MEM, T_SHA, 1, 1, 255, RT_ELEMENTS(s_aValuesSha1Rnds4_03), s_aValuesSha1Rnds4_03 }, 6924 6947 6948 { bs3CpuInstr3_sha1rnds4_XMM9_XMM8_000h_icebp_c64, 255, RM_REG, T_SHA, 9, 9, 8, RT_ELEMENTS(s_aValuesSha1Rnds4_00), s_aValuesSha1Rnds4_00 }, 6949 { bs3CpuInstr3_sha1rnds4_XMM9_FSxBX_000h_icebp_c64, 255, RM_MEM, T_SHA, 9, 9, 255, RT_ELEMENTS(s_aValuesSha1Rnds4_00), s_aValuesSha1Rnds4_00 }, 6950 { bs3CpuInstr3_sha1rnds4_XMM9_XMM8_001h_icebp_c64, 255, RM_REG, T_SHA, 9, 9, 8, RT_ELEMENTS(s_aValuesSha1Rnds4_01), s_aValuesSha1Rnds4_01 }, 6951 { bs3CpuInstr3_sha1rnds4_XMM9_FSxBX_001h_icebp_c64, 255, RM_MEM, T_SHA, 9, 9, 255, RT_ELEMENTS(s_aValuesSha1Rnds4_01), s_aValuesSha1Rnds4_01 }, 6952 { bs3CpuInstr3_sha1rnds4_XMM9_XMM8_002h_icebp_c64, 255, RM_REG, T_SHA, 9, 9, 8, RT_ELEMENTS(s_aValuesSha1Rnds4_02), s_aValuesSha1Rnds4_02 }, 6953 { bs3CpuInstr3_sha1rnds4_XMM9_FSxBX_002h_icebp_c64, 255, RM_MEM, T_SHA, 9, 9, 255, RT_ELEMENTS(s_aValuesSha1Rnds4_02), s_aValuesSha1Rnds4_02 }, 6954 { bs3CpuInstr3_sha1rnds4_XMM9_XMM8_003h_icebp_c64, 255, RM_REG, T_SHA, 9, 9, 8, RT_ELEMENTS(s_aValuesSha1Rnds4_03), s_aValuesSha1Rnds4_03 }, 6955 { bs3CpuInstr3_sha1rnds4_XMM9_FSxBX_003h_icebp_c64, 255, RM_MEM, T_SHA, 9, 9, 255, RT_ELEMENTS(s_aValuesSha1Rnds4_03), s_aValuesSha1Rnds4_03 }, 6925 6956 }; 6926 6957 static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); … … 9495 9526 uint8_t cBitsGprValMask; 9496 9527 bool fInvalidEncoding; 9497 boolfGprDst;9528 uint8_t fGprDst; 9498 9529 uint8_t iGprReg; 9499 9530 uint8_t iMediaReg; … … 9566 9597 uint8_t const cbInstr = ((uint8_t const BS3_FAR *)(uintptr_t)paTests[iTest].pfnWorker)[-1]; 9567 9598 unsigned const cValues = paTests[iTest].cValues; 9568 bool const fGprDst = paTests[iTest].fGprDst; 9599 bool const fGprDst = paTests[iTest].fGprDst == true; 9600 bool const fMmBoth = paTests[iTest].fGprDst == 2; 9569 9601 bool const fMmxInstr = paTests[iTest].enmType < T_SSE; 9570 9602 bool const fSseInstr = paTests[iTest].enmType >= T_SSE && paTests[iTest].enmType < T_AVX_128; … … 9622 9654 * Set up the context and some expectations. 9623 9655 */ 9624 if (fGprDst) 9656 if (fMmBoth) 9657 { 9658 if (fMmxInstr) 9659 Bs3ExtCtxSetMm(pExtCtx, paTests[iTest].iGprReg, paValues[iVal].uMedia.QWords.qw0, BS3EXTCTXTOPMM_ZERO); 9660 else if (fSseInstr) 9661 Bs3ExtCtxSetXmm(pExtCtx, paTests[iTest].iGprReg, &paValues[iVal].uMedia.DQWords.dqw0); 9662 else 9663 Bs3ExtCtxSetYmm(pExtCtx, paTests[iTest].iGprReg, &paValues[iVal].uMedia, 32); 9664 } 9665 else if (fGprDst) 9625 9666 { 9626 9667 /* dest - gpr/mem */ … … 9719 9760 Bs3ExtCtxSetAbridgedFtw(pExtCtx, 0xff); 9720 9761 } 9721 if (!fGprDst && bXcptExpect == X86_XCPT_DB && paTests[iTest].iMediaReg != UINT8_MAX) 9762 if (fMmBoth && bXcptExpect == X86_XCPT_DB) 9763 { 9764 RTUINT256U uDstVal = RTUINT256_INIT_C(0, 0, 0, 0); 9765 uDstVal.au64[0] = paValues[iVal].uGpr; 9766 if (fMmxInstr) 9767 Bs3ExtCtxSetMm(pExtCtx, paTests[iTest].iMediaReg, paValues[iVal].uGpr, BS3EXTCTXTOPMM_SET); 9768 else if (fSseInstr) 9769 Bs3ExtCtxSetXmm(pExtCtx, paTests[iTest].iMediaReg, &uDstVal.DQWords.dqw0); 9770 else 9771 Bs3ExtCtxSetYmm(pExtCtx, paTests[iTest].iMediaReg, &uDstVal, 32); 9772 } 9773 else if (!fGprDst && bXcptExpect == X86_XCPT_DB && paTests[iTest].iMediaReg != UINT8_MAX) 9722 9774 { 9723 9775 if (fMmxInstr) … … 9849 9901 9850 9902 /* 9851 * [V]MOVD / [V]MOVQ - greg/mem variants only.9903 * [V]MOVD / [V]MOVQ - Move doubleword / Move quadword. 9852 9904 */ 9853 9905 BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_movd_movq(uint8_t bMode) … … 9882 9934 9883 9935 /* Note! Seems the 256-bit variants doesn't generate \#ACs on a 10980XE. WEIRD! */ 9936 /* Note: 'VEX.W!' entries: 'vmovq' in non-long modes ignores VEX.W1, acts as VEX.W0 'vmovd' */ 9937 /* Note: 'MMx2' entries: test type #2 worker now supports Media, Media operands (fGprDst == 2) */ 9884 9938 static BS3CPUINSTR3_TEST2_T const s_aTests16[] = 9885 9939 { … … 9898 9952 { bs3CpuInstr3_vmovd_EDX_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, 4, 32, false, true, 2, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9899 9953 { bs3CpuInstr3_vmovd_FSxBX_XMM1_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9954 9900 9955 { bs3CpuInstr3_movq_MM1_FSxBX_icebp_c16, 255, RM_MEM64, T_MMX, 8, 64, false, false, 255, 1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ }, 9901 9956 { bs3CpuInstr3_movq_FSxBX_MM1_icebp_c16, 255, RM_MEM64, T_MMX, 8, 64, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9957 { bs3CpuInstr3_movq_MM1_MM2_icebp_c16, 255, RM_REG, T_MMX, 8, 64, false, 2, 2, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, /* MMx2 */ 9902 9958 { bs3CpuInstr3_movq_XMM1_FSxBX_icebp_c16, 255, RM_MEM64, T_SSE2, 8, 64, false, false, 255, 1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ }, 9903 9959 { bs3CpuInstr3_movq_FSxBX_XMM1_icebp_c16, 255, RM_MEM64, T_SSE2, 8, 64, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9960 { bs3CpuInstr3_movq_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, 8, 64, false, 2, 2, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, /* MMx2 */ 9904 9961 9905 9962 { bs3CpuInstr3_vmovq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, false, 255, 1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ }, 9963 { bs3CpuInstr3_06e_vmovq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, false, 255, 1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD }, /* VEX.W! */ 9906 9964 { bs3CpuInstr3_vmovq_FSxBX_XMM1_icebp_c16, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9965 { bs3CpuInstr3_07e_vmovq_FSxBX_XMM1_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, /* VEX.W! */ 9966 { bs3CpuInstr3_vmovq_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, 8, 64, false, 2, 2, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, /* MMx2 */ 9907 9967 }; 9908 9968 static BS3CPUINSTR3_TEST2_T const s_aTests32[] = … … 9925 9985 { bs3CpuInstr3_movq_MM1_FSxBX_icebp_c32, 255, RM_MEM64, T_MMX, 8, 64, false, false, 255, 1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ }, 9926 9986 { bs3CpuInstr3_movq_FSxBX_MM1_icebp_c32, 255, RM_MEM64, T_MMX, 8, 64, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9987 { bs3CpuInstr3_movq_MM1_MM2_icebp_c32, 255, RM_REG, T_MMX, 8, 64, false, 2, 2, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, /* MMx2 */ 9927 9988 9928 9989 { bs3CpuInstr3_movq_XMM1_FSxBX_icebp_c32, 255, RM_MEM64, T_SSE2, 8, 64, false, false, 255, 1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ }, 9929 9990 { bs3CpuInstr3_movq_FSxBX_XMM1_icebp_c32, 255, RM_MEM64, T_SSE2, 8, 64, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9991 { bs3CpuInstr3_movq_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, 8, 64, false, 2, 2, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, /* MMx2 */ 9930 9992 9931 9993 { bs3CpuInstr3_vmovq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, false, 255, 1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ }, 9994 { bs3CpuInstr3_06e_vmovq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, false, 255, 1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD }, /* VEX.W! */ 9932 9995 { bs3CpuInstr3_vmovq_FSxBX_XMM1_icebp_c32, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9996 { bs3CpuInstr3_07e_vmovq_FSxBX_XMM1_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, /* VEX.W! */ 9997 { bs3CpuInstr3_vmovq_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, 8, 64, false, 2, 2, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, /* MMx2 */ 9933 9998 }; 9934 9999 static BS3CPUINSTR3_TEST2_T const s_aTests64[] = … … 9948 10013 { bs3CpuInstr3_movd_R8D_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 4, 32, false, true, 8, 9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9949 10014 { bs3CpuInstr3_movd_FSxBX_XMM1_icebp_c64, 255, RM_MEM32, T_SSE2, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 10015 { bs3CpuInstr3_movd_FSxBX_XMM9_icebp_c64, 255, RM_MEM32, T_SSE2, 4, 32, false, true, 255, 9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9950 10016 9951 10017 { bs3CpuInstr3_vmovd_XMM1_EAX_icebp_c64, 255, RM_REG, T_AVX_128, 4, 32, false, false, 0, 1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD }, … … 9964 10030 { bs3CpuInstr3_movq_FSxBX_MM1_icebp_c64, 255, RM_MEM64, T_MMX, 8, 64, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9965 10031 { bs3CpuInstr3_07e_movq_FSxBX_MM1_icebp_c64, 255, RM_MEM64, T_MMX, 8, 64, false, true, 255, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 10032 { bs3CpuInstr3_movq_MM1_MM2_icebp_c64, 255, RM_REG, T_MMX, 8, 64, false, 2, 2, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, /* MMx2 */ 9966 10033 9967 10034 { bs3CpuInstr3_movq_XMM9_R8_icebp_c64, 255, RM_REG, T_SSE2, 8, 64, false, false, 8, 9, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ }, … … 9975 10042 { bs3CpuInstr3_movq_FSxBX_XMM9_icebp_c64, 255, RM_MEM64, T_SSE2, 8, 64, false, true, 255, 9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9976 10043 { bs3CpuInstr3_07e_movq_FSxBX_XMM9_icebp_c64, 255, RM_MEM64, T_SSE2, 8, 64, false, true, 255, 9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 10044 { bs3CpuInstr3_movq_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, 8, 64, false, 2, 2, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, /* MMx2 */ 9977 10045 9978 10046 { bs3CpuInstr3_vmovq_XMM9_R8_icebp_c64, 255, RM_REG, T_AVX_128, 8, 64, false, false, 8, 9, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ }, … … 9986 10054 { bs3CpuInstr3_vmovq_FSxBX_XMM9_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true, 255, 9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 9987 10055 { bs3CpuInstr3_07e_vmovq_FSxBX_XMM9_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true, 255, 9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, 10056 { bs3CpuInstr3_vmovq_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, 8, 64, false, 2, 2, 1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm }, /* MMx2 */ 9988 10057 }; 9989 10058 static BS3CPUINSTR3_TEST2_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST2_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); … … 15167 15236 { bs3CpuInstr3_vgatherdps_xmm0_rbx_plus_0_plus_xmm1_x_1_xmm2_icebp_c64, X86_XCPT_DB, 0, T_AVX2_128, 0, 3, 1, 2, RT_ELEMENTS(s_aValues32_32x1), s_aValues32_32x1 }, 15168 15237 { bs3CpuInstr3_vgatherdps_xmm8_r8d_plus_0_plus_xmm9_x_1_xmm10_icebp_c64, X86_XCPT_DB, 0, T_AVX2_128, 8, 8, 9, 10, RT_ELEMENTS(s_aValues32_32x1), s_aValues32_32x1 }, 15238 { bs3CpuInstr3_vgatherdps_ymm0_ebx_plus_0_plus_ymm0_x_1_ymm2_icebp_c64, X86_XCPT_UD, 0, T_AVX2_256, 0, 3, 0, 2, RT_ELEMENTS(s_aValuesUD), s_aValuesUD }, 15239 { bs3CpuInstr3_vgatherdps_ymm0_ebx_plus_0_plus_ymm1_x_1_ymm0_icebp_c64, X86_XCPT_UD, 0, T_AVX2_256, 0, 3, 1, 0, RT_ELEMENTS(s_aValuesUD), s_aValuesUD }, 15169 15240 { bs3CpuInstr3_vgatherdps_ymm0_ebx_plus_0_plus_ymm1_x_1_ymm1_icebp_c64, X86_XCPT_UD, 0, T_AVX2_256, 0, 3, 1, 1, RT_ELEMENTS(s_aValuesUD), s_aValuesUD }, 15170 15241 { bs3CpuInstr3_vgatherdps_ymm0_ebx_plus_0_plus_ymm1_x_1_ymm2_icebp_c64, X86_XCPT_DB, 0, T_AVX2_256, 0, 3, 1, 2, RT_ELEMENTS(s_aValues32_32x1), s_aValues32_32x1 },
Note:
See TracChangeset
for help on using the changeset viewer.