Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 2bd82d7

Browse files
committedJan 6, 2025
aarch64-softfloat: forbid enabling the neon target feature
1 parent 243d2ca commit 2bd82d7

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed
 

‎compiler/rustc_target/src/target_features.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -803,10 +803,10 @@ impl Target {
803803
// the use of soft-float, so all we can do here is some crude hacks.
804804
match &*self.abi {
805805
"softfloat" => {
806-
// This is not fully correct, LLVM actually doesn't let us enforce the softfloat
807-
// ABI properly... see <https://github.com/rust-lang/rust/issues/134375>.
808-
// FIXME: should we forbid "neon" here? But that would be a breaking change.
809-
NOTHING
806+
// LLVM will use float registers when `neon` is available, e.g. for
807+
// calls to built-ins. The only way to ensure a consistent softfloat ABI
808+
// on aarch64 is to never enable `neon`, so we enforce that.
809+
FeatureConstraints { required: &[], incompatible: &["neon"] }
810810
}
811811
_ => {
812812
// Everything else is assumed to use a hardfloat ABI. neon and fp-armv8 must be enabled.

0 commit comments

Comments
 (0)
Failed to load comments.