Changeset 104077 in vbox for trunk/src/VBox
- Timestamp:
- Mar 27, 2024 8:19:55 AM (12 months ago)
- svn:sync-xref-src-repo-rev:
- 162471
- Location:
- trunk/src/VBox/ValidationKit/bootsectors
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3-template.mac
r104060 r104077 2130 2130 2131 2131 ; 2132 ; [V]PINSRB 2133 ; 2134 EMIT_INSTR_PLUS_ICEBP pinsrb, XMM1, EDX, 0FFh 2135 EMIT_INSTR_PLUS_ICEBP pinsrb, XMM1, FSxBX, 0FFh 2136 EMIT_INSTR_PLUS_ICEBP pinsrb, XMM1, EDX, 000h 2137 EMIT_INSTR_PLUS_ICEBP pinsrb, XMM1, FSxBX, 000h 2138 2139 EMIT_INSTR_PLUS_ICEBP vpinsrb, XMM1, XMM2, EDX, 0FFh 2140 EMIT_INSTR_PLUS_ICEBP vpinsrb, XMM1, XMM2, FSxBX, 0FFh 2141 EMIT_INSTR_PLUS_ICEBP vpinsrb, XMM1, XMM2, EDX, 000h 2142 EMIT_INSTR_PLUS_ICEBP vpinsrb, XMM1, XMM2, FSxBX, 000h 2143 2144 EMIT_INSTR_PLUS_ICEBP_C64 pinsrb, XMM8, R9D, 0FFh 2145 EMIT_INSTR_PLUS_ICEBP_C64 pinsrb, XMM8, FSxBX, 0FFh 2146 EMIT_INSTR_PLUS_ICEBP_C64 pinsrb, XMM8, R9D, 000h 2147 EMIT_INSTR_PLUS_ICEBP_C64 pinsrb, XMM8, FSxBX, 000h 2148 2149 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrb, XMM8, XMM9, R9D, 0FFh 2150 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrb, XMM8, XMM9, FSxBX, 0FFh 2151 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrb, XMM8, XMM9, R9D, 000h 2152 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrb, XMM8, XMM9, FSxBX, 000h 2153 2154 ; 2132 2155 ; [V]PINSRW 2133 2156 ; 2134 EMIT_INSTR_PLUS_ICEBP pinsrw, MM1,EDX, 0FFh2135 EMIT_INSTR_PLUS_ICEBP pinsrw, MM1,FSxBX, 0FFh2136 EMIT_INSTR_PLUS_ICEBP pinsrw, MM1,EDX, 000h2137 EMIT_INSTR_PLUS_ICEBP pinsrw, MM1,FSxBX, 000h2138 2139 EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, EDX, 0FFh2140 EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, FSxBX, 0FFh2141 EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, EDX, 000h2142 EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, FSxBX, 000h2143 2144 EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2,EDX, 0FFh2145 EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2,FSxBX, 0FFh2146 EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2,EDX, 000h2147 EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2,FSxBX, 000h2148 2149 EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, MM1, R9D, 0FFh2150 EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, MM1, R9D, 000h2157 EMIT_INSTR_PLUS_ICEBP pinsrw, MM1, EDX, 0FFh 2158 EMIT_INSTR_PLUS_ICEBP pinsrw, MM1, FSxBX, 0FFh 2159 EMIT_INSTR_PLUS_ICEBP pinsrw, MM1, EDX, 000h 2160 EMIT_INSTR_PLUS_ICEBP pinsrw, MM1, FSxBX, 000h 2161 2162 EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, EDX, 0FFh 2163 EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, FSxBX, 0FFh 2164 EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, EDX, 000h 2165 EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, FSxBX, 000h 2166 2167 EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2, EDX, 0FFh 2168 EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2, FSxBX, 0FFh 2169 EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2, EDX, 000h 2170 EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2, FSxBX, 000h 2171 2172 EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, MM1, R9D, 0FFh 2173 EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, MM1, R9D, 000h 2151 2174 2152 2175 EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM8, R9D, 0FFh … … 2155 2178 EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM8, FSxBX, 000h 2156 2179 2157 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, R9D, 0FFh 2158 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, FSxBX, 0FFh 2159 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, R9D, 000h 2160 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, FSxBX, 000h 2180 EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM1, RDX, 0FFh 2181 EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM8, R9, 0FFh 2182 EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM1, RDX, 000h 2183 EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM8, R9, 000h 2184 2185 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, R9D, 0FFh 2186 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, FSxBX, 0FFh 2187 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, R9D, 000h 2188 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, FSxBX, 000h 2189 2190 ; 2191 ; [V]PINSRD 2192 ; 2193 EMIT_INSTR_PLUS_ICEBP pinsrd, XMM1, EDX, 0FFh 2194 EMIT_INSTR_PLUS_ICEBP pinsrd, XMM1, FSxBX, 0FFh 2195 EMIT_INSTR_PLUS_ICEBP pinsrd, XMM1, EDX, 000h 2196 EMIT_INSTR_PLUS_ICEBP pinsrd, XMM1, FSxBX, 000h 2197 2198 EMIT_INSTR_PLUS_ICEBP vpinsrd, XMM1, XMM2, EDX, 0FFh 2199 EMIT_INSTR_PLUS_ICEBP vpinsrd, XMM1, XMM2, FSxBX, 0FFh 2200 EMIT_INSTR_PLUS_ICEBP vpinsrd, XMM1, XMM2, EDX, 000h 2201 EMIT_INSTR_PLUS_ICEBP vpinsrd, XMM1, XMM2, FSxBX, 000h 2202 2203 EMIT_INSTR_PLUS_ICEBP_C64 pinsrd, XMM8, R9D, 0FFh 2204 EMIT_INSTR_PLUS_ICEBP_C64 pinsrd, XMM8, FSxBX, 0FFh 2205 EMIT_INSTR_PLUS_ICEBP_C64 pinsrd, XMM8, R9D, 000h 2206 EMIT_INSTR_PLUS_ICEBP_C64 pinsrd, XMM8, FSxBX, 000h 2207 2208 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrd, XMM8, XMM9, R9D, 0FFh 2209 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrd, XMM8, XMM9, FSxBX, 0FFh 2210 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrd, XMM8, XMM9, R9D, 000h 2211 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrd, XMM8, XMM9, FSxBX, 000h 2212 2213 ; 2214 ; [V]PINSRQ 2215 ; 2216 EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM1, RDX, 0FFh 2217 EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM1, FSxBX, 0FFh 2218 EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM1, RDX, 000h 2219 EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM1, FSxBX, 000h 2220 2221 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM1, XMM2, RDX, 0FFh 2222 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM1, XMM2, FSxBX, 0FFh 2223 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM1, XMM2, RDX, 000h 2224 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM1, XMM2, FSxBX, 000h 2225 2226 EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM8, R9, 0FFh 2227 EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM8, FSxBX, 0FFh 2228 EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM8, R9, 000h 2229 EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM8, FSxBX, 000h 2230 2231 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM8, XMM9, R9, 0FFh 2232 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM8, XMM9, FSxBX, 0FFh 2233 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM8, XMM9, R9, 000h 2234 EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM8, XMM9, FSxBX, 000h 2161 2235 2162 2236 ; -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32
r104066 r104077 13516 13516 13517 13517 /* 13518 * [V]PINSR W.13518 * [V]PINSRB / [V]PINSRW / [V]PINSRD / [V]PINSRQ. 13519 13519 */ 13520 BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_pinsrw(uint8_t bMode) 13521 { 13522 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValues00[] = 13523 { 13524 /* Media source GPR word Media dest. */ 13525 { RTUINT256_INIT_C(0, 0, 0, 0), UINT64_C(0x1234), RTUINT256_INIT_C(0, 0, 0, 0x0000000000001234) }, 13526 }; 13527 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValuesFF_64[] = 13528 { 13529 /* Media source GPR word Media dest. */ 13530 { RTUINT256_INIT_C(0, 0, 0, 0), UINT64_C(0x1234), RTUINT256_INIT_C(0, 0, 0, 0x1234000000000000) }, 13531 }; 13532 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValuesFF[] = 13533 { 13534 /* Media source GPR word Media dest. */ 13535 { RTUINT256_INIT_C(0, 0, 0, 0), UINT64_C(0x1234), RTUINT256_INIT_C(0, 0, 0x1234000000000000, 0) }, 13520 BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_pinsrb_pinsrw_pinsrd_pinsrq(uint8_t bMode) 13521 { 13522 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValues00_b[] = 13523 { 13524 { /*medSrc*/ RTUINT256_INIT_C(0, 0, 0x807f6e5d4c3b2a19, 0xf0e1d2c3b4a59687), 13525 /*gprSrc*/ UINT64_C( 0xcdefba9845671234), 13526 /*medDst*/ RTUINT256_INIT_C(0, 0, 0x807f6e5d4c3b2a19, 0xf0e1d2c3b4a59634) }, 13527 }; 13528 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValuesFF_b[] = 13529 { 13530 { /*medSrc*/ RTUINT256_INIT_C(0, 0, 0x0000000000000000, 0x0000000000000000), 13531 /*gprSrc*/ UINT64_C( 0x0000000000001234), 13532 /*medDst*/ RTUINT256_INIT_C(0, 0, 0x3400000000000000, 0x0000000000000000) }, 13533 }; 13534 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValues00_w[] = 13535 { 13536 { /*medSrc*/ RTUINT256_INIT_C(0, 0, 0x807f6e5d4c3b2a19, 0xf0e1d2c3b4a59687), 13537 /*gprSrc*/ UINT64_C( 0xcdefba9845671234), 13538 /*medDst*/ RTUINT256_INIT_C(0, 0, 0x807f6e5d4c3b2a19, 0xf0e1d2c3b4a51234) }, 13539 }; 13540 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValuesFF_w_64[] = 13541 { 13542 { /*medSrc*/ RTUINT256_INIT_C(0, 0, 0x0000000000000000, 0x0000000000000000), 13543 /*gprSrc*/ UINT64_C( 0x0000000000001234), 13544 /*medDst*/ RTUINT256_INIT_C(0, 0, 0x0000000000000000, 0x1234000000000000) }, 13545 }; 13546 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValuesFF_w[] = 13547 { 13548 { /*medSrc*/ RTUINT256_INIT_C(0, 0, 0x0000000000000000, 0x0000000000000000), 13549 /*gprSrc*/ UINT64_C( 0x0000000000001234), 13550 /*medDst*/ RTUINT256_INIT_C(0, 0, 0x1234000000000000, 0x0000000000000000) }, 13551 }; 13552 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValues00_d[] = 13553 { 13554 { /*medSrc*/ RTUINT256_INIT_C(0, 0, 0x807f6e5d4c3b2a19, 0xf0e1d2c3b4a59687), 13555 /*gprSrc*/ UINT64_C( 0xcdefba9845671234), 13556 /*medDst*/ RTUINT256_INIT_C(0, 0, 0x807f6e5d4c3b2a19, 0xf0e1d2c345671234) }, 13557 }; 13558 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValuesFF_d[] = 13559 { 13560 { /*medSrc*/ RTUINT256_INIT_C(0, 0, 0x0000000000000000, 0x0000000000000000), 13561 /*gprSrc*/ UINT64_C( 0x0000000000001234), 13562 /*medDst*/ RTUINT256_INIT_C(0, 0, 0x0000123400000000, 0x0000000000000000) }, 13563 }; 13564 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValues00_q[] = 13565 { 13566 { /*medSrc*/ RTUINT256_INIT_C(0, 0, 0x807f6e5d4c3b2a19, 0xf0e1d2c3b4a59687), 13567 /*gprSrc*/ UINT64_C( 0xcdefba9845671234), 13568 /*medDst*/ RTUINT256_INIT_C(0, 0, 0x807f6e5d4c3b2a19, 0xcdefba9845671234) }, 13569 }; 13570 static BS3CPUINSTR3_TEST6_VALUES_T const s_aValuesFF_q[] = 13571 { 13572 { /*medSrc*/ RTUINT256_INIT_C(0, 0, 0x0000000000000000, 0x0000000000000000), 13573 /*gprSrc*/ UINT64_C( 0x0000000000001234), 13574 /*medDst*/ RTUINT256_INIT_C(0, 0, 0x0000000000001234, 0x0000000000000000) }, 13536 13575 }; 13537 13576 13538 13577 static BS3CPUINSTR3_TEST6_T const s_aTests16[] = 13539 13578 { 13540 { bs3CpuInstr3_pinsrw_MM1_EDX_000h_icebp_c16, 255, RM_REG, T_MMX_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13541 { bs3CpuInstr3_pinsrw_MM1_FSxBX_000h_icebp_c16, 255, RM_MEM32, T_MMX_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13542 { bs3CpuInstr3_pinsrw_MM1_EDX_0FFh_icebp_c16, 255, RM_REG, T_MMX_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_64), s_aValuesFF_64 }, 13543 { bs3CpuInstr3_pinsrw_MM1_FSxBX_0FFh_icebp_c16, 255, RM_MEM32, T_MMX_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_64), s_aValuesFF_64 }, 13544 13545 { bs3CpuInstr3_pinsrw_XMM1_EDX_000h_icebp_c16, 255, RM_REG, T_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13546 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_000h_icebp_c16, 255, RM_MEM32, T_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13547 { bs3CpuInstr3_pinsrw_XMM1_EDX_0FFh_icebp_c16, 255, RM_REG, T_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13548 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_0FFh_icebp_c16, 255, RM_MEM32, T_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13549 13550 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_000h_icebp_c16, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13551 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_000h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13552 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_0FFh_icebp_c16, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13553 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_0FFh_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13579 { bs3CpuInstr3_pinsrb_XMM1_EDX_0FFh_icebp_c16, 255, RM_REG, T_SSE4_1, 1, 8, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13580 { bs3CpuInstr3_pinsrb_XMM1_FSxBX_0FFh_icebp_c16, 255, RM_MEM8, T_SSE4_1, 1, 8, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13581 { bs3CpuInstr3_pinsrb_XMM1_EDX_000h_icebp_c16, 255, RM_REG, T_SSE4_1, 1, 8, 2, 1, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13582 { bs3CpuInstr3_pinsrb_XMM1_FSxBX_000h_icebp_c16, 255, RM_MEM8, T_SSE4_1, 1, 8, 255, 1, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13583 13584 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_EDX_0FFh_icebp_c16, 255, RM_REG, T_AVX_128, 1, 8, 2, 2, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13585 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_FSxBX_0FFh_icebp_c16, X86_XCPT_AC, RM_MEM8, T_AVX_128, 1, 8, 255, 2, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13586 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_EDX_000h_icebp_c16, 255, RM_REG, T_AVX_128, 1, 8, 2, 2, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13587 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_FSxBX_000h_icebp_c16, X86_XCPT_AC, RM_MEM8, T_AVX_128, 1, 8, 255, 2, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13588 13589 { bs3CpuInstr3_pinsrw_MM1_EDX_000h_icebp_c16, 255, RM_REG, T_MMX_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13590 { bs3CpuInstr3_pinsrw_MM1_FSxBX_000h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_MMX_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13591 { bs3CpuInstr3_pinsrw_MM1_EDX_0FFh_icebp_c16, 255, RM_REG, T_MMX_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 }, 13592 { bs3CpuInstr3_pinsrw_MM1_FSxBX_0FFh_icebp_c16, 255, RM_MEM32, T_MMX_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 }, 13593 13594 { bs3CpuInstr3_pinsrw_XMM1_EDX_000h_icebp_c16, 255, RM_REG, T_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13595 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_000h_icebp_c16, 255, RM_MEM32, T_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13596 { bs3CpuInstr3_pinsrw_XMM1_EDX_0FFh_icebp_c16, 255, RM_REG, T_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13597 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_0FFh_icebp_c16, 255, RM_MEM32, T_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13598 13599 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_000h_icebp_c16, 255, RM_REG, T_AVX_128, 2, 16, 2, 2, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13600 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_000h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 2, 16, 255, 2, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13601 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_0FFh_icebp_c16, 255, RM_REG, T_AVX_128, 2, 16, 2, 2, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13602 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_0FFh_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 2, 16, 255, 2, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13603 13604 { bs3CpuInstr3_pinsrd_XMM1_EDX_0FFh_icebp_c16, 255, RM_REG, T_SSE4_1, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13605 { bs3CpuInstr3_pinsrd_XMM1_FSxBX_0FFh_icebp_c16, 255, RM_MEM32, T_SSE4_1, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13606 { bs3CpuInstr3_pinsrd_XMM1_EDX_000h_icebp_c16, 255, RM_REG, T_SSE4_1, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13607 { bs3CpuInstr3_pinsrd_XMM1_FSxBX_000h_icebp_c16, 255, RM_MEM32, T_SSE4_1, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13608 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_EDX_0FFh_icebp_c16, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13609 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_FSxBX_0FFh_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13610 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_EDX_000h_icebp_c16, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13611 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_FSxBX_000h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13554 13612 }; 13555 13613 static BS3CPUINSTR3_TEST6_T const s_aTests32[] = 13556 13614 { 13557 { bs3CpuInstr3_pinsrw_MM1_EDX_000h_icebp_c32, 255, RM_REG, T_MMX_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13558 { bs3CpuInstr3_pinsrw_MM1_FSxBX_000h_icebp_c32, 255, RM_MEM32, T_MMX_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13559 { bs3CpuInstr3_pinsrw_MM1_EDX_0FFh_icebp_c32, 255, RM_REG, T_MMX_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_64), s_aValuesFF_64 }, 13560 { bs3CpuInstr3_pinsrw_MM1_FSxBX_0FFh_icebp_c32, 255, RM_MEM32, T_MMX_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_64), s_aValuesFF_64 }, 13561 13562 { bs3CpuInstr3_pinsrw_XMM1_EDX_000h_icebp_c32, 255, RM_REG, T_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13563 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_000h_icebp_c32, 255, RM_MEM32, T_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13564 { bs3CpuInstr3_pinsrw_XMM1_EDX_0FFh_icebp_c32, 255, RM_REG, T_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13565 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_0FFh_icebp_c32, 255, RM_MEM32, T_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13566 13567 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_000h_icebp_c32, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13568 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_000h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13569 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_0FFh_icebp_c32, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13570 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_0FFh_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13615 { bs3CpuInstr3_pinsrb_XMM1_EDX_0FFh_icebp_c32, 255, RM_REG, T_SSE4_1, 1, 8, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13616 { bs3CpuInstr3_pinsrb_XMM1_FSxBX_0FFh_icebp_c32, 255, RM_MEM8, T_SSE4_1, 1, 8, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13617 { bs3CpuInstr3_pinsrb_XMM1_EDX_000h_icebp_c32, 255, RM_REG, T_SSE4_1, 1, 8, 2, 1, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13618 { bs3CpuInstr3_pinsrb_XMM1_FSxBX_000h_icebp_c32, 255, RM_MEM8, T_SSE4_1, 1, 8, 255, 1, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13619 13620 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_EDX_0FFh_icebp_c32, 255, RM_REG, T_AVX_128, 1, 8, 2, 2, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13621 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_FSxBX_0FFh_icebp_c32, X86_XCPT_AC, RM_MEM8, T_AVX_128, 1, 8, 255, 2, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13622 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_EDX_000h_icebp_c32, 255, RM_REG, T_AVX_128, 1, 8, 2, 2, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13623 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_FSxBX_000h_icebp_c32, X86_XCPT_AC, RM_MEM8, T_AVX_128, 1, 8, 255, 2, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13624 13625 { bs3CpuInstr3_pinsrw_MM1_EDX_000h_icebp_c32, 255, RM_REG, T_MMX_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13626 { bs3CpuInstr3_pinsrw_MM1_FSxBX_000h_icebp_c32, 255, RM_MEM32, T_MMX_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13627 { bs3CpuInstr3_pinsrw_MM1_EDX_0FFh_icebp_c32, 255, RM_REG, T_MMX_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 }, 13628 { bs3CpuInstr3_pinsrw_MM1_FSxBX_0FFh_icebp_c32, 255, RM_MEM32, T_MMX_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 }, 13629 13630 { bs3CpuInstr3_pinsrw_XMM1_EDX_000h_icebp_c32, 255, RM_REG, T_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13631 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_000h_icebp_c32, 255, RM_MEM32, T_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13632 { bs3CpuInstr3_pinsrw_XMM1_EDX_0FFh_icebp_c32, 255, RM_REG, T_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13633 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_0FFh_icebp_c32, 255, RM_MEM32, T_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13634 13635 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_000h_icebp_c32, 255, RM_REG, T_AVX_128, 2, 16, 2, 2, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13636 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_000h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 2, 16, 255, 2, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13637 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_0FFh_icebp_c32, 255, RM_REG, T_AVX_128, 2, 16, 2, 2, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13638 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_0FFh_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 2, 16, 255, 2, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13639 13640 { bs3CpuInstr3_pinsrd_XMM1_EDX_0FFh_icebp_c32, 255, RM_REG, T_SSE4_1, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13641 { bs3CpuInstr3_pinsrd_XMM1_FSxBX_0FFh_icebp_c32, 255, RM_MEM32, T_SSE4_1, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13642 { bs3CpuInstr3_pinsrd_XMM1_EDX_000h_icebp_c32, 255, RM_REG, T_SSE4_1, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13643 { bs3CpuInstr3_pinsrd_XMM1_FSxBX_000h_icebp_c32, 255, RM_MEM32, T_SSE4_1, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13644 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_EDX_0FFh_icebp_c32, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13645 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_FSxBX_0FFh_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13646 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_EDX_000h_icebp_c32, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13647 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_FSxBX_000h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13571 13648 }; 13572 13649 static BS3CPUINSTR3_TEST6_T const s_aTests64[] = 13573 13650 { 13574 { bs3CpuInstr3_pinsrw_MM1_EDX_000h_icebp_c64, 255, RM_REG, T_MMX_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13575 { bs3CpuInstr3_pinsrw_MM1_R9D_000h_icebp_c64, 255, RM_REG, T_MMX_SSE, 4, 32, 9, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13576 { bs3CpuInstr3_pinsrw_MM1_FSxBX_000h_icebp_c64, 255, RM_MEM32, T_MMX_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13577 { bs3CpuInstr3_pinsrw_MM1_EDX_0FFh_icebp_c64, 255, RM_REG, T_MMX_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_64), s_aValuesFF_64 }, 13578 { bs3CpuInstr3_pinsrw_MM1_R9D_0FFh_icebp_c64, 255, RM_REG, T_MMX_SSE, 4, 32, 9, 1, 1, RT_ELEMENTS(s_aValuesFF_64), s_aValuesFF_64 }, 13579 { bs3CpuInstr3_pinsrw_MM1_FSxBX_0FFh_icebp_c64, 255, RM_MEM32, T_MMX_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_64), s_aValuesFF_64 }, 13580 13581 { bs3CpuInstr3_pinsrw_XMM1_EDX_000h_icebp_c64, 255, RM_REG, T_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13582 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_000h_icebp_c64, 255, RM_MEM32, T_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13583 { bs3CpuInstr3_pinsrw_XMM1_EDX_0FFh_icebp_c64, 255, RM_REG, T_SSE, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13584 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_0FFh_icebp_c64, 255, RM_MEM32, T_SSE, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13585 13586 { bs3CpuInstr3_pinsrw_XMM8_R9D_000h_icebp_c64, 255, RM_REG, T_SSE, 4, 32, 9, 8, 8, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13587 { bs3CpuInstr3_pinsrw_XMM8_FSxBX_000h_icebp_c64, 255, RM_MEM32, T_SSE, 4, 32, 255, 8, 8, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13588 { bs3CpuInstr3_pinsrw_XMM8_R9D_0FFh_icebp_c64, 255, RM_REG, T_SSE, 4, 32, 9, 8, 8, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13589 { bs3CpuInstr3_pinsrw_XMM8_FSxBX_0FFh_icebp_c64, 255, RM_MEM32, T_SSE, 4, 32, 255, 8, 8, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13590 13591 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_000h_icebp_c64, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13592 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_000h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13593 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13594 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13595 13596 { bs3CpuInstr3_vpinsrw_XMM8_XMM9_R9D_000h_icebp_c64, 255, RM_REG, T_AVX_128, 4, 32, 9, 9, 8, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13597 { bs3CpuInstr3_vpinsrw_XMM8_XMM9_FSxBX_000h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 9, 8, RT_ELEMENTS(s_aValues00), s_aValues00 }, 13598 { bs3CpuInstr3_vpinsrw_XMM8_XMM9_R9D_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 4, 32, 9, 9, 8, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13599 { bs3CpuInstr3_vpinsrw_XMM8_XMM9_FSxBX_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 9, 8, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 13600 }; 13651 { bs3CpuInstr3_pinsrb_XMM1_EDX_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, 1, 8, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13652 { bs3CpuInstr3_pinsrb_XMM1_FSxBX_0FFh_icebp_c64, 255, RM_MEM8, T_SSE4_1, 1, 8, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13653 { bs3CpuInstr3_pinsrb_XMM1_EDX_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 1, 8, 2, 1, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13654 { bs3CpuInstr3_pinsrb_XMM1_FSxBX_000h_icebp_c64, 255, RM_MEM8, T_SSE4_1, 1, 8, 255, 1, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13655 13656 { bs3CpuInstr3_pinsrb_XMM8_R9D_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, 1, 8, 9, 8, 8, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13657 { bs3CpuInstr3_pinsrb_XMM8_FSxBX_0FFh_icebp_c64, 255, RM_MEM8, T_SSE4_1, 1, 8, 255, 8, 8, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13658 { bs3CpuInstr3_pinsrb_XMM8_R9D_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 1, 8, 9, 8, 8, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13659 { bs3CpuInstr3_pinsrb_XMM8_FSxBX_000h_icebp_c64, 255, RM_MEM8, T_SSE4_1, 1, 8, 255, 8, 8, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13660 13661 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_EDX_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 1, 8, 2, 2, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13662 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_FSxBX_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM8, T_AVX_128, 1, 8, 255, 2, 1, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13663 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_EDX_000h_icebp_c64, 255, RM_REG, T_AVX_128, 1, 8, 2, 2, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13664 { bs3CpuInstr3_vpinsrb_XMM1_XMM2_FSxBX_000h_icebp_c64, X86_XCPT_AC, RM_MEM8, T_AVX_128, 1, 8, 255, 2, 1, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13665 13666 { bs3CpuInstr3_vpinsrb_XMM8_XMM9_R9D_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 1, 8, 9, 9, 8, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13667 { bs3CpuInstr3_vpinsrb_XMM8_XMM9_FSxBX_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM8, T_AVX_128, 1, 8, 255, 9, 8, RT_ELEMENTS(s_aValuesFF_b), s_aValuesFF_b }, 13668 { bs3CpuInstr3_vpinsrb_XMM8_XMM9_R9D_000h_icebp_c64, 255, RM_REG, T_AVX_128, 1, 8, 9, 9, 8, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13669 { bs3CpuInstr3_vpinsrb_XMM8_XMM9_FSxBX_000h_icebp_c64, X86_XCPT_AC, RM_MEM8, T_AVX_128, 1, 8, 255, 9, 8, RT_ELEMENTS(s_aValues00_b), s_aValues00_b }, 13670 13671 { bs3CpuInstr3_pinsrw_MM1_EDX_000h_icebp_c64, 255, RM_REG, T_MMX_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13672 { bs3CpuInstr3_pinsrw_MM1_R9D_000h_icebp_c64, 255, RM_REG, T_MMX_SSE, 2, 16, 9, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13673 { bs3CpuInstr3_pinsrw_MM1_FSxBX_000h_icebp_c64, 255, RM_MEM32, T_MMX_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13674 { bs3CpuInstr3_pinsrw_MM1_EDX_0FFh_icebp_c64, 255, RM_REG, T_MMX_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 }, 13675 { bs3CpuInstr3_pinsrw_MM1_R9D_0FFh_icebp_c64, 255, RM_REG, T_MMX_SSE, 2, 16, 9, 1, 1, RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 }, 13676 { bs3CpuInstr3_pinsrw_MM1_FSxBX_0FFh_icebp_c64, 255, RM_MEM32, T_MMX_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 }, 13677 13678 { bs3CpuInstr3_pinsrw_XMM1_EDX_000h_icebp_c64, 255, RM_REG, T_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13679 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_000h_icebp_c64, 255, RM_MEM32, T_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13680 { bs3CpuInstr3_pinsrw_XMM1_EDX_0FFh_icebp_c64, 255, RM_REG, T_SSE, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13681 { bs3CpuInstr3_pinsrw_XMM1_FSxBX_0FFh_icebp_c64, 255, RM_MEM32, T_SSE, 2, 16, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13682 13683 { bs3CpuInstr3_pinsrw_XMM8_R9D_000h_icebp_c64, 255, RM_REG, T_SSE, 2, 16, 9, 8, 8, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13684 { bs3CpuInstr3_pinsrw_XMM8_FSxBX_000h_icebp_c64, 255, RM_MEM32, T_SSE, 2, 16, 255, 8, 8, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13685 { bs3CpuInstr3_pinsrw_XMM8_R9D_0FFh_icebp_c64, 255, RM_REG, T_SSE, 2, 16, 9, 8, 8, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13686 { bs3CpuInstr3_pinsrw_XMM8_FSxBX_0FFh_icebp_c64, 255, RM_MEM32, T_SSE, 2, 16, 255, 8, 8, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13687 13688 { bs3CpuInstr3_pinsrw_XMM1_RDX_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13689 { bs3CpuInstr3_pinsrw_XMM8_R9_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, 2, 16, 9, 8, 8, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13690 { bs3CpuInstr3_pinsrw_XMM1_RDX_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 2, 16, 2, 1, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13691 { bs3CpuInstr3_pinsrw_XMM8_R9_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 2, 16, 9, 8, 8, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13692 13693 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_000h_icebp_c64, 255, RM_REG, T_AVX_128, 2, 16, 2, 2, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13694 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_000h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 2, 16, 255, 2, 1, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13695 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_EDX_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 2, 16, 2, 2, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13696 { bs3CpuInstr3_vpinsrw_XMM1_XMM2_FSxBX_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 2, 16, 255, 2, 1, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13697 13698 { bs3CpuInstr3_vpinsrw_XMM8_XMM9_R9D_000h_icebp_c64, 255, RM_REG, T_AVX_128, 2, 16, 9, 9, 8, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13699 { bs3CpuInstr3_vpinsrw_XMM8_XMM9_FSxBX_000h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 2, 16, 255, 9, 8, RT_ELEMENTS(s_aValues00_w), s_aValues00_w }, 13700 { bs3CpuInstr3_vpinsrw_XMM8_XMM9_R9D_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 2, 16, 9, 9, 8, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13701 { bs3CpuInstr3_vpinsrw_XMM8_XMM9_FSxBX_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 2, 16, 255, 9, 8, RT_ELEMENTS(s_aValuesFF_w), s_aValuesFF_w }, 13702 13703 { bs3CpuInstr3_pinsrd_XMM1_EDX_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13704 { bs3CpuInstr3_pinsrd_XMM1_FSxBX_0FFh_icebp_c64, 255, RM_MEM32, T_SSE4_1, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13705 { bs3CpuInstr3_pinsrd_XMM1_EDX_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 4, 32, 2, 1, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13706 { bs3CpuInstr3_pinsrd_XMM1_FSxBX_000h_icebp_c64, 255, RM_MEM32, T_SSE4_1, 4, 32, 255, 1, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13707 13708 { bs3CpuInstr3_pinsrd_XMM8_R9D_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, 4, 32, 9, 8, 8, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13709 { bs3CpuInstr3_pinsrd_XMM8_FSxBX_0FFh_icebp_c64, 255, RM_MEM32, T_SSE4_1, 4, 32, 255, 8, 8, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13710 { bs3CpuInstr3_pinsrd_XMM8_R9D_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 4, 32, 9, 8, 8, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13711 { bs3CpuInstr3_pinsrd_XMM8_FSxBX_000h_icebp_c64, 255, RM_MEM32, T_SSE4_1, 4, 32, 255, 8, 8, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13712 13713 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_EDX_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13714 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_FSxBX_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13715 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_EDX_000h_icebp_c64, 255, RM_REG, T_AVX_128, 4, 32, 2, 2, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13716 { bs3CpuInstr3_vpinsrd_XMM1_XMM2_FSxBX_000h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 2, 1, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13717 13718 { bs3CpuInstr3_vpinsrd_XMM8_XMM9_R9D_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 4, 32, 9, 9, 8, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13719 { bs3CpuInstr3_vpinsrd_XMM8_XMM9_FSxBX_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 9, 8, RT_ELEMENTS(s_aValuesFF_d), s_aValuesFF_d }, 13720 { bs3CpuInstr3_vpinsrd_XMM8_XMM9_R9D_000h_icebp_c64, 255, RM_REG, T_AVX_128, 4, 32, 9, 9, 8, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13721 { bs3CpuInstr3_vpinsrd_XMM8_XMM9_FSxBX_000h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, 255, 9, 8, RT_ELEMENTS(s_aValues00_d), s_aValues00_d }, 13722 13723 { bs3CpuInstr3_pinsrq_XMM1_RDX_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, 8, 64, 2, 1, 1, RT_ELEMENTS(s_aValuesFF_q), s_aValuesFF_q }, 13724 { bs3CpuInstr3_pinsrq_XMM1_FSxBX_0FFh_icebp_c64, 255, RM_MEM64, T_SSE4_1, 8, 64, 255, 1, 1, RT_ELEMENTS(s_aValuesFF_q), s_aValuesFF_q }, 13725 { bs3CpuInstr3_pinsrq_XMM1_RDX_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 8, 64, 2, 1, 1, RT_ELEMENTS(s_aValues00_q), s_aValues00_q }, 13726 { bs3CpuInstr3_pinsrq_XMM1_FSxBX_000h_icebp_c64, 255, RM_MEM64, T_SSE4_1, 8, 64, 255, 1, 1, RT_ELEMENTS(s_aValues00_q), s_aValues00_q }, 13727 13728 { bs3CpuInstr3_pinsrq_XMM8_R9_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, 8, 64, 9, 8, 8, RT_ELEMENTS(s_aValuesFF_q), s_aValuesFF_q }, 13729 { bs3CpuInstr3_pinsrq_XMM8_FSxBX_0FFh_icebp_c64, 255, RM_MEM64, T_SSE4_1, 8, 64, 255, 8, 8, RT_ELEMENTS(s_aValuesFF_q), s_aValuesFF_q }, 13730 { bs3CpuInstr3_pinsrq_XMM8_R9_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 8, 64, 9, 8, 8, RT_ELEMENTS(s_aValues00_q), s_aValues00_q }, 13731 { bs3CpuInstr3_pinsrq_XMM8_FSxBX_000h_icebp_c64, 255, RM_MEM64, T_SSE4_1, 8, 64, 255, 8, 8, RT_ELEMENTS(s_aValues00_q), s_aValues00_q }, 13732 13733 { bs3CpuInstr3_vpinsrq_XMM1_XMM2_RDX_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 8, 64, 2, 2, 1, RT_ELEMENTS(s_aValuesFF_q), s_aValuesFF_q }, 13734 { bs3CpuInstr3_vpinsrq_XMM1_XMM2_FSxBX_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, 255, 2, 1, RT_ELEMENTS(s_aValuesFF_q), s_aValuesFF_q }, 13735 { bs3CpuInstr3_vpinsrq_XMM1_XMM2_RDX_000h_icebp_c64, 255, RM_REG, T_AVX_128, 8, 64, 2, 2, 1, RT_ELEMENTS(s_aValues00_q), s_aValues00_q }, 13736 { bs3CpuInstr3_vpinsrq_XMM1_XMM2_FSxBX_000h_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, 255, 2, 1, RT_ELEMENTS(s_aValues00_q), s_aValues00_q }, 13737 13738 { bs3CpuInstr3_vpinsrq_XMM8_XMM9_R9_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 8, 64, 9, 9, 8, RT_ELEMENTS(s_aValuesFF_q), s_aValuesFF_q }, 13739 { bs3CpuInstr3_vpinsrq_XMM8_XMM9_FSxBX_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, 255, 9, 8, RT_ELEMENTS(s_aValuesFF_q), s_aValuesFF_q }, 13740 { bs3CpuInstr3_vpinsrq_XMM8_XMM9_R9_000h_icebp_c64, 255, RM_REG, T_AVX_128, 8, 64, 9, 9, 8, RT_ELEMENTS(s_aValues00_q), s_aValues00_q }, 13741 { bs3CpuInstr3_vpinsrq_XMM8_XMM9_FSxBX_000h_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, 255, 9, 8, RT_ELEMENTS(s_aValues00_q), s_aValues00_q }, 13742 }; 13743 13601 13744 static BS3CPUINSTR3_TEST6_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST6_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 13602 13745 unsigned const iTest = BS3CPUINSTR3_TEST_MODES_INDEX(bMode); … … 13661 13804 static BS3CPUINSTR3_TEST1_T const s_aTests32[] = 13662 13805 { 13663 { bs3CpuInstr3_pmaddwd_MM1_MM2_icebp_c32, 255, RM_REG, T_MMX, 1, 1, 2, RT_ELEMENTS(s_aValues64W), s_aValues64W },13664 { bs3CpuInstr3_pmaddwd_MM1_FSxBX_icebp_c32, 255, RM_MEM, T_MMX, 1, 1, 255, RT_ELEMENTS(s_aValues64W), s_aValues64W },13806 { bs3CpuInstr3_pmaddwd_MM1_MM2_icebp_c32, 255, RM_REG, T_MMX, 1, 1, 2, RT_ELEMENTS(s_aValues64W), s_aValues64W }, 13807 { bs3CpuInstr3_pmaddwd_MM1_FSxBX_icebp_c32, 255, RM_MEM, T_MMX, 1, 1, 255, RT_ELEMENTS(s_aValues64W), s_aValues64W }, 13665 13808 { bs3CpuInstr3_pmaddwd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, 1, 1, 2, RT_ELEMENTS(s_aValues128W), s_aValues128W }, 13666 13809 { bs3CpuInstr3_pmaddwd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, 1, 1, 255, RT_ELEMENTS(s_aValues128W), s_aValues128W }, … … 13672 13815 static BS3CPUINSTR3_TEST1_T const s_aTests64[] = 13673 13816 { 13674 { bs3CpuInstr3_pmaddwd_MM1_MM2_icebp_c64, 255, RM_REG, T_MMX, 1, 1, 2, RT_ELEMENTS(s_aValues64W), s_aValues64W },13675 { bs3CpuInstr3_pmaddwd_MM1_FSxBX_icebp_c64, 255, RM_MEM, T_MMX, 1, 1, 255, RT_ELEMENTS(s_aValues64W), s_aValues64W },13817 { bs3CpuInstr3_pmaddwd_MM1_MM2_icebp_c64, 255, RM_REG, T_MMX, 1, 1, 2, RT_ELEMENTS(s_aValues64W), s_aValues64W }, 13818 { bs3CpuInstr3_pmaddwd_MM1_FSxBX_icebp_c64, 255, RM_MEM, T_MMX, 1, 1, 255, RT_ELEMENTS(s_aValues64W), s_aValues64W }, 13676 13819 { bs3CpuInstr3_pmaddwd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, 1, 1, 2, RT_ELEMENTS(s_aValues128W), s_aValues128W }, 13677 13820 { bs3CpuInstr3_pmaddwd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 1, 1, 255, RT_ELEMENTS(s_aValues128W), s_aValues128W }, … … 13838 13981 #if defined(ALL_TESTS) 13839 13982 { "[v]pclmulqdq", bs3CpuInstr3_v_pclmulqdq, 0 }, 13840 { "[v]pinsr w", bs3CpuInstr3_v_pinsrw,0 },13841 { "[v]pextrb/[v]pextrw/[v]pextrd/[v]pextrq", bs3CpuInstr3_v_pextrb_pextrw_pextrd_pextrq, 13983 { "[v]pinsrb/[v]pinsrw/[v]pinsrd/[v]pinsrq", bs3CpuInstr3_v_pinsrb_pinsrw_pinsrd_pinsrq, 0 }, 13984 { "[v]pextrb/[v]pextrw/[v]pextrd/[v]pextrq", bs3CpuInstr3_v_pextrb_pextrw_pextrd_pextrq, 0 }, 13842 13985 { "[v]movmskps/[v]movmskpd", bs3CpuInstr3_v_movmskps_movmskpd, 0 }, 13843 13986 #endif
Note:
See TracChangeset
for help on using the changeset viewer.