OSDN Git Service

2007-08-17 Richard Sandiford <richard@codesourcery.com>
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Aug 2007 13:12:22 +0000 (13:12 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Aug 2007 13:12:22 +0000 (13:12 +0000)
    Nigel Stephens  <nigel@mips.com>

* config/mt-sde: New file.
* configure.ac (mips*-sde-elf*): New stanza.  Use config/mt-sde
as target_makefile_frag.
* configure: Regenerate.

gcc/
2007-08-17  Richard Sandiford  <richard@codesourcery.com>
    Nigel Stephens  <nigel@mips.com>

* config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
Treat -mno-data-in-code and -mcode-xonly as aliases for
-mcode-readable=no and -mcode-readable=pcrel respectively.
* config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
(MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
(MULTILIB_DIRNAMES): Update accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127586 138bc75d-0d04-0410-961f-82ee72b054a4

ChangeLog
config/mt-sde [new file with mode: 0644]
configure
configure.ac
gcc/ChangeLog
gcc/config/mips/sde.h
gcc/config/mips/t-sde

index f19b139..c66e671 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-08-17  Richard Sandiford  <richard@codesourcery.com>
+           Nigel Stephens  <nigel@mips.com>
+
+       * config/mt-sde: New file.
+       * configure.ac (mips*-sde-elf*): New stanza.  Use config/mt-sde
+       as target_makefile_frag.
+       * configure: Regenerate.
+
 2007-08-16  Alexandre Oliva  <aoliva@redhat.com>
 
        * Makefile.def (STAGE2_CFLAGS, STAGE3_CFLAGS, STAGE4_CFLAGS):
diff --git a/config/mt-sde b/config/mt-sde
new file mode 100644 (file)
index 0000000..e746161
--- /dev/null
@@ -0,0 +1,8 @@
+# We default to building libraries optimised for size.  We switch off
+# sibling-call optimization to permit interlinking of MIPS16 and
+# non-MIPS16 functions. The -mcode-xonly option allows MIPS16
+# libraries to run on Harvard-style split I/D memories, so long as
+# they have the D-to-I redirect for pc-relative loads.
+
+CFLAGS_FOR_TARGET = -Os -fno-optimize-sibling-calls -mcode-xonly
+CXXFLAGS_FOR_TARGET = -Os -fno-optimize-sibling-calls -mcode-xonly
index 7b9cc63..ac3eeb1 100755 (executable)
--- a/configure
+++ b/configure
@@ -5224,6 +5224,9 @@ case "${target}" in
   spu-*-*)
     target_makefile_frag="config/mt-spu"
     ;;
+  mips*-sde-elf*)
+    target_makefile_frag="config/mt-sde"
+    ;;
   *-*-netware*)
     target_makefile_frag="config/mt-netware"
     ;;
index 8f957f4..9e0efc3 100644 (file)
@@ -1748,6 +1748,9 @@ case "${target}" in
   spu-*-*)
     target_makefile_frag="config/mt-spu"
     ;;
+  mips*-sde-elf*)
+    target_makefile_frag="config/mt-sde"
+    ;;
   *-*-netware*)
     target_makefile_frag="config/mt-netware"
     ;;
index 659a586..00894c9 100644 (file)
@@ -1,3 +1,13 @@
+2007-08-17  Richard Sandiford  <richard@codesourcery.com>
+           Nigel Stephens  <nigel@mips.com>
+
+       * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
+       Treat -mno-data-in-code and -mcode-xonly as aliases for
+       -mcode-readable=no and -mcode-readable=pcrel respectively.
+       * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
+       (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
+       (MULTILIB_DIRNAMES): Update accordingly.
+
 2007-08-17  H.J. Lu  <hongjiu.lu@intel.com>
 
        * Makefile.in (version.o): Depend on $(REVISION) only if
index 14a1610..d8094c5 100644 (file)
@@ -36,11 +36,18 @@ Boston, MA 02111-1307, USA.  */
   /* Remove a redundant -mfp64 for -mabi=n32; we want the !mfp64       \
      multilibs.  There's no need to check whether the architecture     \
      is 64-bit; cc1 will complain if it isn't.  */                     \
-  "%{mabi=n32: %<mfp64}"                                               \
+  "%{mabi=n32: %<mfp64}",                                              \
                                                                        \
   /* Make sure that an endian option is always present.  This makes    \
      things like LINK_SPEC easier to write.  */                                \
-  "%{!EB:%{!EL:%(endian_spec)}}"
+  "%{!EB:%{!EL:%(endian_spec)}}",                                      \
+                                                                       \
+  /* -mcode-xonly is a traditional alias for -mcode-readable=pcrel and \
+     -mno-data-in-code is a traditional alias for -mcode-readable=no.  \
+     The latter trumps the former.  */                                 \
+  "%{mno-data-in-code: -mcode-readable=no}",                           \
+  "%{!mcode-readable=no: %{mcode-xonly: -mcode-readable=pcrel}}",      \
+  "%<mno-data-in-code %<mcode-xonly"
 
 /* Use trap rather than break for all but MIPS I ISA.  Force -no-mips16,
    so that MIPS16 assembler code requires an explicit ".set mips16".
index 40c62dc..e019cbb 100644 (file)
@@ -14,10 +14,12 @@ $(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
 # without the $gp register. Use -fno-optimize-sibling-calls in case
 # we have a mixed mips16/non-mips16 environment where a plain "jump"
 # instuction won't work across the divide (no jx instruction).
-TARGET_LIBGCC2_CFLAGS = -G 0 -fno-optimize-sibling-calls
+# Compile libraries with -mcode-xonly, so that they are link-compatible
+# with both -mcode-readable=pcrel and -mcode-readable=yes.
+TARGET_LIBGCC2_CFLAGS = -G 0 -fno-optimize-sibling-calls -mcode-xonly
 
-MULTILIB_OPTIONS = EL/EB mips32/mips32r2/mips64 mips16 msoft-float/mfp64
-MULTILIB_DIRNAMES = el eb mips32 mips32r2 mips64 mips16 sof f64
+MULTILIB_OPTIONS = EL/EB mips32/mips32r2/mips64 mips16 msoft-float/mfp64 mcode-readable=no
+MULTILIB_DIRNAMES = el eb mips32 mips32r2 mips64 mips16 sof f64 spram
 MULTILIB_MATCHES = EL=mel EB=meb
 
 # The -mfp64 option is only valid in conjunction with -mips32r2.