xref: /netbsd-src/external/gpl3/gcc/dist/libgcc/config/avr/t-avrlibc (revision fb8a8121f28072308659629b86cfb7c449bd93e1)
148fb7bfaSmrg# This file is used if not configured --with-avrlibc=no
248fb7bfaSmrg#
348fb7bfaSmrg# AVR-Libc comes with hand-optimized float routines.
448fb7bfaSmrg# For historical reasons, these routines live in AVR-Libc
548fb7bfaSmrg# and not in libgcc and use the same function names like libgcc.
648fb7bfaSmrg# To get the best support, i.e. always use the routines from
748fb7bfaSmrg# AVR-Libc, we remove these routines from libgcc.
848fb7bfaSmrg#
948fb7bfaSmrg# See also PR54461.
1048fb7bfaSmrg#
1148fb7bfaSmrg#
1248fb7bfaSmrg# Arithmetic:
1348fb7bfaSmrg#     __addsf3 __subsf3 __divsf3 __mulsf3 __negsf2
1448fb7bfaSmrg#
1548fb7bfaSmrg# Comparison:
1648fb7bfaSmrg#     __cmpsf2 __unordsf2
1748fb7bfaSmrg#     __eqsf2 __lesf2 __ltsf2 __nesf2 __gesf2 __gtsf2
1848fb7bfaSmrg#
1948fb7bfaSmrg# Conversion:
2048fb7bfaSmrg#     __fixsfdi __fixunssfdi __floatdisf __floatundisf
2148fb7bfaSmrg#     __fixsfsi __fixunssfsi __floatsisf __floatunsisf
2248fb7bfaSmrg#
2348fb7bfaSmrg#
2448fb7bfaSmrg# These functions are contained in modules:
2548fb7bfaSmrg#
2648fb7bfaSmrg# _addsub_sf.o:   __addsf3  __subsf3
2748fb7bfaSmrg# _mul_sf.o:      __mulsf3
2848fb7bfaSmrg# _div_sf.o:      __divsf3
2948fb7bfaSmrg# _negate_sf.o:   __negsf2
3048fb7bfaSmrg#
3148fb7bfaSmrg# _compare_sf.o:  __cmpsf2
3248fb7bfaSmrg# _unord_sf.o:    __unordsf2
3348fb7bfaSmrg# _eq_sf.o:       __eqsf2
3448fb7bfaSmrg# _ne_sf.o:       __nesf2
3548fb7bfaSmrg# _ge_sf.o:       __gesf2
3648fb7bfaSmrg# _gt_sf.o:       __gtsf2
3748fb7bfaSmrg# _le_sf.o:       __lesf2
3848fb7bfaSmrg# _lt_sf.o:       __ltsf2
3948fb7bfaSmrg#
4048fb7bfaSmrg# _fixsfdi.o:     __fixsfdi
4148fb7bfaSmrg# _fixunssfdi.o:  __fixunssfdi
4248fb7bfaSmrg# _fixunssfsi.o:  __fixunssfsi
4348fb7bfaSmrg# _floatdisf.o:   __floatdisf
4448fb7bfaSmrg# _floatundisf.o: __floatundisf
4548fb7bfaSmrg# _sf_to_si.o:    __fixsfsi
4648fb7bfaSmrg# _si_to_sf.o:    __floatsisf
4748fb7bfaSmrg# _usi_to_sf.o:   __floatunsisf
4848fb7bfaSmrg
4948fb7bfaSmrg
5048fb7bfaSmrg# SFmode
5148fb7bfaSmrgLIB2FUNCS_EXCLUDE += \
5248fb7bfaSmrg	_addsub_sf \
5348fb7bfaSmrg	_negate_sf \
5448fb7bfaSmrg	_mul_sf _div_sf \
5548fb7bfaSmrg	\
5648fb7bfaSmrg	_compare_sf \
5748fb7bfaSmrg	_unord_sf \
5848fb7bfaSmrg	_eq_sf _ne_sf \
5948fb7bfaSmrg	_gt_sf _ge_sf \
6048fb7bfaSmrg	_lt_sf _le_sf \
6148fb7bfaSmrg	\
6248fb7bfaSmrg	_si_to_sf  _sf_to_si \
6348fb7bfaSmrg	_usi_to_sf _sf_to_usi \
6448fb7bfaSmrg	_fixunssfsi _fixsfdi \
6548fb7bfaSmrg	_fixunssfdi \
6648fb7bfaSmrg	_floatdisf _floatundisf
67*fb8a8121Smrg
68*fb8a8121Smrgifeq (,$(WITH_LIBF7_MATH_SYMBOLS))
69*fb8a8121Smrg
70*fb8a8121Smrg# No modules depend on __SIZEOF_LONG_DOUBLE__ or __SIZEOF_DOUBLE__
71*fb8a8121Smrg# which means we might have an opportunity to copy libgcc.a.
72*fb8a8121Smrg# WITH_LIBF7_MATH_SYMBOLS is set by libf7/t-libf7-math-symbols.
73*fb8a8121Smrg
74*fb8a8121Smrgifneq (,$(findstring avr,$(MULTISUBDIR)))
75*fb8a8121Smrg
76*fb8a8121Smrg# We are not in the avr2 (default) subdir, hence copying will work.
77*fb8a8121Smrg# In default dir, copying won'twork because the default multilib is
78*fb8a8121Smrg# built after all the others.
79*fb8a8121Smrg
80*fb8a8121Smrgifneq (,$(findstring double,$(MULTISUBDIR)))
81*fb8a8121Smrg
82*fb8a8121Smrg# We are in double{32|64}/libgcc or long-double{32|64}/libgcc:
83*fb8a8121Smrg# Just copy from the [long ]double=float multilib; we would remove any DFmode
84*fb8a8121Smrg# bits from this multilib variant, anyway, because the current assumption
85*fb8a8121Smrg# is that avr-libc hosts *all* the IEEE-double stuff.
86*fb8a8121Smrg
87*fb8a8121SmrgLIB2FUNCS_EXCLUDE := %
88*fb8a8121SmrgLIB1ASMFUNCS :=
89*fb8a8121Smrglibgcc-objects :=
90*fb8a8121Smrglibgcov-objects :=
91*fb8a8121Smrgobjects :=
92*fb8a8121Smrg
93*fb8a8121Smrgt-copy-libgcc.dep: $(srcdir)/config/avr/t-copy-libgcc
94*fb8a8121Smrg	-rm -f libgcc.a
95*fb8a8121Smrg	-rm -f libgcov.a
96*fb8a8121Smrg	cp $< $@
97*fb8a8121Smrg
98*fb8a8121Smrglibgcc.a libgcov.a libgcc_tm.h: t-copy-libgcc.dep
99*fb8a8121Smrg
100*fb8a8121SmrgMakefile: t-copy-libgcc.dep
101*fb8a8121Smrg
102*fb8a8121Smrgendif
103*fb8a8121Smrgendif
104*fb8a8121Smrgendif
105