Message ID | 167412018478.3110454.5407396471034616682.stgit@pasha-ThinkPad-X280 (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | AVR target fixes | expand |
On 19/1/23 10:23, Pavel Dovgalyuk wrote: > Interrupt bit vector has 64 bits, but interrupt vector is found with ctz32 > function. This patch replaces it with ctz64. > > Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru> > --- > target/avr/helper.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
On 1/18/23 23:23, Pavel Dovgalyuk wrote: > Interrupt bit vector has 64 bits, but interrupt vector is found with ctz32 > function. This patch replaces it with ctz64. > > Signed-off-by: Pavel Dovgalyuk<Pavel.Dovgalyuk@ispras.ru> > --- > target/avr/helper.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
diff --git a/target/avr/helper.c b/target/avr/helper.c index 156dde4e92..61ab6feb25 100644 --- a/target/avr/helper.c +++ b/target/avr/helper.c @@ -51,7 +51,7 @@ bool avr_cpu_exec_interrupt(CPUState *cs, int interrupt_request) } if (interrupt_request & CPU_INTERRUPT_HARD) { if (cpu_interrupts_enabled(env) && env->intsrc != 0) { - int index = ctz32(env->intsrc); + int index = ctz64(env->intsrc); cs->exception_index = EXCP_INT(index); avr_cpu_do_interrupt(cs); @@ -78,7 +78,7 @@ void avr_cpu_do_interrupt(CPUState *cs) if (cs->exception_index == EXCP_RESET) { vector = 0; } else if (env->intsrc != 0) { - vector = ctz32(env->intsrc) + 1; + vector = ctz64(env->intsrc) + 1; } if (avr_feature(env, AVR_FEATURE_3_BYTE_PC)) {
Interrupt bit vector has 64 bits, but interrupt vector is found with ctz32 function. This patch replaces it with ctz64. Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru> --- target/avr/helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)