YIELD
Yield hint
YIELD is a hint instruction. Software with a multithreading capability can use a YIELD instruction to indicate to the PE that it is performing a task, for example a spin-lock, that could be swapped out to improve overall system performance. The PE can use this hint to suspend and resume multiple software threads if it supports the capability.
For more information about the recommended use of this instruction see The Yield instruction.
For more information about the constrained unpredictable behavior of this instruction, see Architectural Constraints on UNPREDICTABLE behaviors.
It has encodings from the following instruction sets:
A32 (
A1
)
and
T32 (
T1
and
T2
)
.
!= 1111
0
0
1
1
0
0
1
0
0
0
0
0
(1)
(1)
(1)
(1)
(0)
(0)
(0)
(0)
0
0
0
0
0
0
0
1
YIELD{<c>}{<q>}
// No additional decoding required
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
YIELD{<c>}{<q>}
// No additional decoding required
1
1
1
1
0
0
1
1
1
0
1
0
(1)
(1)
(1)
(1)
1
0
(0)
0
(0)
0
0
0
0
0
0
0
0
0
0
1
YIELD{<c>}.W
// No additional decoding required
<c>
See Standard assembler syntax fields.
<q>
See Standard assembler syntax fields.
if ConditionPassed() then
EncodingSpecificOperations();
Hint_Yield();