Revised yield hints

Turns out v7 targets always have v6t2 set, so that line was redundant. Also add a link to the Arm Armv7 A.R.M.
This commit is contained in:
Jonathan 'theJPster' Pallant 2025-12-19 11:02:19 +00:00
parent 9d9870b735
commit 7cc102a4ee
2 changed files with 5 additions and 5 deletions

View file

@ -298,11 +298,12 @@ pub fn spin_loop() {
all(target_feature = "v6k", not(target_feature = "thumb-mode")),
target_feature = "v6t2",
all(target_feature = "v6", target_feature = "mclass"),
target_feature = "v7",
)
) => {
// SAFETY: the `cfg` attr ensures that we only execute this on arm targets
// with support for the v6 feature.
// SAFETY: the `cfg` attr ensures that we only execute this on arm
// targets with support for the this feature. On ARMv6 in Thumb
// mode, T2 is required (see Arm DDI0406C Section A8.8.427),
// otherwise ARMv6-M or ARMv6K is enough
unsafe { crate::arch::arm::__yield() }
}
target_arch = "loongarch32" => crate::arch::loongarch32::ibar::<0>(),

View file

@ -83,12 +83,11 @@ pub unsafe fn __sevl() {
/// improve overall system performance.
// Section 10.1 of ACLE says that the supported arches are: 8, 6K, 6-M
// LLVM says "instruction requires: armv6k"
// On ARMv6 in Thumb mode, T2 is required.
// On ARMv6 in Thumb mode, T2 is required (see Arm DDI0406C Section A8.8.427)
#[cfg(any(
all(target_feature = "v6k", not(target_feature = "thumb-mode")),
target_feature = "v6t2",
all(target_feature = "v6", target_feature = "mclass"),
target_feature = "v7",
target_arch = "aarch64",
target_arch = "arm64ec",
doc