aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@redhat.com>2004-03-24 13:44:56 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2004-03-24 13:44:56 +0000
commitc1077e1e31c264a667fe907db01de9b261a4f861 (patch)
treed99b94fba92ef502e69d3f21c5d50ad0addb4042
parentc235ddf27585e26c1e86bfec25e72bfef0debba0 (diff)
downloadgcc-c1077e1e31c264a667fe907db01de9b261a4f861.zip
gcc-c1077e1e31c264a667fe907db01de9b261a4f861.tar.gz
gcc-c1077e1e31c264a667fe907db01de9b261a4f861.tar.bz2
config.gcc (mips64vr-*-elf*, [...]): Remove tm_defines.
* config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines. * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130. (MULTILIB_DEFAULTS): Use it. (MIPS_CPU_STRING_DEFAULT): Remove. (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define. (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make EABI64 -mlong32 the default ABI. Enforce the default architecture. * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs, march=vr4130, march=vr4300 and march=vr5000. (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120. (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments accordingly. From-SVN: r79915
-rw-r--r--gcc/ChangeLog15
-rw-r--r--gcc/config/mips/t-vr73
-rw-r--r--gcc/config/mips/vr.h31
3 files changed, 97 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 80a7cd1..4ac91fe 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,18 @@
+2004-03-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
+ * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
+ (MULTILIB_DEFAULTS): Use it.
+ (MIPS_CPU_STRING_DEFAULT): Remove.
+ (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
+ (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
+ EABI64 -mlong32 the default ABI. Enforce the default architecture.
+ * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
+ march=vr4130, march=vr4300 and march=vr5000.
+ (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
+ (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
+ accordingly.
+
2004-03-24 DJ Delorie <dj@redhat.com>
Richard Sandiford <rsandifo@redhat.com>
diff --git a/gcc/config/mips/t-vr b/gcc/config/mips/t-vr
index 2f0aef4..e342641 100644
--- a/gcc/config/mips/t-vr
+++ b/gcc/config/mips/t-vr
@@ -22,27 +22,59 @@ $(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
# END boiler-plate
+# Main multilibs
+# --------------
+#
# Endianness: EB or EL
#
# ABIs: mabi=32
# mabi=o64
# mabi=eabi
-# meabi=eabi/mlong32
+# mabi=eabi/mlong32
# mabi=eabi/mgp32
# mabi=eabi/mgp32/mlong64
#
-# Architecture: march=vr5400
-# march=vr4100
-# march=vr4100/mips16
+# Architecture: march=vr4120 with -mfix-vr4122-bugs
+# march=vr4130 (default)
+# march=vr5000
+# march=vr5400
+# march=vr5500
+#
+# Total: 2 * 6 * 5 = 60 multilibs.
+#
+#
+# Extra vr4300 multilibs
+# ----------------------
+#
+# Endianness: EB or EL
+#
+# ABI: o64
+#
+# Architecture: vr4300.
+#
+# Total: 2 * 1 * 2 = 2 multilibs.
#
-# Total: 2 * 6 * 3 = 36 multilibs.
+#
+# Extra MIPS16 multilibs
+# ----------------------
+#
+# Endianness: EB or EL
+#
+# ABIs: mabi=o64
+# mabi=eabi/mlong32
+# mabi=eabi/mgp32
+#
+# Architecture: march=vr4120 with -mfix-vr4122-bugs
+# march=vr4130 (default)
+#
+# Total: 2 * 3 * 2 = 12 multilibs.
MULTILIB_OPTIONS = \
EL/EB \
mabi=32/mabi=o64/mabi=eabi \
mgp32 \
mlong64 \
mips16 \
- march=vr5400/march=vr4100
+ mfix-vr4122-bugs/march=vr4130/march=vr4300/march=vr5000/march=vr5400/march=vr5500
MULTILIB_DIRNAMES = \
el eb \
@@ -50,19 +82,30 @@ MULTILIB_DIRNAMES = \
gp32 \
long64 \
mips16 \
- vr5400 vr4100
+ vr4120 vr4130 vr4300 vr5000 vr5400 vr5500
-MULTILIB_MATCHES = EL=mel EB=meb
+MULTILIB_MATCHES = EL=mel EB=meb mfix-vr4122-bugs=march?vr4120
-# Assume a 4000-series is the default: we'd need a *mips16 entry if
-# the default processor didn't support mips16. Also assume o64,
-# which means we need to extend the o64 exceptions to combinations
-# without a -mabi flag.
+# Assume a 41xx-series is the default: we'd need a *mips16 entry if
+# the default processor didn't support mips16. Also assume the
+# default ABI is EABI64 -mlong32.
MULTILIB_EXCEPTIONS = \
*mabi=32/mlong64* \
*mabi=32/mgp32* \
*mabi=o64/mgp32* \
*mabi=o64/mlong64* \
- mgp32* E[LB]/mgp32* \
- mlong64* E[LB]/mlong64* \
- *mips16/march=vr5*
+ *mips16/march=vr5* \
+ *mips16/march=vr4300 \
+ $(MIPS16_EXCEPTIONS) \
+ $(VR4300_EXCEPTIONS)
+
+MIPS16_EXCEPTIONS = \
+ *mabi=32*mips16* \
+ *mlong64*mips16*
+
+VR4300_EXCEPTIONS = \
+ *mabi=32*march=vr4300 \
+ *mgp32*march=vr4300 \
+ *mlong64*march=vr4300 \
+ march=vr4300 \
+ E[LB]/march=vr4300
diff --git a/gcc/config/mips/vr.h b/gcc/config/mips/vr.h
index 62deb00..cbc7367 100644
--- a/gcc/config/mips/vr.h
+++ b/gcc/config/mips/vr.h
@@ -19,13 +19,30 @@ You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-#define MIPS_CPU_STRING_DEFAULT "vr4100"
+#define DEFAULT_VR_ARCH "vr4130"
+#define MIPS_ABI_DEFAULT ABI_EABI
+#define MIPS_MARCH_CONTROLS_SOFT_FLOAT 1
#define MULTILIB_DEFAULTS \
- { MULTILIB_ENDIAN_DEFAULT, MULTILIB_ABI_DEFAULT, "march=vr4100" }
+ { MULTILIB_ENDIAN_DEFAULT, \
+ MULTILIB_ABI_DEFAULT, \
+ "march=" DEFAULT_VR_ARCH }
-/* Make sure that -mlong64 always appears on the command line when
- 64-bit longs are needed. Also make sure that -mgp32 doesn't appear
- if it is redundant. */
#define DRIVER_SELF_SPECS \
- "%{mabi=eabi:%{!mlong*:%{!mgp32:-mlong64}}}", \
- "%{mabi=32:%<mgp32}"
+ /* Make -mfix-vr4122-bugs imply -march=vr4120. This cuts down \
+ on command-line tautology and makes it easier for t-vr to \
+ provide a -mfix-vr4122-bugs multilib. */ \
+ "%{mfix-vr4122-bugs:%{!march=*:-march=vr4120}}", \
+ \
+ /* Make -mabi=eabi -mlong32 the default. */ \
+ "%{!mabi=*:-mabi=eabi %{!mlong*:-mlong32}}", \
+ \
+ /* Make sure -mlong64 multilibs are chosen when 64-bit longs \
+ are needed. */ \
+ "%{mabi=eabi:%{!mlong*:%{!mgp32:-mlong64}}}", \
+ \
+ /* Remove -mgp32 if it is redundant. */ \
+ "%{mabi=32:%<mgp32}", \
+ \
+ /* Enforce the default architecture. This is mostly for \
+ the assembler's benefit. */ \
+ "%{!march=*:-march=" DEFAULT_VR_ARCH "}"