diff options
author | John Hodge (Mutabah) <acessdev@gmail.com> | 2018-04-07 15:50:56 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-07 15:50:56 +0800 |
commit | 4f98e4322ef7aabd3bbef8cd93c0980cd6eeeed1 (patch) | |
tree | e8a3f997f78b59e10fc3f1768e10aff216194801 | |
parent | 1a16def28935548e29be0fe5a632e25c83045924 (diff) | |
parent | b4f671d099f15ba4d9f1002644bc83346d931752 (diff) | |
download | mrust-4f98e4322ef7aabd3bbef8cd93c0980cd6eeeed1.tar.gz |
Merge pull request #71 from jirutka/aarch64
Add targets aarch64-linux-gnu and aarch64-unknown-openbsd
-rw-r--r-- | src/main.cpp | 4 | ||||
-rw-r--r-- | src/trans/target.cpp | 23 |
2 files changed, 25 insertions, 2 deletions
diff --git a/src/main.cpp b/src/main.cpp index 369c80de..212cdfd3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -38,7 +38,7 @@ # if defined(__amd64__) # define DEFAULT_TARGET_NAME "x86_64-linux-gnu" # elif defined(__aarch64__) -# define DEFAULT_TARGET_NAME "arm64-linux-gnu" +# define DEFAULT_TARGET_NAME "aarch64-linux-gnu" # elif defined(__arm__) # define DEFAULT_TARGET_NAME "arm-linux-gnu" # elif defined(__i386__) @@ -60,7 +60,7 @@ # if defined(__amd64__) # define DEFAULT_TARGET_NAME "x86_64-unknown-openbsd" # elif defined(__aarch64__) -# define DEFAULT_TARGET_NAME "arm64-unknown-openbsd" +# define DEFAULT_TARGET_NAME "aarch64-unknown-openbsd" # elif defined(__arm__) # define DEFAULT_TARGET_NAME "arm-unknown-openbsd" # elif defined(__i386__) 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; |