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++; > >