OSDN Git Service

gcc/
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Jan 2007 18:45:46 +0000 (18:45 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Jan 2007 18:45:46 +0000 (18:45 +0000)
200x-xx-xx  Julian Brown  <julian@codesourcery.com>
    Richard Sandiford  <richard@codesourcery.com>

* config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
* config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
before redefining.
* config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
80 unconditionally.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120910 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/m68k/m68k.h
gcc/config/m68k/netbsd-elf.h
gcc/config/m68k/uclinux-oldabi.h

index 286f5f2..83c6035 100644 (file)
@@ -1,3 +1,14 @@
+2007-01-18  Julian Brown  <julian@codesourcery.com>
+           Richard Sandiford  <richard@codesourcery.com>
+
+       * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
+       * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
+       before redefining.
+       * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
+       80 unconditionally.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
+
 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
 
        * doc/install.texi: Document m68k-uclinuxoldabi.
index 17105b5..772943a 100644 (file)
@@ -259,7 +259,17 @@ Boston, MA 02110-1301, USA.  */
 \f
 /* target machine storage layout */
 
-#define LONG_DOUBLE_TYPE_SIZE 80
+/* "long double" is the same as "double" on ColdFire targets.  */
+
+#define LONG_DOUBLE_TYPE_SIZE (TARGET_COLDFIRE ? 64 : 80)
+
+/* We need to know the size of long double at compile-time in libgcc2.  */
+
+#ifdef __mcoldfire__
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
+#else
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 80
+#endif
 
 /* Set the value of FLT_EVAL_METHOD in float.h.  When using 68040 fp
    instructions, we get proper intermediate rounding, otherwise we
index c8dd1b9..e37bea0 100644 (file)
@@ -40,6 +40,7 @@ Boston, MA 02110-1301, USA.  */
 #undef LONG_DOUBLE_TYPE_SIZE
 #define LONG_DOUBLE_TYPE_SIZE (TARGET_68020 ? 80 : 64)
 
+#undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
 #ifdef __mc68010__
 #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
 #else
index 82124f9..6e47460 100644 (file)
@@ -22,6 +22,12 @@ the Free Software Foundation, 51 Franklin Street, Fifth Floor,
 Boston, MA 02110-1301, USA.  */
 
 
+/* The old uClinux ABI used 80-byte "long double"s for ColdFire too.  */
+#undef LONG_DOUBLE_TYPE_SIZE
+#define LONG_DOUBLE_TYPE_SIZE 80
+#undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 80
+
 /* Undo the definition of STARTFILE_SPEC from m68kelf.h so we'll
    pick the default from gcc.c (just link crt0.o from multilib dir).  */
 #undef STARTFILE_SPEC