summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2018-04-02 01:46:41 +0200
committerJakub Jirutka <jakub@jirutka.cz>2018-04-02 01:48:19 +0200
commitb4f671d099f15ba4d9f1002644bc83346d931752 (patch)
treee8a3f997f78b59e10fc3f1768e10aff216194801
parent72016a30f1f000a31af13bb00cc9aa0790120388 (diff)
downloadmrust-b4f671d099f15ba4d9f1002644bc83346d931752.tar.gz
Add targets aarch64-linux-gnu and aarch64-unknown-openbsd
-rw-r--r--src/trans/target.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/trans/target.cpp b/src/trans/target.cpp
index 1d683af9..2bf655a9 100644
--- a/src/trans/target.cpp
+++ b/src/trans/target.cpp
@@ -24,6 +24,11 @@ const TargetArch ARCH_X86 = {
32, false,
{ /*atomic(u8)=*/true, false, true, false, true }
};
+const TargetArch ARCH_ARM64 = {
+ "aarch64",
+ 64, false,
+ { /*atomic(u8)=*/true, true, true, true, true }
+};
const TargetArch ARCH_ARM32 = {
"arm",
32, false,
@@ -84,6 +89,10 @@ namespace
{
rv.m_arch = ARCH_ARM32;
}
+ else if( key_val.value.as_string() == ARCH_ARM64.m_name )
+ {
+ rv.m_arch = ARCH_ARM64;
+ }
else if( key_val.value.as_string() == ARCH_X86.m_name )
{
rv.m_arch = ARCH_X86;
@@ -224,6 +233,13 @@ namespace
ARCH_ARM32
};
}
+ else if(target_name == "aarch64-linux-gnu")
+ {
+ return TargetSpec {
+ "unix", "linux", "gnu", CodegenMode::Gnu11, "aarch64-linux-gnu",
+ ARCH_ARM64
+ };
+ }
else if(target_name == "i586-windows-gnu")
{
return TargetSpec {
@@ -280,6 +296,13 @@ namespace
ARCH_ARM32
};
}
+ else if(target_name == "aarch64-unknown-openbsd")
+ {
+ return TargetSpec {
+ "unix", "openbsd", "gnu", CodegenMode::Gnu11, "aarch64-unknown-openbsd",
+ ARCH_ARM64
+ };
+ }
else
{
::std::cerr << "Unknown target name '" << target_name << "'" << ::std::endl;