1169689Skan# BEGIN boiler-plate MIPS stuff
2169689Skan
3169689Skan# Don't let CTOR_LIST end up in sdata section.
4169689SkanCRTSTUFF_T_CFLAGS = -G 0
5169689Skan
6169689Skan# We must build libgcc2.a with -G 0, in case the user wants to link
7169689Skan# without the $gp register.
8169689SkanTARGET_LIBGCC2_CFLAGS = -G 0
9169689Skan
10169689SkanLIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/mips/mips16.S \
11169689Skan			 $(srcdir)/config/mips/vr4120-div.S
12169689SkanEXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
13169689Skan
14169689Skan# Assemble startup files.
15169689Skan$(T)crti.o: $(srcdir)/config/mips/crti.asm $(GCC_PASSES)
16169689Skan	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
17169689Skan	-c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/mips/crti.asm
18169689Skan
19169689Skan$(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
20169689Skan	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
21169689Skan	-c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/mips/crtn.asm
22169689Skan
23169689Skan# END boiler-plate
24169689Skan
25169689Skan# Main multilibs
26169689Skan# --------------
27169689Skan#
28169689Skan# Endianness: EB or EL
29169689Skan#
30169689Skan# ABIs: mabi=32
31169689Skan#	mabi=o64
32169689Skan#	mabi=eabi
33169689Skan#	mabi=eabi/mlong32
34169689Skan#	mabi=eabi/mgp32
35169689Skan#	mabi=eabi/mgp32/mlong64
36169689Skan#
37169689Skan# Architecture: march=vr4120 with -mfix-vr4120
38169689Skan#		march=vr4130 with -mfix-vr4130 (default)
39169689Skan#		march=vr5000
40169689Skan#		march=vr5400
41169689Skan#		march=vr5500
42169689Skan#
43169689Skan# Total: 2 * 6 * 5 = 60 multilibs.
44169689Skan#
45169689Skan#
46169689Skan# Extra vr4300 multilibs
47169689Skan# ----------------------
48169689Skan#
49169689Skan# Endianness: EB or EL
50169689Skan#
51169689Skan# ABI: o64
52169689Skan#
53169689Skan# Architecture: vr4300.
54169689Skan#
55169689Skan# Total: 2 * 1 * 2 = 2 multilibs.
56169689Skan#
57169689Skan#
58169689Skan# Extra MIPS16 multilibs
59169689Skan# ----------------------
60169689Skan#
61169689Skan# Endianness: EB or EL
62169689Skan#
63169689Skan# ABIs: mabi=o64
64169689Skan#	mabi=eabi/mlong32
65169689Skan#	mabi=eabi/mgp32
66169689Skan#
67169689Skan# Architecture: march=vr4120 with -mfix-vr4120
68169689Skan#		march=vr4130 with -mfix-vr4130 (default)
69169689Skan#
70169689Skan# Total: 2 * 3 * 2 = 12 multilibs.
71169689SkanMULTILIB_OPTIONS =			\
72169689Skan	EL/EB				\
73169689Skan	mabi=32/mabi=o64/mabi=eabi	\
74169689Skan	mgp32				\
75169689Skan	mlong64				\
76169689Skan	mips16				\
77169689Skan	mfix-vr4120/mfix-vr4130/march=vr4300/march=vr5000/march=vr5400/march=vr5500
78169689Skan
79169689SkanMULTILIB_DIRNAMES =	\
80169689Skan	el eb		\
81169689Skan	o32 o64 eabi	\
82169689Skan	gp32		\
83169689Skan	long64		\
84169689Skan	mips16		\
85169689Skan	vr4120 vr4130 vr4300 vr5000 vr5400 vr5500
86169689Skan
87169689SkanMULTILIB_MATCHES = EL=mel EB=meb mfix-vr4120=march?vr4120 \
88169689Skan		   mfix-vr4130=march?vr4130
89169689Skan
90169689Skan# Assume a 41xx-series is the default: we'd need a *mips16 entry if
91169689Skan# the default processor didn't support mips16.  Also assume the
92169689Skan# default ABI is EABI64 -mlong32.
93169689SkanMULTILIB_EXCEPTIONS =				\
94169689Skan	*mabi=32/mlong64*			\
95169689Skan	*mabi=32/mgp32*				\
96169689Skan	*mabi=o64/mgp32*			\
97169689Skan	*mabi=o64/mlong64*			\
98169689Skan	*mips16/march=vr5*			\
99169689Skan	*mips16/march=vr4300			\
100169689Skan	$(MIPS16_EXCEPTIONS)			\
101169689Skan	$(VR4300_EXCEPTIONS)
102169689Skan
103169689SkanMIPS16_EXCEPTIONS =				\
104169689Skan	*mabi=32*mips16*			\
105169689Skan	*mlong64*mips16*
106169689Skan
107169689SkanVR4300_EXCEPTIONS =				\
108169689Skan	*mabi=32*march=vr4300			\
109169689Skan	*mgp32*march=vr4300			\
110169689Skan	*mlong64*march=vr4300			\
111169689Skan	march=vr4300				\
112169689Skan	E[LB]/march=vr4300
113