Message ID | 20240124101639.30056-5-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | accel/tcg: Extract some x86-specific code | expand |
On 24/01/24, Philippe Mathieu-Daudé wrote: > Convert packed logic to dumb icount_exit_request() helper. > No functional change intended. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > accel/tcg/cpu-exec.c | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c > index 6b3f66930e..d61b285d5e 100644 > --- a/accel/tcg/cpu-exec.c > +++ b/accel/tcg/cpu-exec.c > @@ -791,6 +791,17 @@ static inline bool need_replay_interrupt(int interrupt_request) > } > #endif /* !CONFIG_USER_ONLY */ > > +static inline bool icount_exit_request(CPUState *cpu) > +{ > + if (!icount_enabled()) { > + return false; > + } > + if (cpu->cflags_next_tb != -1 && !(cpu->cflags_next_tb & CF_USE_ICOUNT)) { > + return false; > + } > + return cpu->neg.icount_decr.u16.low + cpu->icount_extra == 0; > +} > + > static inline bool cpu_handle_interrupt(CPUState *cpu, > TranslationBlock **last_tb) > { > @@ -896,10 +907,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu, > } > > /* Finally, check if we need to exit to the main loop. */ > - if (unlikely(qatomic_read(&cpu->exit_request)) > - || (icount_enabled() > - && (cpu->cflags_next_tb == -1 || cpu->cflags_next_tb & CF_USE_ICOUNT) > - && cpu->neg.icount_decr.u16.low + cpu->icount_extra == 0)) { > + if (unlikely(qatomic_read(&cpu->exit_request)) || icount_exit_request(cpu)) { > qatomic_set(&cpu->exit_request, 0); > if (cpu->exception_index == -1) { > cpu->exception_index = EXCP_INTERRUPT; > -- > 2.41.0 > Reviewed-by: Anton Johansson <anjo@rev.ng>
On 1/24/24 20:16, Philippe Mathieu-Daudé wrote: > Convert packed logic to dumb icount_exit_request() helper. > No functional change intended. > > Signed-off-by: Philippe Mathieu-Daudé<philmd@linaro.org> > --- > accel/tcg/cpu-exec.c | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index 6b3f66930e..d61b285d5e 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -791,6 +791,17 @@ static inline bool need_replay_interrupt(int interrupt_request) } #endif /* !CONFIG_USER_ONLY */ +static inline bool icount_exit_request(CPUState *cpu) +{ + if (!icount_enabled()) { + return false; + } + if (cpu->cflags_next_tb != -1 && !(cpu->cflags_next_tb & CF_USE_ICOUNT)) { + return false; + } + return cpu->neg.icount_decr.u16.low + cpu->icount_extra == 0; +} + static inline bool cpu_handle_interrupt(CPUState *cpu, TranslationBlock **last_tb) { @@ -896,10 +907,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu, } /* Finally, check if we need to exit to the main loop. */ - if (unlikely(qatomic_read(&cpu->exit_request)) - || (icount_enabled() - && (cpu->cflags_next_tb == -1 || cpu->cflags_next_tb & CF_USE_ICOUNT) - && cpu->neg.icount_decr.u16.low + cpu->icount_extra == 0)) { + if (unlikely(qatomic_read(&cpu->exit_request)) || icount_exit_request(cpu)) { qatomic_set(&cpu->exit_request, 0); if (cpu->exception_index == -1) { cpu->exception_index = EXCP_INTERRUPT;
Convert packed logic to dumb icount_exit_request() helper. No functional change intended. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- accel/tcg/cpu-exec.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)