[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 15:01, <andrew.cooper3@xxxxxxxxxx> wrote: > On 27/03/17 13:09, Jan Beulich wrote: >>>>> On 27.03.17 at 11:56, <andrew.cooper3@xxxxxxxxxx> wrote: >>> --- 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? > > I was trying to visually separate the instructions from the features. Oh, I see. Fine with me then, i.e. I'd adjust ... >>> + res->b |= 1U << 19; /* ADCX/ADOX */ >>> + res->b |= 1U << 20; /* STAC/CLAC */ >> SMAP? ... this to "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. > > The difference is that cr8_legacy is a straight "is this specific > encoding valid to use", while misalignsse causes rather larger changes > in how SSE arguments get handled. True. >> And what about LAHF_LM, LZCNT, and CLFLUSH{,OPT}? > > This list was only the instructions I had encountered. I can add all of > these. Yes please (subject to the other sub-thread). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |