|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 09/10] tools/x86emul: Advertise more CPUID features for testing purposes
>>> On 27.03.17 at 11:56, <andrew.cooper3@xxxxxxxxxx> wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> ---
> CC: Jan Beulich <JBeulich@xxxxxxxx>
> CC: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
> CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
> CC: Wei Liu <wei.liu2@xxxxxxxxxx>
> ---
> tools/tests/x86_emulator/x86_emulate.c | 41
> ++++++++++++++++++++++++----------
> 1 file changed, 29 insertions(+), 12 deletions(-)
>
> diff --git a/tools/tests/x86_emulator/x86_emulate.c
> b/tools/tests/x86_emulator/x86_emulate.c
> index cea0595..2c49954 100644
> --- a/tools/tests/x86_emulator/x86_emulate.c
> +++ b/tools/tests/x86_emulator/x86_emulate.c
> @@ -73,20 +73,37 @@ int emul_test_cpuid(
> : "a" (leaf), "c" (subleaf));
>
> /*
> - * The emulator doesn't itself use MOVBE, so we can always run the
> - * respective tests.
> + * Some instructions and features can be emulated without specific
> + * hardware support. These features are unconditionally reported here,
> + * for testing and fuzzing-coverage purposes.
> */
> - if ( leaf == 1 )
> - res->c |= 1U << 22;
> -
> - /*
> - * The emulator doesn't itself use ADCX/ADOX/RDPID, so we can always
> run
> - * the respective tests.
> - */
> - if ( leaf == 7 && subleaf == 0 )
> + switch ( leaf )
> {
> - res->b |= 1U << 19;
> - res->c |= 1U << 22;
> + case 1:
> + res->c |= 1U << 22; /* MOVBE */
> + break;
> +
> + case 7:
> + switch ( subleaf )
> + {
> + case 0:
> + res->b |= 1U << 11; /* rtm */
Upper case?
> + res->b |= 1U << 19; /* ADCX/ADOX */
> + res->b |= 1U << 20; /* STAC/CLAC */
SMAP?
> + res->b |= 1U << 24; /* CLWB */
> +
> + res->c |= 1U << 22; /* RDPID */
> + break;
> + }
> + break;
> +
> + case 0x80000001:
> + res->c |= 1U << 4; /* cr8_legacy */
I think this one is AMD-only, just like ...
> + if ( ctxt->vendor == X86_VENDOR_AMD )
> + res->c |= 1U << 7; /* misalignsse */
... this.
And what about LAHF_LM, LZCNT, and CLFLUSH{,OPT}?
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |