diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 4 |
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); |