aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@redhat.com>2003-08-19 06:17:00 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2003-08-19 06:17:00 +0000
commitfc4fe9e434a4a652065cff0e5380d9446debf32a (patch)
treeaf57648c62362fa1eea70ed8af56544b1f6c0118 /gcc
parent4b8174ff7aa7e610985d6eb0e54b1c1256121723 (diff)
downloadgcc-fc4fe9e434a4a652065cff0e5380d9446debf32a.zip
gcc-fc4fe9e434a4a652065cff0e5380d9446debf32a.tar.gz
gcc-fc4fe9e434a4a652065cff0e5380d9446debf32a.tar.bz2
mips.c (mips_va_arg): If EABI_FLOAT_VARARGS_P...
* config/mips/mips.c (mips_va_arg): If EABI_FLOAT_VARARGS_P, expect SFmode and DFmode arguments to be passed in FPRs, regardless of the underlying type. From-SVN: r70557
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/mips/mips.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 039df74..4e82dba 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2003-08-19 Richard Sandiford <rsandifo@redhat.com>
+ * config/mips/mips.c (mips_va_arg): If EABI_FLOAT_VARARGS_P,
+ expect SFmode and DFmode arguments to be passed in FPRs,
+ regardless of the underlying type.
+
+2003-08-19 Richard Sandiford <rsandifo@redhat.com>
+
PR target/11924
* config/mips/mips.c (INTERNAL_SYMBOL_P): New macro.
(mips_classify_symbol, m16_usym8_4, m16_usym5_4): Use it.
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index e902821..29de990 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -4162,8 +4162,8 @@ mips_va_arg (tree valist, tree type)
lab_over = gen_label_rtx ();
ovfl = build (COMPONENT_REF, TREE_TYPE (f_ovfl), valist, f_ovfl);
-
- if (TREE_CODE (type) == REAL_TYPE)
+ if (GET_MODE_CLASS (TYPE_MODE (type)) == MODE_FLOAT
+ && GET_MODE_SIZE (TYPE_MODE (type)) <= UNITS_PER_FPVALUE)
{
top = build (COMPONENT_REF, TREE_TYPE (f_ftop), valist, f_ftop);
off = build (COMPONENT_REF, TREE_TYPE (f_foff), valist, f_foff);