Re: [PATCH V3 01/23] perf/x86: Support outputting XMM registers

From: Thomas Gleixner
Date: Mon Mar 25 2019 - 20:11:49 EST


On Fri, 22 Mar 2019, kan.liang@xxxxxxxxxxxxxxx wrote:
>
> + PERF_REG_X86_XMM15 = 62,
> +
> + /* All registers include the XMMX registers */
> + PERF_REG_X86_MAX = PERF_REG_X86_XMM15 + 2,

Ergo: PERF_REG_X86_MAX == 64

> -#define REG_RESERVED (~((1ULL << PERF_REG_X86_MAX) - 1ULL))
> +#define REG_RESERVED \
> + (PERF_REG_X86_MAX == 64 ? 0 : ~((1ULL << PERF_REG_X86_MAX)) - 1ULL)

So what the heck is this conditional for?

But now 32bit has also access to the upper 8 GPRs simply because
REG_RESERVED is now 0 and REG_NOSUPPORT is not excluding them either.

Thanks,

tglx