| |||
| Home > ARM and Thumb Instructions > Miscellaneous instructions > NOP, SEV, WFE, WFI, and YIELD | |||
No Operation, Set Event, Wait For Event, Wait for Interrupt, and Yield.
NOP{cond}
SEV{cond}
WFE{cond}
WFI{cond}
YIELD{cond}
where:
condis an optional condition code (see Conditional execution).
These are hint instructions. It is optional whether they are
implemented or not. If any one of them is not implemented, it behaves
as a NOP.
NOP does nothing. If NOP is not
implemented as a specific instruction on your target architecture,
the assembler treats it as a pseudo-instruction and generates an
alternative instruction that does nothing, such as MOV r0,
r0 (ARM) or MOV r8, r8 (Thumb).
NOP is not necessarily a time-consuming NOP.
The processor might remove it from the pipeline before it reaches
the execution stage.
You can use NOP for padding, for example to place
the following instruction on a 64-bit boundary.
SEV causes an event to be signaled to all cores
within a multiprocessor system. If SEV is implemented, WFE must
also be implemented.
If the Event Register is not set, WFE suspends
execution until one of the following events occurs:
an IRQ interrupt, unless masked by the CPSR I-bit
an FIQ interrupt, unless masked by the CPSR F-bit
an Imprecise Data abort, unless masked by the CPSR A-bit
a Debug Entry request, if Debug is enabled
an Event signaled by another processor using the SEV instruction.
If the Event Register is set, WFE clears it and
returns immediately.
If WFE is implemented, SEV must
also be implemented.
WFI suspends execution until one of the following
events occurs:
an IRQ interrupt, regardless of the CPSR I-bit
an FIQ interrupt, regardless of the CPSR F-bit
an Imprecise Data abort, unless masked by the CPSR A-bit
a Debug Entry request, regardless of whether Debug is enabled.
These ARM instructions are available in ARMv6K and above.
These 32-bit Thumb instructions are available in ARMv6T2 and above.
These 16-bit Thumb instructions are available in ARMv6T2 and above.
NOP is available on all other ARM and Thumb architectures
as a pseudo-instruction.
SEV, WFE, WFI, and YIELD execute
as NOP instructions in ARMv6T2.