qemu/target/i386/tcg
Peter Maydell 408b2b3d9d accel/tcg: Make TCGCPUOps::cpu_exec_halt return bool for whether to halt
The TCGCPUOps::cpu_exec_halt method is called from cpu_handle_halt()
when the CPU is halted, so that a target CPU emulation can do
anything target-specific it needs to do.  (At the moment we only use
this on i386.)

The current specification of the method doesn't allow the target
specific code to do something different if the CPU is about to come
out of the halt state, because cpu_handle_halt() only determines this
after the method has returned.  (If the method called cpu_has_work()
itself this would introduce a potential race if an interrupt arrived
between the target's method implementation checking and
cpu_handle_halt() repeating the check.)

Change the definition of the method so that it returns a bool to
tell cpu_handle_halt() whether to stay in halt or not.

We will want this for the Arm target, where FEAT_WFxT wants to do
some work only for the case where the CPU is in halt but about to
leave it.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240430140035.3889879-2-peter.maydell@linaro.org
2024-05-30 16:13:48 +01:00
..
sysemu accel/tcg: Make TCGCPUOps::cpu_exec_halt return bool for whether to halt 2024-05-30 16:13:48 +01:00
user target/i386: implement SYSCALL/SYSRET in 32-bit emulators 2023-06-26 10:23:56 +02:00
access.c target/i386: Add tcg/access.[ch] 2024-05-26 12:51:50 -07:00
access.h target/i386: Add tcg/access.[ch] 2024-05-26 12:51:50 -07:00
bpt_helper.c compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
cc_helper_template.h.inc target/i386: Rename helper template headers as '.h.inc' 2023-06-13 11:28:58 +02:00
cc_helper.c target/i386: clean up cpu_cc_compute_all 2023-12-29 22:03:02 +01:00
decode-new.c.inc target/i386: clean up AAM/AAD 2024-05-22 15:53:30 +02:00
decode-new.h target/i386: move prefetch and multi-byte UD/NOP to new decoder 2024-05-10 15:45:14 +02:00
emit.c.inc target/i386: remove aflag argument of gen_lea_v_seg 2024-05-25 13:28:02 +02:00
excp_helper.c target/i386: remove unnecessary arguments from raise_interrupt 2023-12-29 22:02:55 +01:00
fpu_helper.c target/i386: Introduce X86Access and use for xsave and friends 2024-05-26 17:51:00 -07:00
helper-tcg.h accel/tcg: Make TCGCPUOps::cpu_exec_halt return bool for whether to halt 2024-05-30 16:13:48 +01:00
int_helper.c target/i386: set CC_OP in helpers if they want CC_OP_EFLAGS 2024-05-25 13:28:01 +02:00
mem_helper.c target/i386: Inline cmpxchg16b 2023-02-04 06:19:43 -10:00
meson.build target/i386: Add tcg/access.[ch] 2024-05-26 12:51:50 -07:00
misc_helper.c target/i386: clean up cpu_cc_compute_all 2023-12-29 22:03:02 +01:00
mpx_helper.c
ops_sse_header.h.inc target/i386: implement SHA instructions 2023-10-25 17:35:07 +02:00
seg_helper.c target/i386: set CC_OP in helpers if they want CC_OP_EFLAGS 2024-05-25 13:28:01 +02:00
seg_helper.h i386: split seg_helper into user-only and sysemu parts 2021-05-10 15:41:52 -04:00
tcg-cpu.c target/i386: Extract x86_cpu_exec_halt() from accel/tcg/ 2024-01-29 21:04:10 +10:00
tcg-cpu.h target/i386: Move X86XSaveArea into TCG 2021-07-06 08:33:51 +02:00
tcg-stub.c
translate.c target/i386: remove aflag argument of gen_lea_v_seg 2024-05-25 13:28:02 +02:00