Add big-endian and ILP32 AArch64 targets
This commit is contained in:
parent
a112c4d61d
commit
8783d1a47e
4 changed files with 62 additions and 0 deletions
|
@ -0,0 +1,20 @@
|
||||||
|
use crate::abi::Endian;
|
||||||
|
use crate::spec::{Target, TargetOptions};
|
||||||
|
|
||||||
|
pub fn target() -> Target {
|
||||||
|
let mut base = super::linux_gnu_base::opts();
|
||||||
|
base.max_atomic_width = Some(128);
|
||||||
|
|
||||||
|
Target {
|
||||||
|
llvm_target: "aarch64_be-unknown-linux-gnu".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: TargetOptions {
|
||||||
|
unsupported_abis: super::arm_base::unsupported_abis(),
|
||||||
|
mcount: "\u{1}_mcount".to_string(),
|
||||||
|
endian: Endian::Big,
|
||||||
|
..base
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
use crate::abi::Endian;
|
||||||
|
use crate::spec::{Target, TargetOptions};
|
||||||
|
|
||||||
|
pub fn target() -> Target {
|
||||||
|
let mut base = super::linux_gnu_base::opts();
|
||||||
|
base.max_atomic_width = Some(128);
|
||||||
|
|
||||||
|
Target {
|
||||||
|
llvm_target: "aarch64_be-unknown-linux-gnu_ilp32".to_string(),
|
||||||
|
pointer_width: 32,
|
||||||
|
data_layout: "E-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
|
||||||
|
arch: "aarch64".to_string(),
|
||||||
|
options: TargetOptions {
|
||||||
|
unsupported_abis: super::arm_base::unsupported_abis(),
|
||||||
|
mcount: "\u{1}_mcount".to_string(),
|
||||||
|
endian: Endian::Big,
|
||||||
|
..base
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
use crate::spec::{Target, TargetOptions};
|
||||||
|
|
||||||
|
pub fn target() -> Target {
|
||||||
|
let mut base = super::linux_gnu_base::opts();
|
||||||
|
base.max_atomic_width = Some(128);
|
||||||
|
|
||||||
|
Target {
|
||||||
|
llvm_target: "aarch64-unknown-linux-gnu_ilp32".to_string(),
|
||||||
|
pointer_width: 32,
|
||||||
|
data_layout: "e-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
|
||||||
|
arch: "aarch64".to_string(),
|
||||||
|
options: TargetOptions {
|
||||||
|
unsupported_abis: super::arm_base::unsupported_abis(),
|
||||||
|
mcount: "\u{1}_mcount".to_string(),
|
||||||
|
..base
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
|
@ -745,6 +745,10 @@ supported_targets! {
|
||||||
("mipsel-sony-psp", mipsel_sony_psp),
|
("mipsel-sony-psp", mipsel_sony_psp),
|
||||||
("mipsel-unknown-none", mipsel_unknown_none),
|
("mipsel-unknown-none", mipsel_unknown_none),
|
||||||
("thumbv4t-none-eabi", thumbv4t_none_eabi),
|
("thumbv4t-none-eabi", thumbv4t_none_eabi),
|
||||||
|
|
||||||
|
("aarch64_be-unknown-linux-gnu", aarch64_be_unknown_linux_gnu),
|
||||||
|
("aarch64-unknown-linux-gnu_ilp32", aarch64_unknown_linux_gnu_ilp32),
|
||||||
|
("aarch64_be-unknown-linux-gnu_ilp32", aarch64_be_unknown_linux_gnu_ilp32),
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Everything `rustc` knows about how to compile for a specific target.
|
/// Everything `rustc` knows about how to compile for a specific target.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue