Jan Bobek <jan.bo...@gmail.com> writes:
> Have the --xfeatures option accept "sse", "avx" and "avx512" in > addition to a plain numerical value, purely for users' convenience. > Don't fail silently when an incorrect value is specified, to avoid > confusion. > > Suggested-by: Richard Henderson <richard.hender...@linaro.org> > Signed-off-by: Jan Bobek <jan.bo...@gmail.com> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Tested-by: Alex Bennée <alex.ben...@linaro.org> > --- > risu_reginfo_i386.c | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > > diff --git a/risu_reginfo_i386.c b/risu_reginfo_i386.c > index 01ea179..194e0ad 100644 > --- a/risu_reginfo_i386.c > +++ b/risu_reginfo_i386.c > @@ -53,8 +53,25 @@ const char * const arch_extra_help > > void process_arch_opt(int opt, const char *arg) > { > + char *endptr; > + > assert(opt == FIRST_ARCH_OPT); > - xfeatures = strtoull(arg, 0, 0); > + > + if (!strcmp(arg, "sse")) { > + xfeatures = XFEAT_X87 | XFEAT_SSE; > + } else if (!strcmp(arg, "avx")) { > + xfeatures = XFEAT_X87 | XFEAT_SSE | XFEAT_AVX; > + } else if (!strcmp(arg, "avx512")) { > + xfeatures = XFEAT_X87 | XFEAT_SSE | XFEAT_AVX | XFEAT_AVX512; > + } else { > + xfeatures = strtoull(arg, &endptr, 0); > + if (*endptr) { > + fprintf(stderr, > + "Unable to parse '%s' in '%s' into an xfeatures integer > mask\n", > + endptr, arg); > + exit(1); > + } > + } > } > > const int reginfo_size(void) -- Alex Bennée