WFIT

Wait For Interrupt with Timeout is a hint instruction that indicates that the PE can enter a low-power state and remain there until either a local timeout event or a wakeup event occurs. For more information, see Wait For Interrupt.

As described in Wait For Interrupt, the execution of a WFIT instruction that would otherwise cause entry to a low-power state can be trapped to a higher Exception level. See:

System
(FEAT_WFxT)

313029282726252423222120191817161514131211109876543210
110101010000001100010000001Rd
op2

WFIT <Xt>

if !HaveFeatWFxT() then UNDEFINED; integer d = UInt(Rd); SystemHintOp op; case op2 of when '000' op = SystemHintOp_WFET; when '001' op = SystemHintOp_WFIT; otherwise // Do nothing

Assembler Symbols

<Xt>

Is the 64-bit name of the general-purpose source register, encoded in the "Rd" field.

Operation

bits(64) operand = X[d]; integer localtimeout = UInt(operand); if Halted() && ConstrainUnpredictableBool(Unpredictable_WFxTDEBUG) then EndOfInstruction(); case op of when SystemHintOp_WFET Hint_WFE(localtimeout, WFxType_WFET); when SystemHintOp_WFIT Hint_WFI(localtimeout, WFxType_WFIT); otherwise // Instruction executes as NOP


Internal version only: isa v33.11seprel, AdvSIMD v29.05, pseudocode v2021-09_rel, sve v2021-09_rc3d ; Build timestamp: 2021-10-06T11:41

Copyright © 2010-2021 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.