On Thu, 12 Jun 2025, Brian Inglis wrote:

> Rust apparently uses yield on arm32, and isb (instruction sync barrier) on
> aarch64, as yield is effectively a NOP (although it could be implemented to
> free up pipeline slots, SMT switch, or signal), while isb (with optional sy
> operand) is more like pause on x86_64:

I looked up what mingw-w64 does, and for both arm32 and aarch64 they use
"dmb ishst" followed by "yield" for YieldProcessor().  I think this makes
sense, since you'd want any pending stores to be available before
re-checking the spin condition.

Reply via email to