about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs1
-rw-r--r--compiler/rustc_target/src/spec/aarch64_unknown_hermitkernel.rs16
2 files changed, 17 insertions, 0 deletions
diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs b/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs
index 44beb2f6ad8..f8e1e1b02f5 100644
--- a/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs
+++ b/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs
@@ -3,6 +3,7 @@ use crate::spec::Target;
 pub fn target() -> Target {
     let mut base = super::hermit_base::opts();
     base.max_atomic_width = Some(128);
+    base.features = "+strict-align,+neon,+fp-armv8".to_string();
 
     Target {
         llvm_target: "aarch64-unknown-hermit".to_string(),
diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_hermitkernel.rs b/compiler/rustc_target/src/spec/aarch64_unknown_hermitkernel.rs
new file mode 100644
index 00000000000..6e9d6c6221c
--- /dev/null
+++ b/compiler/rustc_target/src/spec/aarch64_unknown_hermitkernel.rs
@@ -0,0 +1,16 @@
+use crate::spec::Target;
+
+pub fn target() -> Target {
+    let mut base = super::hermit_kernel_base::opts();
+    base.max_atomic_width = Some(128);
+    base.abi = "softfloat".to_string();
+    base.features = "+strict-align,-neon,-fp-armv8".to_string();
+
+    Target {
+        llvm_target: "aarch64-unknown-hermit".to_string(),
+        pointer_width: 64,
+        data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
+        arch: "aarch64".to_string(),
+        options: base,
+    }
+}