We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 243d2ca commit 2bd82d7Copy full SHA for 2bd82d7
compiler/rustc_target/src/target_features.rs
@@ -803,10 +803,10 @@ impl Target {
803
// the use of soft-float, so all we can do here is some crude hacks.
804
match &*self.abi {
805
"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
+ // LLVM will use float registers when `neon` is available, e.g. for
+ // calls to built-ins. The only way to ensure a consistent softfloat ABI
+ // on aarch64 is to never enable `neon`, so we enforce that.
+ FeatureConstraints { required: &[], incompatible: &["neon"] }
810
}
811
_ => {
812
// Everything else is assumed to use a hardfloat ABI. neon and fp-armv8 must be enabled.
0 commit comments