|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 12/13] fuzz/x86_emulate: Set and fuzz more CPU state
>>> On 25.09.17 at 16:26, <george.dunlap@xxxxxxxxxx> wrote:
> @@ -597,6 +599,47 @@ static const struct x86_emulate_ops all_fuzzer_ops = {
> };
> #undef SET
>
> +static void _set_fpu_state(char *fxsave, bool store)
> +{
> + if ( cpu_has_fxsr )
> + {
> + static union __attribute__((__aligned__(16))) {
> + char x[464];
> + struct {
> + uint32_t other[6];
> + uint32_t mxcsr;
> + uint32_t mxcsr_mask;
> + /* ... */
> + };
> + } *fxs;
> +
> + fxs = (typeof(fxs)) fxsave;
> +
> + if ( store ) {
> + char null[512] __attribute__((aligned(16))) = { 0 };
> + asm volatile(" fxrstor %0; "::"m"(*null));
> + asm volatile(" fxrstor %0; "::"m"(*fxsave));
> + }
> +
> + asm volatile( "fxsave %0" : "=m" (*fxs) );
> +
> + if ( fxs->mxcsr_mask )
> + mxcsr_mask = fxs->mxcsr_mask;
> + else
> + mxcsr_mask = 0x000ffbf;
Actually - why is this necessary? I.e. why isn't emul_test_init()
setting mxcsr_mask sufficient?
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |