From b29a6e3925311d01296156992cc71c1c8f39b07c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sun, 9 Aug 2026 16:08:52 +0200 Subject: [PATCH] std.atomic: fix conditions for using yield on arm/thumb in spinLoopHint --- lib/std/atomic.zig | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/std/atomic.zig b/lib/std/atomic.zig index 814d87ae261a094d74e828de10a89ac8a2c804f2..abc7b06f0adbfb51e58d33492282780564c06e3a 100644 --- a/lib/std/atomic.zig +++ b/lib/std/atomic.zig @@ -377,13 +377,16 @@ pub inline fn spinLoopHint() void { .aarch64_be, => asm volatile ("isb"), - // `yield` was introduced in v6k but is also available on v6m. // https://www.keil.com/support/man/docs/armasm/armasm_dom1361289926796.htm .arm, .armeb, + => if (comptime builtin.cpu.has(.arm, .has_v6k)) { + asm volatile ("yield"); + }, + .thumb, .thumbeb, - => if (comptime builtin.cpu.hasAny(.arm, &.{ .has_v6k, .has_v6m })) { + => if (comptime builtin.cpu.hasAny(.arm, &.{ .has_v6m, .thumb2 })) { asm volatile ("yield"); }, -- 2.54.0