diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2018-04-02 01:46:41 +0200 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2018-04-02 01:48:19 +0200 |
commit | b4f671d099f15ba4d9f1002644bc83346d931752 (patch) | |
tree | e8a3f997f78b59e10fc3f1768e10aff216194801 | |
parent | 72016a30f1f000a31af13bb00cc9aa0790120388 (diff) | |
download | mrust-b4f671d099f15ba4d9f1002644bc83346d931752.tar.gz |
Add targets aarch64-linux-gnu and aarch64-unknown-openbsd
-rw-r--r-- | src/trans/target.cpp | 23 |
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; |