summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge (Mutabah) <acessdev@gmail.com>2018-11-18 14:34:24 +0800
committerGitHub <noreply@github.com>2018-11-18 14:34:24 +0800
commit61d7669269529ea65a7dc797c0db2f84a05fc7b8 (patch)
tree7e4e32ecdc1ef816adf51cb291f57d27ef99071e
parenta56ce2ac8c99f8622da26bf3677286400c4bbec4 (diff)
parentad1cec3df31470a1b97f1c672a45ae57495945a5 (diff)
downloadmrust-61d7669269529ea65a7dc797c0db2f84a05fc7b8.tar.gz
Merge pull request #92 from glaubitz/m68k
Trans - Add initial support for m68k
-rw-r--r--src/trans/target.cpp16
-rw-r--r--tools/common/target_detect.h2
2 files changed, 18 insertions, 0 deletions
diff --git a/src/trans/target.cpp b/src/trans/target.cpp
index f91b679a..64cf19c6 100644
--- a/src/trans/target.cpp
+++ b/src/trans/target.cpp
@@ -34,6 +34,11 @@ const TargetArch ARCH_ARM32 = {
32, false,
{ /*atomic(u8)=*/true, false, true, false, true }
};
+const TargetArch ARCH_M68K = {
+ "m68k",
+ 32, true,
+ { /*atomic(u8)=*/true, false, true, false, true }
+};
TargetSpec g_target;
@@ -108,6 +113,10 @@ namespace
{
rv.m_arch = ARCH_X86_64;
}
+ else if( key_val.value.as_string() == ARCH_M68K.m_name )
+ {
+ rv.m_arch = ARCH_M68K;
+ }
else
{
// Error.
@@ -332,6 +341,13 @@ namespace
ARCH_ARM64
};
}
+ else if(target_name == "m68k-linux-gnu")
+ {
+ return TargetSpec {
+ "unix", "linux", "gnu", {CodegenMode::Gnu11, "m68k-linux-gnu", BACKEND_C_OPTS_GNU},
+ ARCH_M68K
+ };
+ }
else if(target_name == "i586-windows-gnu")
{
return TargetSpec {
diff --git a/tools/common/target_detect.h b/tools/common/target_detect.h
index a4c44ba4..0812c363 100644
--- a/tools/common/target_detect.h
+++ b/tools/common/target_detect.h
@@ -24,6 +24,8 @@
# define DEFAULT_TARGET_NAME "arm-linux-gnu"
# elif defined(__i386__)
# define DEFAULT_TARGET_NAME "i586-linux-gnu"
+# elif defined(__m68k__)
+# define DEFAULT_TARGET_NAME "m68k-linux-gnu"
# else
# warning "Unable to detect a suitable default target (linux-gnu)"
# endif