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