On 25/09/2018 14:35, Jan Beulich wrote:
> @@ -7979,6 +7991,42 @@ x86_emulate(
> dst.type = OP_NONE;
> break;
>
> + case X86EMUL_OPC_EVEX_66(0x0f38, 0x18): /* vbroadcastss
> xmm/m32,[xyz]mm{k} */
> + generate_exception_if(evex.w || evex.br, EXC_UD);
> + avx512_broadcast:
> + /*
> + * For the respective code below the main switch() to work we need to
> + * fold op_mask here: A source element gets read whenever any of its
> + * respective destination elements' mask bits is set.
> + */
> + if ( fault_suppression )
> + {
> + n = 1 << ((b & 3) - evex.w);
> + ASSERT(op_bytes == n * elem_bytes);
> + for ( i = n; i < (16 << evex.lr) / elem_bytes; i += n )
As before, we should have a release-build safe check of elem_bytes.
~Andrew
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel