t-xscale-elf revision 132718
174462SalfredLIB1ASMSRC = arm/lib1funcs.asm
274462SalfredLIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX
374462Salfred
474462Salfred# We want fine grained libraries, so use the new code to build the
574462Salfred# floating point emulation libraries.
674462SalfredFPBIT = fp-bit.c
774462SalfredDPBIT = dp-bit.c
874462Salfred
974462Salfredfp-bit.c: $(srcdir)/config/fp-bit.c
1074462Salfred	echo '#define FLOAT' > fp-bit.c
1174462Salfred	echo '#ifndef __ARMEB__' >> fp-bit.c
1274462Salfred	echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
1374462Salfred	echo '#endif' >> fp-bit.c
1474462Salfred	cat $(srcdir)/config/fp-bit.c >> fp-bit.c
1574462Salfred
1674462Salfreddp-bit.c: $(srcdir)/config/fp-bit.c
1774462Salfred	echo '#ifndef __ARMEB__' > dp-bit.c
1874462Salfred	echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c
1974462Salfred	echo '#define FLOAT_WORD_ORDER_MISMATCH' >> dp-bit.c
2074462Salfred	echo '#endif' >> dp-bit.c
2174462Salfred	cat $(srcdir)/config/fp-bit.c >> dp-bit.c
2274462Salfred
2374462SalfredMULTILIB_OPTIONS     = mlittle-endian/mbig-endian
2474462SalfredMULTILIB_DIRNAMES    = le be
2574462SalfredMULTILIB_EXCEPTIONS  = 
2674462SalfredMULTILIB_MATCHES     = mbig-endian=mbe mlittle-endian=mle
2774462Salfred
2874462Salfred# Note XScale does not support 26 bit APCS.
2974462Salfred# Note XScale does not support hard FP
3074462Salfred
3174462SalfredMULTILIB_OPTIONS    += mno-thumb-interwork/mthumb-interwork
3274462SalfredMULTILIB_DIRNAMES   += normal interwork
3374462Salfred
3474462SalfredMULTILIB_OPTIONS    += marm/mthumb
3574462SalfredMULTILIB_DIRNAMES   += arm thumb
3674462SalfredMULTILIB_EXCEPTIONS += *mhard-float/*mthumb*
3774462Salfred
3874462SalfredMULTILIB_REDUNDANT_DIRS = interwork/thumb=thumb
3974462Salfred
4074462SalfredMULTILIB_OPTIONS    += mcpu=iwmmxt
4174462SalfredMULTILIB_DIRNAMES   += iwmmxt
4274462SalfredMULTILIB_REDUNDANT_DIRS += interwork/thumb/iwmmxt=thumb
4374462Salfred
4474462SalfredEXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
4574462Salfred
4674462SalfredLIBGCC               = stmp-multilib
4774462SalfredINSTALL_LIBGCC       = install-multilib
4875094Siedowse
4974462Salfred# Currently there is a bug somewhere in GCC's alias analysis
5074462Salfred# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
5174462Salfred# Disabling function inlining is a workaround for this problem.
5274462SalfredTARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline
5374462Salfred
5474462Salfred# Assemble startup files.
5574462Salfred$(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES)
5674462Salfred	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
5774462Salfred	-c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/arm/crti.asm
5874462Salfred
5974462Salfred$(T)crtn.o: $(srcdir)/config/arm/crtn.asm $(GCC_PASSES)
6074462Salfred	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
6174462Salfred	-c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/arm/crtn.asm
6274462Salfred