On 03/17/2015 07:58 AM, Paolo Bonzini wrote: > 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; > }
Agreed. r~