This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[committed] New multilibs for mips64vr*-elf


This patch changes the multilibs built by mips64vr*-elf, removing those
for -march=vr4100 and adding new ones for -march=vr4120, -march=vr4130,
-march=vr4300, -march=vr5000 and -march=vr5500.  It also pares down the
mips16 multilibs to cover three rather than six ABIs.

Tested on mips64vrel-elf, applied to trunk.

Richard


	* 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, march=vr5000 and march=vr5500.
	(MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
	(MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
	accordingly.

Index: config.gcc
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config.gcc,v
retrieving revision 1.442
diff -c -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.442 config.gcc
*** config.gcc	16 Mar 2004 16:43:06 -0000	1.442
--- config.gcc	24 Mar 2004 13:36:24 -0000
*************** mips64-*-elf* | mips64el-*-elf*)
*** 1414,1420 ****
  	;;
  mips64vr-*-elf* | mips64vrel-*-elf*)
          tm_file="mips/vr.h ${tm_file} mips/elf64.h"
-         tm_defines="MIPS_ABI_DEFAULT=ABI_O64 MIPS_MARCH_CONTROLS_SOFT_FLOAT=1"
          tmake_file=mips/t-vr
  	use_fixproto=yes
          ;;
--- 1414,1419 ----
Index: config/mips/vr.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/vr.h,v
retrieving revision 1.5
diff -c -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.5 vr.h
*** config/mips/vr.h	27 Sep 2003 04:48:26 -0000	1.5
--- config/mips/vr.h	24 Mar 2004 13:36:24 -0000
*************** You should have received a copy of the G
*** 19,31 ****
  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 MULTILIB_DEFAULTS \
! 	{ MULTILIB_ENDIAN_DEFAULT, MULTILIB_ABI_DEFAULT, "march=vr4100" }
  
- /* 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}"
--- 19,48 ----
  along with GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  
! #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=" DEFAULT_VR_ARCH }
  
  #define DRIVER_SELF_SPECS \
! 	/* 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 "}"
Index: config/mips/t-vr
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/t-vr,v
retrieving revision 1.3
diff -c -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.3 t-vr
*** config/mips/t-vr	24 Mar 2004 13:05:38 -0000	1.3
--- config/mips/t-vr	24 Mar 2004 13:36:24 -0000
*************** $(T)crtn.o: $(srcdir)/config/mips/crtn.a
*** 22,48 ****
  
  # END boiler-plate
  
  # Endianness: EB or EL
  #
  # ABIs: mabi=32
  #	mabi=o64
  #	mabi=eabi
! #	meabi=eabi/mlong32
  #	mabi=eabi/mgp32
  #	mabi=eabi/mgp32/mlong64
  #
! # Architecture: march=vr5400
! #		march=vr4100
! #		march=vr4100/mips16
  #
! # Total: 2 * 6 * 3 = 36 multilibs.
  MULTILIB_OPTIONS =			\
  	EL/EB				\
  	mabi=32/mabi=o64/mabi=eabi	\
  	mgp32				\
  	mlong64				\
  	mips16				\
! 	march=vr5400/march=vr4100
  
  MULTILIB_DIRNAMES =	\
  	el eb		\
--- 22,80 ----
  
  # END boiler-plate
  
+ # Main multilibs
+ # --------------
+ #
  # Endianness: EB or EL
  #
  # ABIs: mabi=32
  #	mabi=o64
  #	mabi=eabi
! #	mabi=eabi/mlong32
  #	mabi=eabi/mgp32
  #	mabi=eabi/mgp32/mlong64
  #
! # 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.
  #
! #
! # 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				\
! 	mfix-vr4122-bugs/march=vr4130/march=vr4300/march=vr5000/march=vr5400/march=vr5500
  
  MULTILIB_DIRNAMES =	\
  	el eb		\
*************** MULTILIB_DIRNAMES =	\
*** 50,68 ****
  	gp32		\
  	long64		\
  	mips16		\
! 	vr5400 vr4100
  
! MULTILIB_MATCHES = EL=mel EB=meb
  
! # 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.
  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*
--- 82,111 ----
  	gp32		\
  	long64		\
  	mips16		\
! 	vr4120 vr4130 vr4300 vr5000 vr5400 vr5500
  
! MULTILIB_MATCHES = EL=mel EB=meb mfix-vr4122-bugs=march?vr4120
  
! # 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*			\
! 	*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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]