Skip to main content

rustc_target/spec/targets/
aarch64_unknown_hyperlight.rs

1// Hyperlight Guest target for AArch64
2
3use crate::spec::{Arch, SanitizerSet, Target, TargetMetadata, TargetOptions, base};
4
5pub(crate) fn target() -> Target {
6    let opts = TargetOptions {
7        features: "+v8.1a,+strict-align,+neon,+fp-armv8".into(),
8        direct_access_external_data: Some(true),
9
10        supported_sanitizers: SanitizerSet::KCFI
11            | SanitizerSet::KERNELADDRESS
12            | SanitizerSet::KERNELHWADDRESS,
13        max_atomic_width: Some(128),
14        default_uwtable: true,
15        supports_xray: true,
16        ..base::hyperlight::opts()
17    };
18    Target {
19        llvm_target: "aarch64-unknown-none".into(),
20        metadata: TargetMetadata {
21            description: Some("ARM64 Hyperlight guest".into()),
22            tier: Some(3),
23            host_tools: Some(false),
24            std: Some(false),
25        },
26        pointer_width: 64,
27        data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
28        arch: Arch::AArch64,
29        options: opts,
30    }
31}