aboutsummaryrefslogtreecommitdiff
path: root/libgcc/config/avr/t-avrlibc
blob: 2424d66356516e463aed2543abfdc5bc3250edd2 (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
# This file is used if not configured --with-avrlibc=no
#
# AVR-Libc comes with hand-optimized float routines.
# For historical reasons, these routines live in AVR-Libc
# and not in libgcc and use the same function names like libgcc.
# To get the best support, i.e. always use the routines from
# AVR-Libc, we remove these routines from libgcc.
#
# See also PR54461.
#
#
# Arithmetic:
#     __addsf3 __subsf3 __divsf3 __mulsf3 __negsf2
#
# Comparison:
#     __cmpsf2 __unordsf2
#     __eqsf2 __lesf2 __ltsf2 __nesf2 __gesf2 __gtsf2
#
# Conversion:
#     __fixsfdi __fixunssfdi __floatdisf __floatundisf
#     __fixsfsi __fixunssfsi __floatsisf __floatunsisf
#
#
# These functions are contained in modules:
#
# _addsub_sf.o:   __addsf3  __subsf3
# _mul_sf.o:      __mulsf3
# _div_sf.o:      __divsf3
# _negate_sf.o:   __negsf2
#
# _compare_sf.o:  __cmpsf2
# _unord_sf.o:    __unordsf2
# _eq_sf.o:       __eqsf2
# _ne_sf.o:       __nesf2
# _ge_sf.o:       __gesf2
# _gt_sf.o:       __gtsf2
# _le_sf.o:       __lesf2
# _lt_sf.o:       __ltsf2
#
# _fixsfdi.o:     __fixsfdi
# _fixunssfdi.o:  __fixunssfdi
# _fixunssfsi.o:  __fixunssfsi
# _floatdisf.o:   __floatdisf
# _floatundisf.o: __floatundisf
# _sf_to_si.o:    __fixsfsi
# _si_to_sf.o:    __floatsisf
# _usi_to_sf.o:   __floatunsisf


# SFmode
LIB2FUNCS_EXCLUDE += \
	_addsub_sf \
	_negate_sf \
	_mul_sf _div_sf \
	\
	_compare_sf \
	_unord_sf \
	_eq_sf _ne_sf \
	_gt_sf _ge_sf \
	_lt_sf _le_sf \
	\
	_si_to_sf  _sf_to_si \
	_usi_to_sf _sf_to_usi \
	_fixunssfsi _fixsfdi \
	_fixunssfdi \
	_floatdisf _floatundisf

ifneq (,$(findstring avr,$(MULTISUBDIR)))

# We are not in the avr2 (default) subdir, hence copying will work.
# In default dir, copying won'twork because the default multilib is
# built after all the others.

ifneq (,$(findstring double64,$(MULTISUBDIR)))

# We are in double64/libgcc or long-double64/libgcc:
# Just copy from the [long ]double=float multilib; we would remove any DFmode
# bits from this multilib variant, anyway, because the current assumption
# is that avr-libc hosts *all* the IEEE-double stuff.

LIB2FUNCS_EXCLUDE := %
LIB1ASMFUNCS :=
libgcc-objects :=
libgcov-objects :=
objects :=

t-copy-libgcc.dep: $(srcdir)/config/avr/t-copy-libgcc
	-rm -f libgcc.a
	-rm -f libgcov.a
	cp $< $@

libgcc.a libgcov.a libgcc_tm.h: t-copy-libgcc.dep

Makefile: t-copy-libgcc.dep

endif
endif