190075SobrienLIB1ASMSRC = arm/lib1funcs.asm
2132718SkanLIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \
3132718Skan	_call_via_rX _interwork_call_via_rX \
4169689Skan	_lshrdi3 _ashrdi3 _ashldi3 \
5132718Skan	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
6132718Skan	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
7169689Skan	_fixsfsi _fixunssfsi _floatdidf _floatdisf _floatundidf _floatundisf
890075Sobrien
990075SobrienMULTILIB_OPTIONS     = marm/mthumb
1090075SobrienMULTILIB_DIRNAMES    = arm thumb
1190075SobrienMULTILIB_EXCEPTIONS  = 
12132718SkanMULTILIB_MATCHES     =
13132718Skan
14132718Skan# MULTILIB_OPTIONS    += mcpu=ep9312
15132718Skan# MULTILIB_DIRNAMES   += ep9312
16132718Skan# MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312*
17169689Skan# 	
18117395Skan# MULTILIB_OPTIONS     += mlittle-endian/mbig-endian
19117395Skan# MULTILIB_DIRNAMES    += le be
20132718Skan# MULTILIB_MATCHES     += mbig-endian=mbe mlittle-endian=mle
2190075Sobrien# 
2290075Sobrien# MULTILIB_OPTIONS    += mhard-float/msoft-float
2390075Sobrien# MULTILIB_DIRNAMES   += fpu soft
24117395Skan# MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
2590075Sobrien# 
2690075Sobrien# MULTILIB_OPTIONS    += mno-thumb-interwork/mthumb-interwork
2790075Sobrien# MULTILIB_DIRNAMES   += normal interwork
2890075Sobrien# 
2990075Sobrien# MULTILIB_OPTIONS    += fno-leading-underscore/fleading-underscore
3090075Sobrien# MULTILIB_DIRNAMES   += elf under
3190075Sobrien# 
3290075Sobrien# MULTILIB_OPTIONS    += mcpu=arm7
3390075Sobrien# MULTILIB_DIRNAMES   += nofmult
3490075Sobrien# MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=arm7*
3590075Sobrien# # Note: the multilib_exceptions matches both -mthumb and
3690075Sobrien# # -mthumb-interwork
3790075Sobrien# #
3890075Sobrien# # We have to match all the arm cpu variants which do not have the
3990075Sobrien# # multiply instruction and treat them as if the user had specified
4090075Sobrien# # -mcpu=arm7.  Note that in the following the ? is interpreted as
4190075Sobrien# # an = for the purposes of matching command line options.
4290075Sobrien# # FIXME: There ought to be a better way to do this.
4390075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm7d
4490075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm7di
4590075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm70
4690075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm700
4790075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm700i
4890075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm710
4990075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm710c
5090075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm7100
5190075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm7500
5290075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm7500fe
5390075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm6
5490075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm60
5590075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm600
5690075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm610
5790075Sobrien# MULTILIB_MATCHES    += mcpu?arm7=mcpu?arm620
5890075Sobrien
5990075SobrienEXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
6090075Sobrien
6190075Sobrien# If EXTRA_MULTILIB_PARTS is not defined above then define EXTRA_PARTS here
6290075Sobrien# EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o
6390075Sobrien
6490075SobrienLIBGCC = stmp-multilib
6590075SobrienINSTALL_LIBGCC = install-multilib
6690075Sobrien
6790075Sobrien# Currently there is a bug somewhere in GCC's alias analysis
6890075Sobrien# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
6990075Sobrien# Disabling function inlining is a workaround for this problem.
70169689SkanTARGET_LIBGCC2_CFLAGS = -fno-inline
7190075Sobrien
7290075Sobrien# Assemble startup files.
7390075Sobrien$(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES)
7490075Sobrien	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
7590075Sobrien	-c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/arm/crti.asm
7690075Sobrien
7790075Sobrien$(T)crtn.o: $(srcdir)/config/arm/crtn.asm $(GCC_PASSES)
7890075Sobrien	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
7990075Sobrien	-c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/arm/crtn.asm
80132718Skan
81