summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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