]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_target/src/spec/aarch64_unknown_uefi.rs
Rollup merge of #96051 - newpavlov:duration_rounding, r=nagisa,joshtriplett
[rust.git] / compiler / rustc_target / src / spec / aarch64_unknown_uefi.rs
1 // This defines the aarch64 target for UEFI systems as described in the UEFI specification. See the
2 // uefi-base module for generic UEFI options.
3
4 use super::uefi_msvc_base;
5 use crate::spec::{LinkerFlavor, LldFlavor, Target};
6
7 pub fn target() -> Target {
8     let mut base = uefi_msvc_base::opts();
9
10     base.max_atomic_width = Some(64);
11
12     let pre_link_args_msvc = vec!["/machine:arm64".into()];
13
14     base.pre_link_args.get_mut(&LinkerFlavor::Msvc).unwrap().extend(pre_link_args_msvc.clone());
15     base.pre_link_args
16         .get_mut(&LinkerFlavor::Lld(LldFlavor::Link))
17         .unwrap()
18         .extend(pre_link_args_msvc);
19
20     Target {
21         llvm_target: "aarch64-unknown-windows".into(),
22         pointer_width: 64,
23         data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
24         arch: "aarch64".into(),
25         options: base,
26     }
27 }