Message ID | 20241217140648.98538-1-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | accel/tcg: Declare cpu_loop_exit_requested() in 'exec/cpu-common.h' | expand |
On 12/17/24 08:06, Philippe Mathieu-Daudé wrote: > Move cpu_loop_exit_requested() declaration to "exec/cpu-common.h", > along with the related cpu_loop_exit_noexc(), cpu_loop_exit(), > cpu_loop_exit_atomic() and cpu_loop_exit_restore() methods. > > Signed-off-by: Philippe Mathieu-Daudé<philmd@linaro.org> > --- > Based-on:<20241212185341.2857-19-philmd@linaro.org> > --- > include/exec/cpu-common.h | 18 ++++++++++++++++++ > include/exec/exec-all.h | 17 ----------------- > accel/tcg/cpu-exec.c | 2 +- > target/arm/tcg/helper-a64.c | 1 + > target/s390x/tcg/mem_helper.c | 1 + > 5 files changed, 21 insertions(+), 18 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
Philippe Mathieu-Daudé <philmd@linaro.org> writes: > Move cpu_loop_exit_requested() declaration to "exec/cpu-common.h", > along with the related cpu_loop_exit_noexc(), cpu_loop_exit(), > cpu_loop_exit_atomic() and cpu_loop_exit_restore() methods. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
On 17/12/24 15:06, Philippe Mathieu-Daudé wrote: > Move cpu_loop_exit_requested() declaration to "exec/cpu-common.h", > along with the related cpu_loop_exit_noexc(), cpu_loop_exit(), > cpu_loop_exit_atomic() and cpu_loop_exit_restore() methods. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > Based-on: <20241212185341.2857-19-philmd@linaro.org> > --- > include/exec/cpu-common.h | 18 ++++++++++++++++++ > include/exec/exec-all.h | 17 ----------------- > accel/tcg/cpu-exec.c | 2 +- > target/arm/tcg/helper-a64.c | 1 + > target/s390x/tcg/mem_helper.c | 1 + > 5 files changed, 21 insertions(+), 18 deletions(-) Patch queued.
diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h index 638dc806a5f..0cf9a3d369c 100644 --- a/include/exec/cpu-common.h +++ b/include/exec/cpu-common.h @@ -186,6 +186,7 @@ int cpu_memory_rw_debug(CPUState *cpu, vaddr addr, void list_cpus(void); #ifdef CONFIG_TCG +#include "qemu/atomic.h" bool tcg_cflags_has(CPUState *cpu, uint32_t flags); void tcg_cflags_set(CPUState *cpu, uint32_t flags); @@ -218,6 +219,23 @@ bool cpu_unwind_state_data(CPUState *cpu, uintptr_t host_pc, uint64_t *data); */ bool cpu_restore_state(CPUState *cpu, uintptr_t host_pc); +/** + * cpu_loop_exit_requested: + * @cpu: The CPU state to be tested + * + * Indicate if somebody asked for a return of the CPU to the main loop + * (e.g., via cpu_exit() or cpu_interrupt()). + * + * This is helpful for architectures that support interruptible + * instructions. After writing back all state to registers/memory, this + * call can be used to check if it makes sense to return to the main loop + * or to continue executing the interruptible instruction. + */ +static inline bool cpu_loop_exit_requested(CPUState *cpu) +{ + return (int32_t)qatomic_read(&cpu->neg.icount_decr.u32) < 0; +} + G_NORETURN void cpu_loop_exit_noexc(CPUState *cpu); G_NORETURN void cpu_loop_exit_atomic(CPUState *cpu, uintptr_t pc); #endif /* CONFIG_TCG */ diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index c4a6ad3af2d..d9045c9ac4c 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -27,23 +27,6 @@ #include "exec/mmu-access-type.h" #include "exec/translation-block.h" -/** - * cpu_loop_exit_requested: - * @cpu: The CPU state to be tested - * - * Indicate if somebody asked for a return of the CPU to the main loop - * (e.g., via cpu_exit() or cpu_interrupt()). - * - * This is helpful for architectures that support interruptible - * instructions. After writing back all state to registers/memory, this - * call can be used to check if it makes sense to return to the main loop - * or to continue executing the interruptible instruction. - */ -static inline bool cpu_loop_exit_requested(CPUState *cpu) -{ - return (int32_t)qatomic_read(&cpu->neg.icount_decr.u32) < 0; -} - #if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG) /* cputlb.c */ /** diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index e9eaab223f9..c07e59cd0b1 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -25,7 +25,7 @@ #include "hw/core/tcg-cpu-ops.h" #include "trace.h" #include "disas/disas.h" -#include "exec/exec-all.h" +#include "exec/cpu-common.h" #include "exec/page-protection.h" #include "tcg/tcg.h" #include "qemu/atomic.h" diff --git a/target/arm/tcg/helper-a64.c b/target/arm/tcg/helper-a64.c index 58eaca66012..95e46071cab 100644 --- a/target/arm/tcg/helper-a64.c +++ b/target/arm/tcg/helper-a64.c @@ -29,6 +29,7 @@ #include "internals.h" #include "qemu/crc32c.h" #include "exec/exec-all.h" +#include "exec/cpu-common.h" #include "exec/cpu_ldst.h" #include "qemu/int128.h" #include "qemu/atomic128.h" diff --git a/target/s390x/tcg/mem_helper.c b/target/s390x/tcg/mem_helper.c index 307388e5bd1..b617f78204f 100644 --- a/target/s390x/tcg/mem_helper.c +++ b/target/s390x/tcg/mem_helper.c @@ -25,6 +25,7 @@ #include "tcg_s390x.h" #include "exec/helper-proto.h" #include "exec/exec-all.h" +#include "exec/cpu-common.h" #include "exec/page-protection.h" #include "exec/cpu_ldst.h" #include "hw/core/tcg-cpu-ops.h"
Move cpu_loop_exit_requested() declaration to "exec/cpu-common.h", along with the related cpu_loop_exit_noexc(), cpu_loop_exit(), cpu_loop_exit_atomic() and cpu_loop_exit_restore() methods. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- Based-on: <20241212185341.2857-19-philmd@linaro.org> --- include/exec/cpu-common.h | 18 ++++++++++++++++++ include/exec/exec-all.h | 17 ----------------- accel/tcg/cpu-exec.c | 2 +- target/arm/tcg/helper-a64.c | 1 + target/s390x/tcg/mem_helper.c | 1 + 5 files changed, 21 insertions(+), 18 deletions(-)