]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* config/mips/mips.c (mips_va_arg): If EABI_FLOAT_VARARGS_P,
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 19 Aug 2003 06:17:00 +0000 (06:17 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 19 Aug 2003 06:17:00 +0000 (06:17 +0000)
expect SFmode and DFmode arguments to be passed in FPRs,
regardless of the underlying type.

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

gcc/ChangeLog
gcc/config/mips/mips.c

index 039df7454c30260f9ba663dda1bda9782d503669..4e82dbad3a4b62fb555841b441c592cd0cb7b3e9 100644 (file)
@@ -1,3 +1,9 @@
+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
index e90282161509aac72cba5b7d9feedbac291a996b..29de990f14e1e97c264789ae1efa10607f63be91 100644 (file)
@@ -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);