diff options
author | Anthony Green <green@moxielogic.com> | 2015-01-10 13:04:06 -0600 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2015-01-10 13:04:06 -0600 |
commit | 5139d21430b956d6e27ba1e3118030f874bbc3f2 (patch) | |
tree | d6f88cccc7e6978a81566770853ae96695b31144 /c/src/lib/libbsp | |
parent | arm: Fix compile error for ARMv6-M multilib (diff) | |
download | rtems-5139d21430b956d6e27ba1e3118030f874bbc3f2.tar.bz2 |
moxiesim: Add conditional logic to handle old and new gas syntax
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r-- | c/src/lib/libbsp/moxie/moxiesim/configure.ac | 13 | ||||
-rw-r--r-- | c/src/lib/libbsp/moxie/moxiesim/start/start.S | 10 |
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 |