]>
Commit | Line | Data |
---|---|---|
e74abb32 XL |
1 | // Generic AArch64 target for bare-metal code - Floating point disabled |
2 | // | |
3 | // Can be used in conjunction with the `target-feature` and | |
4 | // `target-cpu` compiler flags to opt-in more hardware-specific | |
5 | // features. | |
6 | // | |
7 | // For example, `-C target-cpu=cortex-a53`. | |
8 | ||
f9f354fc | 9 | use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, Target, TargetOptions}; |
e74abb32 | 10 | |
29967ef6 | 11 | pub fn target() -> Target { |
e74abb32 | 12 | let opts = TargetOptions { |
29967ef6 | 13 | linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld), |
e74abb32 XL |
14 | linker: Some("rust-lld".to_owned()), |
15 | features: "+strict-align,-neon,-fp-armv8".to_string(), | |
16 | executables: true, | |
f9f354fc | 17 | relocation_model: RelocModel::Static, |
e74abb32 XL |
18 | disable_redzone: true, |
19 | linker_is_gnu: true, | |
20 | max_atomic_width: Some(128), | |
21 | panic_strategy: PanicStrategy::Abort, | |
f035d41b | 22 | unsupported_abis: super::arm_base::unsupported_abis(), |
dfeec247 | 23 | ..Default::default() |
e74abb32 | 24 | }; |
29967ef6 | 25 | Target { |
e74abb32 | 26 | llvm_target: "aarch64-unknown-none".to_string(), |
29967ef6 | 27 | pointer_width: 64, |
e74abb32 XL |
28 | data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), |
29 | arch: "aarch64".to_string(), | |
e74abb32 | 30 | options: opts, |
29967ef6 | 31 | } |
e74abb32 | 32 | } |