On 05/22/2018 09:15 PM, Michael Clark wrote:
> The mode variable only uses the lower 4-bits (M,H,S,U) so
> replace the GCC specific __builtin_popcount with ctpop8.
> 
> Cc: Palmer Dabbelt <pal...@sifive.com>
> Cc: Sagar Karandikar <sag...@eecs.berkeley.edu>
> Cc: Bastian Koppelmann <kbast...@mail.uni-paderborn.de>
> Cc: Alistair Francis <alistair.fran...@wdc.com>
> Signed-off-by: Michael Clark <m...@sifive.com>

Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>

> ---
>  hw/riscv/sifive_plic.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/riscv/sifive_plic.c b/hw/riscv/sifive_plic.c
> index b267ff88902d..dc6f4924e282 100644
> --- a/hw/riscv/sifive_plic.c
> +++ b/hw/riscv/sifive_plic.c
> @@ -383,7 +383,7 @@ static void parse_hart_config(SiFivePLICState *plic)
>      p = plic->hart_config;
>      while ((c = *p++)) {
>          if (c == ',') {
> -            addrid += __builtin_popcount(modes);
> +            addrid += ctpop8(modes);
>              modes = 0;
>              hartid++;
>          } else {
> @@ -397,7 +397,7 @@ static void parse_hart_config(SiFivePLICState *plic)
>          }
>      }
>      if (modes) {
> -        addrid += __builtin_popcount(modes);
> +        addrid += ctpop8(modes);
>      }
>      hartid++;
>  
> 

Reply via email to