aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/mips/mips.c5
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e08571e..187375d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
+2003-10-04 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.c (mips_pad_arg_upward): Pad floating-point
+ arguments downward for big-endian o64.
+
2003-10-03 Robert Bowdidge <bowdidge@apple.com>
- * ggc-page.c: (ggc_pch_write_object) replace fseek() with fwrite() in
+
+ * ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in
PCH generation, avoiding too-frequent flushes when writing to NFS
file system.
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 6f49f6f..ae27af1 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -3833,6 +3833,11 @@ mips_pad_arg_upward (enum machine_mode mode, tree type)
: GET_MODE_CLASS (mode) == MODE_INT)
return false;
+ /* Big-endian o64 pads floating-point arguments downward. */
+ if (mips_abi == ABI_O64)
+ if (type != 0 ? FLOAT_TYPE_P (type) : GET_MODE_CLASS (mode) == MODE_FLOAT)
+ return false;
+
/* Other types are padded upward for o32, o64, n32 and n64. */
if (mips_abi != ABI_EABI)
return true;