summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.cpp4
-rw-r--r--src/trans/target.cpp23
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;