rustc_target/spec/targets/
arm64ec_pc_windows_msvc.rs1use crate::spec::{
2 Arch, FramePointer, LinkerFlavor, Lld, Target, TargetMetadata, add_link_args, base,
3};
4
5pub(crate) fn target() -> Target {
6 let mut base = base::windows_msvc::opts();
7 base.max_atomic_width = Some(128);
8 base.features = "+v8a,+neon,+fp-armv8".into();
9 add_link_args(
10 &mut base.late_link_args,
11 LinkerFlavor::Msvc(Lld::No),
12 &["/machine:arm64ec", "softintrin.lib"],
13 );
14
15 base.frame_pointer = FramePointer::NonLeaf;
20
21 Target {
22 llvm_target: "arm64ec-pc-windows-msvc".into(),
23 metadata: TargetMetadata {
24 description: Some("Arm64EC Windows MSVC".into()),
25 tier: Some(2),
26 host_tools: Some(false),
27 std: Some(true),
28 },
29 pointer_width: 64,
30 data_layout:
31 "e-m:w-p270:32:32-p271:32:32-p272:64:64-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32"
32 .into(),
33 arch: Arch::Arm64EC,
34 options: base,
35 }
36}