On 17/03/2015 12:56, Stefan Hajnoczi wrote:
> +        for (f = ctz32(level) + 1, i = f - 1, level >>= f - 1;
> +             f != 33;
> +             i += f, level >>= f) {
>              p = s->bank[j].priority[i];
>              if (p <= p_intr) {
>                  p_intr = p;
>                  sir_intr = 32 * j + i;
>              }
> -            f = ffs(level >> 1);
> +            f = ctz32(level >> 1) + 1;
>          }

Since it's 2.4, we might as well make the code nicer:

         while (level != 0) {
             i = ctz32(level);
             p = s->bank[j].priority[i];
             if (p <= p_intr) {
                 p_intr = p;
                 sir_intr = 32 * j + i;
             }
             level &= level - 1;
         }

Paolo

Reply via email to