diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 929686b7903..5a23a4aab6d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2007-01-18 Nathan Sidwell + + * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*) + (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib + to $tmake_file. + * config/m68k/t-floatlib: New file, extracting common code from... + * config/m68k/t-m68kbare, config/m68k/t-m68kelf, + * config/m68k/t-uclinux: Here. + * config/m68k/fpgnulib.c: Do not compile extendeed precision + routines on ColdFire targets. + 2007-01-18 Nathan Sidwell * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*) diff --git a/gcc/config.gcc b/gcc/config.gcc index 7a911fffe38..b55f3b510b5 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1479,12 +1479,12 @@ m68hc12-*-*|m6812-*-*) ;; m68k-*-aout*) default_m68k_cpu=68020 - tmake_file=m68k/t-m68kbare + tmake_file="m68k/t-floatlib m68k/t-m68kbare" tm_file="${tm_file} m68k/m68k-none.h m68k/m68kemb.h m68k/m68k-aout.h libgloss.h" ;; m68k-*-coff*) default_m68k_cpu=68020 - tmake_file=m68k/t-m68kbare + tmake_file="m68k/t-floatlib m68k/t-m68kbare" tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" tm_file="${tm_file} m68k/m68k-none.h m68k/m68kemb.h dbxcoff.h m68k/coff.h dbx.h" use_fixproto=yes @@ -1493,7 +1493,7 @@ m68020-*-elf* | m68k-*-elf*) default_m68k_cpu=68020 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h" tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" - tmake_file=m68k/t-m68kelf + tmake_file="m68k/t-floatlib m68k/t-m68kelf" extra_parts="crtbegin.o crtend.o" ;; m68010-*-netbsdelf* | m68k*-*-netbsdelf*) @@ -1516,7 +1516,7 @@ m68k-*-uclinuxoldabi*) # Motorola m68k/ColdFire running uClinux default_m68k_cpu=68020 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/uclinux-oldabi.h" tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" - tmake_file=m68k/t-uclinux + tmake_file="m68k/t-floatlib m68k/t-uclinux" use_fixproto=no ;; m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux @@ -1526,7 +1526,7 @@ m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h flat.h m68k/linux.h m68k/uclinux.h" tm_defines="${tm_defines} MOTOROLA=1 USE_GAS UCLIBC_DEFAULT=1" extra_options="${extra_options} linux.opt" - tmake_file=m68k/t-uclinux + tmake_file="m68k/t-floatlib m68k/t-uclinux" use_fixproto=no ;; m68k-*-linux*) # Motorola m68k's running GNU/Linux @@ -1544,7 +1544,7 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux ;; m68k-*-rtems*) default_m68k_cpu=68020 - tmake_file="m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems" + tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems" tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h" tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" extra_parts="crtbegin.o crtend.o" diff --git a/gcc/config/m68k/fpgnulib.c b/gcc/config/m68k/fpgnulib.c index 1ef43c758f0..cbff9184abf 100644 --- a/gcc/config/m68k/fpgnulib.c +++ b/gcc/config/m68k/fpgnulib.c @@ -361,6 +361,10 @@ __fixsfsi (float a1) #else /* EXTFLOAT */ +/* We do not need these routines for coldfire, as it has no extended + float format. */ +#if !defined (__mcoldfire__) + /* Primitive extended precision floating point support. We assume all numbers are normalized, don't do any rounding, etc. */ @@ -569,4 +573,5 @@ __gexf2 (long double x1, long double x2) return __cmpdf2 ((double) x1, (double) x2); } +#endif /* !__mcoldfire__ */ #endif /* EXTFLOAT */ diff --git a/gcc/config/m68k/t-floatlib b/gcc/config/m68k/t-floatlib new file mode 100644 index 00000000000..91703be86c1 --- /dev/null +++ b/gcc/config/m68k/t-floatlib @@ -0,0 +1,13 @@ +LIB1ASMSRC = m68k/lb1sf68.asm +LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ + _double _float _floatex \ + _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ + _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 + +LIB2FUNCS_EXTRA = fpgnulib.c xfgnulib.c + +fpgnulib.c: $(srcdir)/config/m68k/fpgnulib.c + cp $(srcdir)/config/m68k/fpgnulib.c fpgnulib.c +xfgnulib.c: $(srcdir)/config/m68k/fpgnulib.c + echo '#define EXTFLOAT' > xfgnulib.c + cat $(srcdir)/config/m68k/fpgnulib.c >> xfgnulib.c diff --git a/gcc/config/m68k/t-m68kbare b/gcc/config/m68k/t-m68kbare index 8bb4b948c35..7a93d620e3f 100644 --- a/gcc/config/m68k/t-m68kbare +++ b/gcc/config/m68k/t-m68kbare @@ -1,17 +1,3 @@ -LIB1ASMSRC = m68k/lb1sf68.asm -LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ - _double _float _floatex \ - _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ - _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 - -LIB2FUNCS_EXTRA = fpgnulib.c xfgnulib.c - -fpgnulib.c: $(srcdir)/config/m68k/fpgnulib.c - cp $(srcdir)/config/m68k/fpgnulib.c fpgnulib.c -xfgnulib.c: $(srcdir)/config/m68k/fpgnulib.c - echo '#define EXTFLOAT' > xfgnulib.c - cat $(srcdir)/config/m68k/fpgnulib.c >> xfgnulib.c - MULTILIB_OPTIONS = m68000/m68020/m5200/mcpu32/m68040/m68060 m68881/msoft-float MULTILIB_DIRNAMES = MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 mcpu32=m68332 m68020=mc68020 diff --git a/gcc/config/m68k/t-m68kelf b/gcc/config/m68k/t-m68kelf index ecf738f4919..a88d323ae71 100644 --- a/gcc/config/m68k/t-m68kelf +++ b/gcc/config/m68k/t-m68kelf @@ -1,17 +1,3 @@ -LIB1ASMSRC = m68k/lb1sf68.asm -LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ - _double _float _floatex \ - _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ - _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 - -LIB2FUNCS_EXTRA = fpgnulib.c xfgnulib.c - -fpgnulib.c: $(srcdir)/config/m68k/fpgnulib.c - cp $(srcdir)/config/m68k/fpgnulib.c fpgnulib.c -xfgnulib.c: $(srcdir)/config/m68k/fpgnulib.c - echo '#define EXTFLOAT' > xfgnulib.c - cat $(srcdir)/config/m68k/fpgnulib.c >> xfgnulib.c - MULTILIB_OPTIONS = m68000/m68020/m5200/m5206e/m528x/m5307/m5407/mcfv4e/mcpu32/m68040/m68060 m68881/msoft-float MULTILIB_DIRNAMES = MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 mcpu32=m68332 m68020=mc68020 m5206e=m5272 diff --git a/gcc/config/m68k/t-uclinux b/gcc/config/m68k/t-uclinux index 49080429f98..bebae9c8188 100644 --- a/gcc/config/m68k/t-uclinux +++ b/gcc/config/m68k/t-uclinux @@ -1,20 +1,6 @@ # crti and crtn are provided by uClibc. EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o -LIB1ASMSRC = m68k/lb1sf68.asm -LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ - _double _float _floatex \ - _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ - _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 - -LIB2FUNCS_EXTRA = fpgnulib.c xfgnulib.c - -fpgnulib.c: $(srcdir)/config/m68k/fpgnulib.c - cp $(srcdir)/config/m68k/fpgnulib.c fpgnulib.c -xfgnulib.c: $(srcdir)/config/m68k/fpgnulib.c - echo '#define EXTFLOAT' > xfgnulib.c - cat $(srcdir)/config/m68k/fpgnulib.c >> xfgnulib.c - MULTILIB_OPTIONS = m68000/m5200/m5206e/m528x/m5307/m5407/mcpu32 msep-data/mid-shared-library MULTILIB_DIRNAMES = MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 mcpu32=m68332 m5206e=m5272