1 # Don't let CTOR_LIST end up in sdata section.
2 # FIXME: This is the default.
5 # We exclude those because the libgcc2.c default versions do not support
6 # the SPU single-precision format (round towards zero). We provide our
7 # own versions below and/or via direct expansion.
8 LIB2FUNCS_EXCLUDE = _floatdisf _floatundisf _floattisf _floatunstisf
10 LIB2ADD_ST = $(srcdir)/config/spu/float_unssidf.c \
11 $(srcdir)/config/spu/float_unsdidf.c \
12 $(srcdir)/config/spu/float_unsdisf.c \
13 $(srcdir)/config/spu/float_disf.c \
14 $(srcdir)/config/spu/mfc_tag_table.c \
15 $(srcdir)/config/spu/mfc_tag_reserve.c \
16 $(srcdir)/config/spu/mfc_tag_release.c \
17 $(srcdir)/config/spu/mfc_multi_tag_reserve.c \
18 $(srcdir)/config/spu/mfc_multi_tag_release.c \
19 $(srcdir)/config/spu/multi3.c \
20 $(srcdir)/config/spu/divmodti4.c \
21 $(srcdir)/config/spu/divv2df3.c
23 # Build TImode conversion routines to support Fortran 128-bit
25 LIB2_SIDITI_CONV_FUNCS = yes
27 HOST_LIBGCC2_CFLAGS += -mwarn-reloc -D__IN_LIBGCC2
29 # Neither gcc or newlib seem to have a standard way to generate multiple
30 # crt*.o files. So we don't use the standard crt0.o name anymore.
32 cachemgr.o: $(srcdir)/config/spu/cachemgr.c
35 # Specialised rule to add a -D flag.
36 cachemgr_nonatomic.o: $(srcdir)/config/spu/cachemgr.c
37 $(gcc_compile) -DNONATOMIC -c $<
40 $(AR_FOR_TARGET) -rcs $@ $<
42 cache8k.o: $(srcdir)/config/spu/cache.S
43 $(gcc_compile) -D__CACHE_SIZE__=8 -c $<
45 cache16k.o: $(srcdir)/config/spu/cache.S
46 $(gcc_compile) -D__CACHE_SIZE__=16 -c $<
48 cache32k.o: $(srcdir)/config/spu/cache.S
49 $(gcc_compile) -D__CACHE_SIZE__=32 -c $<
51 cache64k.o: $(srcdir)/config/spu/cache.S
52 $(gcc_compile) -D__CACHE_SIZE__=64 -c $<
54 cache128k.o: $(srcdir)/config/spu/cache.S
55 $(gcc_compile) -D__CACHE_SIZE__=128 -c $<
57 # We provide our own version of __divdf3 that performs better and has
58 # better support for non-default rounding modes.
59 DPBIT_FUNCS := $(filter-out _div_df, $(DPBIT_FUNCS))