aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJulian Brown <julian@codesourcery.com>2007-01-18 18:45:46 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2007-01-18 18:45:46 +0000
commit5189ab949ec36792eea8d11f4f64f611f5855522 (patch)
tree684199b84d588a0a2d652904a8976192593bd0f1 /gcc
parent4529dbf15fa88a1c2a5a51be43bd74c84bf8ca96 (diff)
downloadgcc-5189ab949ec36792eea8d11f4f64f611f5855522.zip
gcc-5189ab949ec36792eea8d11f4f64f611f5855522.tar.gz
gcc-5189ab949ec36792eea8d11f4f64f611f5855522.tar.bz2
200x-xx-xx Julian Brown <julian@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/ 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. Co-Authored-By: Richard Sandiford <richard@codesourcery.com> From-SVN: r120910
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/config/m68k/m68k.h12
-rw-r--r--gcc/config/m68k/netbsd-elf.h1
-rw-r--r--gcc/config/m68k/uclinux-oldabi.h6
4 files changed, 29 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 286f5f2..83c6035 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index 17105b5..772943a 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -259,7 +259,17 @@ Boston, MA 02110-1301, USA. */
/* 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
diff --git a/gcc/config/m68k/netbsd-elf.h b/gcc/config/m68k/netbsd-elf.h
index c8dd1b9..e37bea0 100644
--- a/gcc/config/m68k/netbsd-elf.h
+++ b/gcc/config/m68k/netbsd-elf.h
@@ -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
diff --git a/gcc/config/m68k/uclinux-oldabi.h b/gcc/config/m68k/uclinux-oldabi.h
index 82124f9..6e47460 100644
--- a/gcc/config/m68k/uclinux-oldabi.h
+++ b/gcc/config/m68k/uclinux-oldabi.h
@@ -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