From 95d7a3776e594a733cb4900b197faf534486a377 Mon Sep 17 00:00:00 2001 From: Jonathan 'theJPster' Pallant Date: Sun, 16 Nov 2025 20:21:42 +0000 Subject: [PATCH 1/3] Add ARMv6 bare-metal targets Three targets, covering A32 and T32 instructions, and soft-float and hard-float ABIs. Hard-float not available in Thumb mode. Atomics in Thumb mode require __sync* functions from compiler-builtins. --- crates/core_arch/src/arm_shared/hints.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/core_arch/src/arm_shared/hints.rs b/crates/core_arch/src/arm_shared/hints.rs index 54fd78270a..dade0d99e5 100644 --- a/crates/core_arch/src/arm_shared/hints.rs +++ b/crates/core_arch/src/arm_shared/hints.rs @@ -83,8 +83,12 @@ 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. #[cfg(any( - target_feature = "v6", + 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 From 186c7ece53d874b9685103bd8f66a8c9733672b7 Mon Sep 17 00:00:00 2001 From: Jonathan 'theJPster' Pallant Date: Fri, 19 Dec 2025 11:02:19 +0000 Subject: [PATCH 2/3] 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. --- crates/core_arch/src/arm_shared/hints.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/crates/core_arch/src/arm_shared/hints.rs b/crates/core_arch/src/arm_shared/hints.rs index dade0d99e5..8a25cc1163 100644 --- a/crates/core_arch/src/arm_shared/hints.rs +++ b/crates/core_arch/src/arm_shared/hints.rs @@ -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 From a10002d18941ef5d1bb4dd2cd724f28890735e37 Mon Sep 17 00:00:00 2001 From: The rustc-josh-sync Cronjob Bot Date: Mon, 26 Jan 2026 04:32:16 +0000 Subject: [PATCH 3/3] Prepare for merging from rust-lang/rust This updates the rust-version file to 873d4682c7d285540b8f28bfe637006cef8918a6. --- rust-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-version b/rust-version index df8693cd1c..ccc0b55d4d 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -48622726c4a91c87bf6cd4dbe1000c95df59906e +873d4682c7d285540b8f28bfe637006cef8918a6