Skip to content
  • Peter Maydell's avatar
    target/arm: Implement FEAT WFxT and enable for '-cpu max' · a96edb68
    Peter Maydell authored
    
    
    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.
    
    We implement WFIT by setting up a timer to expire at the right
    point; when the timer expires it sets the EXITTB interrupt, which
    will cause the CPU to leave the halted state. If we come out of
    halt for some other reason, we unset the pending timer.
    
    We implement WFET as a nop, which is architecturally permitted and
    matches the way we currently make WFE a nop.
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
    Message-id: 20240430140035.3889879-3-peter.maydell@linaro.org
    a96edb68