FEAT_WFxT introduces new instructions WFIT and WFET, which are like the existing WFI and WFE but allow the guest to pass a timeout value in a register. The instructions will wait for an interrupt/event as usual, but will also stop waiting when the value of CNTVCT_EL0 is greater than or equal to the specified timeout value.
This series implements this and enables it for '-cpu max'. Patch 1 is a tweak to the TCGCPUOps::cpu_exec_halt method so that we can use it in patch 2 for "do some work when we are going to leave the halt state". thanks -- PMM Peter Maydell (2): accel/tcg: Make TCGCPUOps::cpu_exec_halt return bool for whether to halt target/arm: Implement FEAT WFxT and enable for '-cpu max' docs/system/arm/emulation.rst | 1 + include/hw/core/tcg-cpu-ops.h | 11 ++++-- target/arm/cpu-features.h | 5 +++ target/arm/cpu.h | 3 ++ target/arm/helper.h | 1 + target/arm/internals.h | 8 +++++ target/i386/tcg/helper-tcg.h | 2 +- target/arm/tcg/a64.decode | 4 +++ accel/tcg/cpu-exec.c | 7 ++-- target/arm/cpu.c | 38 ++++++++++++++++++++ target/arm/helper.c | 4 +-- target/arm/machine.c | 20 +++++++++++ target/arm/tcg/cpu64.c | 1 + target/arm/tcg/op_helper.c | 54 +++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 41 ++++++++++++++++++++++ target/i386/tcg/sysemu/seg_helper.c | 3 +- 16 files changed, 195 insertions(+), 8 deletions(-) -- 2.34.1