| ... | @@ -377,13 +377,16 @@ pub inline fn spinLoopHint() void { | ... | @@ -377,13 +377,16 @@ pub inline fn spinLoopHint() void { |
| 377 | .aarch64_be, | 377 | .aarch64_be, |
| 378 | => asm volatile ("isb"), | 378 | => asm volatile ("isb"), |
| 379 | | 379 | |
| 380 | // `yield` was introduced in v6k but is also available on v6m. | | |
| 381 | // https://www.keil.com/support/man/docs/armasm/armasm_dom1361289926796.htm | 380 | // https://www.keil.com/support/man/docs/armasm/armasm_dom1361289926796.htm |
| 382 | .arm, | 381 | .arm, |
| 383 | .armeb, | 382 | .armeb, |
| | 383 | => if (comptime builtin.cpu.has(.arm, .has_v6k)) { |
| | 384 | asm volatile ("yield"); |
| | 385 | }, |
| | 386 | |
| 384 | .thumb, | 387 | .thumb, |
| 385 | .thumbeb, | 388 | .thumbeb, |
| 386 | => if (comptime builtin.cpu.hasAny(.arm, &.{ .has_v6k, .has_v6m })) { | 389 | => if (comptime builtin.cpu.hasAny(.arm, &.{ .has_v6m, .thumb2 })) { |
| 387 | asm volatile ("yield"); | 390 | asm volatile ("yield"); |
| 388 | }, | 391 | }, |
| 389 | | 392 | |