summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/config/moxie/moxie.h19
-rw-r--r--gcc/config/moxie/moxie.opt27
-rw-r--r--gcc/config/moxie/t-moxie3
-rw-r--r--gcc/doc/invoke.texi21
5 files changed, 79 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e8f13001302..2af6b3df1cf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+2012-09-13 Anthony Green <green@moxielogic.com>
+
+ * config/moxie/moxie.h (LINK_SPEC): Add bi-endian support.
+ (MULTILIB_DEFAULTS): Define.
+ (ASM_SPEC): Define.
+ (BYTES_BIG_ENDIAN, WORDS_BIG_ENDIAN): Add bi-endian support.
+ (TARGET_CPU_CPP_BUILTINS): Add __MOXIE_LITTLE_ENDIAN__ and
+ __MOXIE_BIG_ENDIAN__.
+ * config/moxie/t-moxie (MULTILIB_DIRNAMES, MULTILIB_OPTIONS):
+ Define.
+ * config/moxie/moxie.opt: New file.
+ * doc/invoke.texi (Moxie Options): Add section documenting -mel
+ and -meb.
+
2012-09-13 Paolo Carlini <paolo.carlini@oracle.com>
Manuel López-Ibáñez <manu@gcc.gnu.org>
diff --git a/gcc/config/moxie/moxie.h b/gcc/config/moxie/moxie.h
index c80d26c5ae9..7604ac427a0 100644
--- a/gcc/config/moxie/moxie.h
+++ b/gcc/config/moxie/moxie.h
@@ -41,9 +41,13 @@
#define LIB_SPEC "%{!shared:%{!symbolic:-lc}}"
#undef LINK_SPEC
-#define LINK_SPEC "%{h*} %{v:-V} \
+#define LINK_SPEC "%{h*} %{v:-V} %{!mel:-EB} %{mel:-EL}\
%{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic}"
+#ifndef MULTILIB_DEFAULTS
+#define MULTILIB_DEFAULTS { "meb" }
+#endif
+
/* Layout of Source Language Data Types */
#define INT_TYPE_SIZE 32
@@ -192,6 +196,7 @@ enum reg_class
/* The Overall Framework of an Assembler File */
#undef ASM_SPEC
+#define ASM_SPEC "%{!mel:-EB} %{mel:-EL}"
#define ASM_COMMENT_START "#"
#define ASM_APP_ON ""
#define ASM_APP_OFF ""
@@ -291,8 +296,8 @@ enum reg_class
/* Storage Layout */
#define BITS_BIG_ENDIAN 0
-#define BYTES_BIG_ENDIAN 1
-#define WORDS_BIG_ENDIAN 1
+#define BYTES_BIG_ENDIAN ( ! TARGET_LITTLE_ENDIAN )
+#define WORDS_BIG_ENDIAN ( ! TARGET_LITTLE_ENDIAN )
/* Alignment required for a function entry point, in bits. */
#define FUNCTION_BOUNDARY 16
@@ -473,8 +478,12 @@ enum reg_class
#define TARGET_CPU_CPP_BUILTINS() \
{ \
- builtin_define_std ("moxie"); \
- builtin_define_std ("MOXIE"); \
+ builtin_define_std ("moxie"); \
+ builtin_define_std ("MOXIE"); \
+ if (TARGET_LITTLE_ENDIAN) \
+ builtin_define ("__MOXIE_LITTLE_ENDIAN__"); \
+ else \
+ builtin_define ("__MOXIE_BIG_ENDIAN__"); \
}
#define HAS_LONG_UNCOND_BRANCH true
diff --git a/gcc/config/moxie/moxie.opt b/gcc/config/moxie/moxie.opt
new file mode 100644
index 00000000000..00f3ff82cc8
--- /dev/null
+++ b/gcc/config/moxie/moxie.opt
@@ -0,0 +1,27 @@
+; Options for the moxie compiler port.
+
+; Copyright (C) 2012 Free Software Foundation, Inc.
+;
+; This file is part of GCC.
+;
+; GCC is free software; you can redistribute it and/or modify it under
+; the terms of the GNU General Public License as published by the Free
+; Software Foundation; either version 3, or (at your option) any later
+; version.
+;
+; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+; WARRANTY; without even the implied warranty of MERCHANTABILITY or
+; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+; for more details.
+;
+; You should have received a copy of the GNU General Public License
+; along with GCC; see the file COPYING3. If not see
+; <http://www.gnu.org/licenses/>.
+
+meb
+Target RejectNegative Report InverseMask(LITTLE_ENDIAN)
+Generate big-endian code
+
+mel
+Target RejectNegative Report Mask(LITTLE_ENDIAN)
+Generate little-endian code
diff --git a/gcc/config/moxie/t-moxie b/gcc/config/moxie/t-moxie
index 5498ecbb354..9111fd603ab 100644
--- a/gcc/config/moxie/t-moxie
+++ b/gcc/config/moxie/t-moxie
@@ -18,3 +18,6 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
+MULTILIB_OPTIONS = meb/mel
+MULTILIB_DIRNAMES = eb el
+
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 61bca25c70e..9201ff8a326 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -776,6 +776,9 @@ Objective-C and Objective-C++ Dialects}.
-mreturn-pointer-on-d0 @gol
-mno-crt0 -mrelax -mliw -msetlb}
+@emph{Moxie Options}
+@gccoptlist{-meb -mel}
+
@emph{PDP-11 Options}
@gccoptlist{-mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 @gol
-mbcopy -mbcopy-builtin -mint32 -mno-int16 @gol
@@ -10529,6 +10532,7 @@ platform.
* MIPS Options::
* MMIX Options::
* MN10300 Options::
+* Moxie Options::
* PDP-11 Options::
* picoChip Options::
* PowerPC Options::
@@ -16448,6 +16452,23 @@ instructions. This option defines the preprocessor macro
@end table
+@node Moxie Options
+@subsection Moxie Options
+@cindex Moxie Options
+
+@table @gcctabopt
+
+@item -meb
+@opindex meb
+Generate big-endian code. This is the default for @samp{moxie-*-*}
+configurations.
+
+@item -mel
+@opindex mel
+Generate little-endian code.
+
+@end table
+
@node PDP-11 Options
@subsection PDP-11 Options
@cindex PDP-11 Options