Does PAUSE guarantee a fixed delay?
No. The official rule only requires the effect to be bounded, and the duration may be zero.
Zihintpause bounded pause hint indicating the current hart retirement rate may be temporarily reduced or paused.
PAUSE uses opcode 0001111 (0x0f), funct3 000. The rs1 field selects the source register, the 12-bit immediate provides the second operand, and rd selects the destination.
PAUSE is a HINT defined by Zihintpause and encoded as a FENCE form with pred=W, succ=0, fm=0, rd=x0, and rs1=x0. It indicates that the current hart may be in a spin-wait sequence and that the instruction retirement rate may be temporarily reduced or paused; the effect duration must be bounded and may be zero. Because the successor set is empty, PAUSE mandates no memory ordering.
PAUSE tells the implementation the current hart may be spin-waiting; it may reduce or pause retirement, but the effect must be bounded and may be zero.
Understand this scenario with real code like «pause # hint for spinlock busy-wait loop».
Understand this scenario with real code like «pause # hint for spinlock busy-wait loop».
Understand this scenario with real code like «pause # hint for spinlock busy-wait loop».
No. The official rule only requires the effect to be bounded, and the duration may be zero.
No. PAUSE mandates no memory ordering.