summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/config.gcc2
-rw-r--r--gcc/config/mips/elfoabi.h7
-rw-r--r--gcc/config/mips/iris6.h9
-rw-r--r--gcc/config/mips/linux.h8
-rw-r--r--gcc/config/mips/mips.h6
-rw-r--r--gcc/config/mips/sde.h6
-rw-r--r--gcc/config/mips/vr.h8
8 files changed, 51 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 49df4e79ac0..a09fd980c3b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+2008-11-10 Catherine Moore <clm@codesourcery.com>
+
+ * config.gcc (mips64vrel-*-elf*): Include the tm_file
+ prior to vr.h.
+ * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
+ (BASE_DRIVER_SELF_SPECS): Remove.
+ (DRIVER_SELF_SPECS): New definition.
+ * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
+ BASE_DRIVER_SELF_SPECS.
+ * config/mips/sde.h: Likewise.
+ * config/mips/iris6.h: Likewise.
+ * config/mips/vr.h: Likewise.
+ * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
+
2008-11-07 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimizations/37948
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 788e4351a9b..99f7c89b945 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1672,7 +1672,7 @@ mips64-*-elf* | mips64el-*-elf*)
tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
;;
mips64vr-*-elf* | mips64vrel-*-elf*)
- tm_file="mips/vr.h elfos.h ${tm_file} mips/elf.h"
+ tm_file="elfos.h ${tm_file} mips/vr.h mips/elf.h"
tmake_file=mips/t-vr
;;
mips64orion-*-elf* | mips64orionel-*-elf*)
diff --git a/gcc/config/mips/elfoabi.h b/gcc/config/mips/elfoabi.h
index a8c92b869d8..add44b4cae8 100644
--- a/gcc/config/mips/elfoabi.h
+++ b/gcc/config/mips/elfoabi.h
@@ -19,6 +19,7 @@ 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/>. */
+#undef DRIVER_SELF_SPECS
#define DRIVER_SELF_SPECS \
/* Make sure a -mips option is present. This helps us to pick \
the right multilib, and also makes the later specs easier \
@@ -32,4 +33,8 @@ along with GCC; see the file COPYING3. If not see
/* Remove a redundant -mfp64 for -mabi=o64; 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=o64: %<mfp64}"
+ "%{mabi=o64: %<mfp64}", \
+ \
+ /* Configuration-independent MIPS rules.*/ \
+ BASE_DRIVER_SELF_SPECS
+
diff --git a/gcc/config/mips/iris6.h b/gcc/config/mips/iris6.h
index ffd918e8aaa..b47c38f1218 100644
--- a/gcc/config/mips/iris6.h
+++ b/gcc/config/mips/iris6.h
@@ -29,9 +29,12 @@ along with GCC; see the file COPYING3. If not see
/* Force the default ABI onto the command line in order to make the specs
easier to write. Default to the mips2 ISA for the O32 ABI. */
-#define DRIVER_SELF_SPECS \
- "%{!mabi=*: -mabi=n32}", \
- "%{mabi=32: %{!mips*: %{!march*: -mips2}}}"
+#undef DRIVER_SELF_SPECS
+#define DRIVER_SELF_SPECS \
+ "%{!mabi=*: -mabi=n32}", \
+ "%{mabi=32: %{!mips*: %{!march*: -mips2}}}", \
+ /* Configuration-independent MIPS rules. */ \
+ BASE_DRIVER_SELF_SPECS
/* Force the generation of dwarf .debug_frame sections even if not
compiling -g. This guarantees that we can unwind the stack. */
diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
index b30289741fe..c028f563de0 100644
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
@@ -134,7 +134,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
# define MARCH_MTUNE_NATIVE_SPECS ""
#endif
-#define BASE_DRIVER_SELF_SPECS \
+#define LINUX_DRIVER_SELF_SPECS \
NO_SHARED_SPECS \
MARCH_MTUNE_NATIVE_SPECS, \
/* -mplt has no effect without -mno-shared. Simplify later \
@@ -142,4 +142,8 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
"%{!mno-shared:%<mplt}", \
/* -mplt likewise has no effect for -mabi=64 without -msym32. */ \
"%{mabi=64:%{!msym32:%<mplt}}"
-#define DRIVER_SELF_SPECS BASE_DRIVER_SELF_SPECS
+
+#undef DRIVER_SELF_SPECS
+#define DRIVER_SELF_SPECS \
+ BASE_DRIVER_SELF_SPECS, \
+ LINUX_DRIVER_SELF_SPECS
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index ecf7d910fa1..bf2e0d0fae7 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -742,6 +742,12 @@ enum mips_code_readable_setting {
{"mips-plt", "%{!mplt:%{!mno-plt:-m%(VALUE)}}" }
+/* A spec that infers the -mdsp setting from an -march argument. */
+#define BASE_DRIVER_SELF_SPECS \
+ "%{!mno-dsp:%{march=24ke*|march=34k*|march=74k*: -mdsp}}"
+
+#define DRIVER_SELF_SPECS BASE_DRIVER_SELF_SPECS
+
#define GENERATE_DIVIDE_TRAPS (TARGET_DIVIDE_TRAPS \
&& ISA_HAS_COND_TRAP)
diff --git a/gcc/config/mips/sde.h b/gcc/config/mips/sde.h
index beb8d1df7bf..f80b6f71b08 100644
--- a/gcc/config/mips/sde.h
+++ b/gcc/config/mips/sde.h
@@ -19,6 +19,7 @@ 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/>. */
+#undef DRIVER_SELF_SPECS
#define DRIVER_SELF_SPECS \
/* Make sure a -mips option is present. This helps us to pick \
the right multilib, and also makes the later specs easier \
@@ -46,7 +47,10 @@ along with GCC; see the file COPYING3. If not see
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"
+ "%<mno-data-in-code %<mcode-xonly", \
+ \
+ /* Configuration-independent MIPS rules. */ \
+ BASE_DRIVER_SELF_SPECS
/* Use trap rather than break for all but MIPS I ISA. Force -no-mips16,
so that MIPS16 assembler code requires an explicit ".set mips16".
diff --git a/gcc/config/mips/vr.h b/gcc/config/mips/vr.h
index 9492cac759d..b5b32c8ea21 100644
--- a/gcc/config/mips/vr.h
+++ b/gcc/config/mips/vr.h
@@ -20,12 +20,15 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#define DEFAULT_VR_ARCH "mfix-vr4130"
+#undef MIPS_ABI_DEFAULT
#define MIPS_ABI_DEFAULT ABI_EABI
+#undef MULTILIB_DEFAULTS
#define MULTILIB_DEFAULTS \
{ MULTILIB_ENDIAN_DEFAULT, \
MULTILIB_ABI_DEFAULT, \
DEFAULT_VR_ARCH }
+#undef DRIVER_SELF_SPECS
#define DRIVER_SELF_SPECS \
/* Enforce the default architecture. This is mostly for \
the assembler's benefit. */ \
@@ -51,4 +54,7 @@ along with GCC; see the file COPYING3. If not see
"%{mabi=eabi:%{!mlong*:%{!mgp32:-mlong64}}}", \
\
/* Remove -mgp32 if it is redundant. */ \
- "%{mabi=32:%<mgp32}"
+ "%{mabi=32:%<mgp32}", \
+ \
+ /* Configuration-independent MIPS rules. */ \
+ BASE_DRIVER_SELF_SPECS