[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v2] linux-user: ppc64: fix ARCH_206 bit in AT_HWCA
From: |
David Gibson |
Subject: |
Re: [Qemu-ppc] [PATCH v2] linux-user: ppc64: fix ARCH_206 bit in AT_HWCAP |
Date: |
Wed, 21 Sep 2016 20:15:23 +1000 |
User-agent: |
Mutt/1.7.0 (2016-08-17) |
On Wed, Sep 21, 2016 at 11:57:05AM +0200, Michael Walle wrote:
> Only the POWER[789] CPUs should have the ARCH_206 bit set. This is what the
> linux kernel does. I guess this was also the intention of commit 0e019746.
> We have to make sure all *206 bits are set.
>
> Before this patch, the flags check in the GET_FEATURES2 macro returned true
> if _any_ bit was set. This worked well as long as there was only one bit
> set in the 'flag' parameter. But as explained before, we have to make sure
> all bits in the 'flag' parameter are set.
>
> Signed-off-by: Michael Walle <address@hidden>
Applied to ppc-for-2.8, thanks.
> ---
> v2:
> - rename flag to flags
> - use normal indent style in macro (also makes checkpatch.pl happy ;)
> - add explanation in commit message
>
> linux-user/elfload.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/linux-user/elfload.c b/linux-user/elfload.c
> index f807baf..515ba6c 100644
> --- a/linux-user/elfload.c
> +++ b/linux-user/elfload.c
> @@ -741,8 +741,12 @@ static uint32_t get_elf_hwcap(void)
> Altivec/FP/SPE support. Anything else is just a bonus. */
> #define GET_FEATURE(flag, feature) \
> do { if (cpu->env.insns_flags & flag) { features |= feature; } } while
> (0)
> -#define GET_FEATURE2(flag, feature) \
> - do { if (cpu->env.insns_flags2 & flag) { features |= feature; } } while
> (0)
> +#define GET_FEATURE2(flags, feature) \
> + do { \
> + if ((cpu->env.insns_flags2 & flags) == flags) { \
> + features |= feature; \
> + } \
> + } while (0)
> GET_FEATURE(PPC_64B, QEMU_PPC_FEATURE_64);
> GET_FEATURE(PPC_FLOAT, QEMU_PPC_FEATURE_HAS_FPU);
> GET_FEATURE(PPC_ALTIVEC, QEMU_PPC_FEATURE_HAS_ALTIVEC);
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature