[PATCH 0/2] target/arm: Implement FEAT_WFxT

Peter Maydell posted 2 patches 2 weeks, 3 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240430140035.3889879-1-peter.maydell@linaro.org
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Eduardo Habkost <eduardo@habkost.net>
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(-)
[PATCH 0/2] target/arm: Implement FEAT_WFxT
Posted by Peter Maydell 2 weeks, 3 days ago
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