aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/gcc/config/mips/t-vr
blob: 9c046b0eb04bb130188a6e079db01e664452a0a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# BEGIN boiler-plate MIPS stuff

# Don't let CTOR_LIST end up in sdata section.
CRTSTUFF_T_CFLAGS = -G 0

# We must build libgcc2.a with -G 0, in case the user wants to link
# without the $gp register.
TARGET_LIBGCC2_CFLAGS = -G 0

LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/mips/mips16.S \
			 $(srcdir)/config/mips/vr4120-div.S
EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o

# Assemble startup files.
$(T)crti.o: $(srcdir)/config/mips/crti.asm $(GCC_PASSES)
	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
	-c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/mips/crti.asm

$(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
	-c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/mips/crtn.asm

# 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-vr4120
#		march=vr4130 with -mfix-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-vr4120
#		march=vr4130 with -mfix-vr4130 (default)
#
# Total: 2 * 3 * 2 = 12 multilibs.
MULTILIB_OPTIONS =			\
	EL/EB				\
	mabi=32/mabi=o64/mabi=eabi	\
	mgp32				\
	mlong64				\
	mips16				\
	mfix-vr4120/mfix-vr4130/march=vr4300/march=vr5000/march=vr5400/march=vr5500

MULTILIB_DIRNAMES =	\
	el eb		\
	o32 o64 eabi	\
	gp32		\
	long64		\
	mips16		\
	vr4120 vr4130 vr4300 vr5000 vr5400 vr5500

MULTILIB_MATCHES = EL=mel EB=meb mfix-vr4120=march?vr4120 \
		   mfix-vr4130=march?vr4130

# 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