From fc6aa0a98a0c7d10d39dd9d1485d0996b84b1860 Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Fri, 6 Jul 2001 14:41:52 +0000 Subject: [PATCH] Makefile.in (LIB2_DIVMOD_FUNCS): New. 2001-07-05 Andrew Haley * Makefile.in (LIB2_DIVMOD_FUNCS): New. (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS. * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS. From-SVN: r43809 --- gcc/ChangeLog | 6 ++++++ gcc/Makefile.in | 19 +++++++++++-------- gcc/mklibgcc.in | 14 ++++++++++++++ 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d08abdf0364..c134b5b6bda 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-07-05 Andrew Haley + + * Makefile.in (LIB2_DIVMOD_FUNCS): New. + (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS. + * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS. + 2001-07-02 Jason Merrill * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 4131fc3fa2b..b6689c64115 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -780,16 +780,14 @@ STAGESTUFF = *$(objext) insn-flags.h insn-config.h insn-codes.h \ $(LANG_STAGESTUFF) # Library members defined in libgcc2.c. -LIB2FUNCS = _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \ - _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 _clz \ - _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf \ - _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \ - _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi \ - _fixtfdi _fixunstfdi _floatditf \ +LIB2FUNCS = _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 _clz \ + _cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi \ + _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \ + _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi \ + _floatditf \ _clear_cache _trampoline __main _exit \ _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3 _subvdi3 \ - _mulvsi3 _mulvdi3 _negvsi2 _negvdi2 \ - _ctors + _mulvsi3 _mulvdi3 _negvsi2 _negvdi2 _ctors # Defined in libgcc2.c, included only in the static library. LIB2FUNCS_ST = _eprintf _bb __gcc_bcmp @@ -804,6 +802,10 @@ DPBIT_FUNCS = _pack_df _unpack_df _addsub_df _mul_df _div_df \ _lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df \ _df_to_sf _thenan_df _df_to_usi _usi_to_df +# These might cause a divide overflow trap and so are compiled with +# unwinder info. +LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4 + # # Language makefile fragments. @@ -1008,6 +1010,7 @@ libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) xgcc$(exeext LIB2ADDEHDEP='$(LIB2ADDEHDEP)' \ FPBIT='$(FPBIT)' \ FPBIT_FUNCS='$(FPBIT_FUNCS)' \ + LIB2_DIVMOD_FUNCS='$(LIB2_DIVMOD_FUNCS)' \ DPBIT='$(DPBIT)' \ DPBIT_FUNCS='$(DPBIT_FUNCS)' \ MULTILIBS=`$(GCC_FOR_TARGET) --print-multi-lib` \ diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in index 512529d9e9c..151dd497753 100644 --- a/gcc/mklibgcc.in +++ b/gcc/mklibgcc.in @@ -17,6 +17,7 @@ # LIB2ADDEHDEP # FPBIT # FPBIT_FUNCS +# LIB2_DIVMOD_FUNCS # DPBIT # DPBIT_FUNCS # LIBGCC @@ -120,6 +121,19 @@ for name in $LIB2FUNCS_ST; do libgcc2_st_objs="$libgcc2_st_objs ${name}${objext}" done +for name in $LIB2_DIVMOD_FUNCS; do + for ml in $MULTILIBS; do + dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` + flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; + out="libgcc/${dir}/${name}${objext}" + + echo $out: $libgcc2_c_dep + echo " $gcc_compile" '$(MAYBE_USE_COLLECT2)' $flags -DL$name \ + -c '$(srcdir)/libgcc2.c' -fexceptions -fnon-call-exceptions -o $out + done + libgcc2_objs="$libgcc2_objs ${name}${objext}" +done + if [ "$FPBIT" ]; then for name in $FPBIT_FUNCS; do for ml in $MULTILIBS; do