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