mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
Rollup merge of #130295 - chrisnc:armv8r-feature-fix, r=workingjubilee
Fix target-cpu fpu features on Armv8-R. This is a follow-up to #123159, but applied to Armv8-R. This required https://github.com/llvm/llvm-project/pull/88287 to work properly. Now that this change exists in rustc's llvm, we can fix Armv8-R's default fpu features. In Armv8-R's case, the default features from LLVM for floating-point are sufficient, because there is no integer-only variant of this architecture.
This commit is contained in:
commit
3225bd5f96
@ -21,16 +21,16 @@ pub(crate) fn target() -> Target {
|
||||
linker: Some("rust-lld".into()),
|
||||
relocation_model: RelocModel::Static,
|
||||
panic_strategy: PanicStrategy::Abort,
|
||||
// The Cortex-R52 has two variants with respect to floating-point support:
|
||||
// 1. fp-armv8, SP-only, with 16 DP (32 SP) registers
|
||||
// 2. neon-fp-armv8, SP+DP, with 32 DP registers
|
||||
// Use the lesser of these two options as the default, as it will produce code
|
||||
// compatible with either variant.
|
||||
// Armv8-R requires a minimum set of floating-point features equivalent to:
|
||||
// fp-armv8, SP-only, with 16 DP (32 SP) registers
|
||||
// LLVM defines Armv8-R to include these features automatically.
|
||||
//
|
||||
// The Cortex-R52 supports these default features and optionally includes:
|
||||
// neon-fp-armv8, SP+DP, with 32 DP registers
|
||||
//
|
||||
// Reference:
|
||||
// Arm Cortex-R52 Processor Technical Reference Manual
|
||||
// - Chapter 15 Advanced SIMD and floating-point support
|
||||
features: "+fp-armv8,-fp64,-d32".into(),
|
||||
max_atomic_width: Some(64),
|
||||
emit_debug_gdb_scripts: false,
|
||||
// GCC defaults to 8 for arm-none here.
|
||||
|
Loading…
Reference in New Issue
Block a user