]>
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 XL |
13 | vendor: String::new(), |
14 | linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld), | |
e74abb32 XL |
15 | linker: Some("rust-lld".to_owned()), |
16 | features: "+strict-align,-neon,-fp-armv8".to_string(), | |
17 | executables: true, | |
f9f354fc | 18 | relocation_model: RelocModel::Static, |
e74abb32 XL |
19 | disable_redzone: true, |
20 | linker_is_gnu: true, | |
21 | max_atomic_width: Some(128), | |
22 | panic_strategy: PanicStrategy::Abort, | |
f035d41b | 23 | unsupported_abis: super::arm_base::unsupported_abis(), |
dfeec247 | 24 | ..Default::default() |
e74abb32 | 25 | }; |
29967ef6 | 26 | Target { |
e74abb32 | 27 | llvm_target: "aarch64-unknown-none".to_string(), |
29967ef6 | 28 | pointer_width: 64, |
e74abb32 XL |
29 | data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), |
30 | arch: "aarch64".to_string(), | |
e74abb32 | 31 | options: opts, |
29967ef6 | 32 | } |
e74abb32 | 33 | } |