Message ID | 20220826205518.2339352-2-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | target/avr: Fix skips vs interrupts | expand |
Reviewed-by: Michael Rolnik <mrolnik@gmail.com> On Fri, Aug 26, 2022 at 11:55 PM Richard Henderson < richard.henderson@linaro.org> wrote: > There is no need to go through cc->tcg_ops when > we know what value that must have. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > target/avr/helper.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/target/avr/helper.c b/target/avr/helper.c > index 82284f8997..9614ccf3e4 100644 > --- a/target/avr/helper.c > +++ b/target/avr/helper.c > @@ -29,14 +29,13 @@ > bool avr_cpu_exec_interrupt(CPUState *cs, int interrupt_request) > { > bool ret = false; > - CPUClass *cc = CPU_GET_CLASS(cs); > AVRCPU *cpu = AVR_CPU(cs); > CPUAVRState *env = &cpu->env; > > if (interrupt_request & CPU_INTERRUPT_RESET) { > if (cpu_interrupts_enabled(env)) { > cs->exception_index = EXCP_RESET; > - cc->tcg_ops->do_interrupt(cs); > + avr_cpu_do_interrupt(cs); > > cs->interrupt_request &= ~CPU_INTERRUPT_RESET; > > @@ -47,7 +46,7 @@ bool avr_cpu_exec_interrupt(CPUState *cs, int > interrupt_request) > if (cpu_interrupts_enabled(env) && env->intsrc != 0) { > int index = ctz32(env->intsrc); > cs->exception_index = EXCP_INT(index); > - cc->tcg_ops->do_interrupt(cs); > + avr_cpu_do_interrupt(cs); > > env->intsrc &= env->intsrc - 1; /* clear the interrupt */ > if (!env->intsrc) { > -- > 2.34.1 > >
diff --git a/target/avr/helper.c b/target/avr/helper.c index 82284f8997..9614ccf3e4 100644 --- a/target/avr/helper.c +++ b/target/avr/helper.c @@ -29,14 +29,13 @@ bool avr_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { bool ret = false; - CPUClass *cc = CPU_GET_CLASS(cs); AVRCPU *cpu = AVR_CPU(cs); CPUAVRState *env = &cpu->env; if (interrupt_request & CPU_INTERRUPT_RESET) { if (cpu_interrupts_enabled(env)) { cs->exception_index = EXCP_RESET; - cc->tcg_ops->do_interrupt(cs); + avr_cpu_do_interrupt(cs); cs->interrupt_request &= ~CPU_INTERRUPT_RESET; @@ -47,7 +46,7 @@ bool avr_cpu_exec_interrupt(CPUState *cs, int interrupt_request) if (cpu_interrupts_enabled(env) && env->intsrc != 0) { int index = ctz32(env->intsrc); cs->exception_index = EXCP_INT(index); - cc->tcg_ops->do_interrupt(cs); + avr_cpu_do_interrupt(cs); env->intsrc &= env->intsrc - 1; /* clear the interrupt */ if (!env->intsrc) {
There is no need to go through cc->tcg_ops when we know what value that must have. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- target/avr/helper.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)