diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2003-08-19 06:17:00 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2003-08-19 06:17:00 +0000 |
commit | fc4fe9e434a4a652065cff0e5380d9446debf32a (patch) | |
tree | af57648c62362fa1eea70ed8af56544b1f6c0118 /gcc | |
parent | 4b8174ff7aa7e610985d6eb0e54b1c1256121723 (diff) | |
download | gcc-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/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); |