summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/moxie
diff options
context:
space:
mode:
authorAnthony Green <green@moxielogic.com>2015-01-10 13:04:06 -0600
committerJoel Sherrill <joel.sherrill@oarcorp.com>2015-01-10 13:04:06 -0600
commit5139d21430b956d6e27ba1e3118030f874bbc3f2 (patch)
treed6f88cccc7e6978a81566770853ae96695b31144 /c/src/lib/libbsp/moxie
parentarm: Fix compile error for ARMv6-M multilib (diff)
downloadrtems-5139d21430b956d6e27ba1e3118030f874bbc3f2.tar.bz2
moxiesim: Add conditional logic to handle old and new gas syntax
Diffstat (limited to 'c/src/lib/libbsp/moxie')
-rw-r--r--c/src/lib/libbsp/moxie/moxiesim/configure.ac13
-rw-r--r--c/src/lib/libbsp/moxie/moxiesim/start/start.S10
2 files changed, 21 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/moxie/moxiesim/configure.ac b/c/src/lib/libbsp/moxie/moxiesim/configure.ac
index e073b4bbf0..ff87adda21 100644
--- a/c/src/lib/libbsp/moxie/moxiesim/configure.ac
+++ b/c/src/lib/libbsp/moxie/moxiesim/configure.ac
@@ -17,6 +17,19 @@ RTEMS_PROG_CCAS
RTEMS_BSP_CLEANUP_OPTIONS(0, 0)
+AC_MSG_CHECKING([for old moxie assembly syntax])
+AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [],
+ [asm("sub.l $r0, $r0");])],
+ [HAVE_OLD_MOXIE_ASM=yes],
+ [HAVE_OLD_MOXIE_ASM=no])
+AC_MSG_RESULT([$HAVE_OLD_MOXIE_ASM])
+if test "x$HAVE_OLD_MOXIE_ASM" = xyes; then
+ AC_DEFINE(HAVE_OLD_MOXIE_ASM,
+ 1, [Define if you are using old moxie asm syntax (sub.l)])
+fi
+
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
diff --git a/c/src/lib/libbsp/moxie/moxiesim/start/start.S b/c/src/lib/libbsp/moxie/moxiesim/start/start.S
index 6b44a247dc..ae712cb3e4 100644
--- a/c/src/lib/libbsp/moxie/moxiesim/start/start.S
+++ b/c/src/lib/libbsp/moxie/moxiesim/start/start.S
@@ -1,7 +1,13 @@
-/* Copyright (C) 2011, 2013 Anthony Green */
+/* Copyright (C) 2011, 2013, 2014 Anthony Green */
/* moxie start up file. */
+#include "bspopts.h"
+
+#if defined(HAVE_OLD_MOXIE_ASM)
+#define sub sub.l
+#endif
+
.text
.global _start
_start:
@@ -12,7 +18,7 @@ _start:
ldi.l $r0, __bss_start__
xor $r1, $r1
ldi.l $r2, __bss_end__
- sub.l $r2, $r0
+ sub $r2, $r0
jsra memset
ldi.l $r0, 0x0 # pass in NULL