mips.c (mips_function_value): For o32, o64, n32 and n64, use FPRs for scalar, complex and vector types only.
* config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64, use FPRs for scalar, complex and vector types only. From-SVN: r87848
This commit is contained in:
parent
c3002ae940
commit
e1aeeae90e
2 changed files with 12 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2004-09-22 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
|
||||
use FPRs for scalar, complex and vector types only.
|
||||
|
||||
2004-09-21 Jeff Law <law@redhat.com>
|
||||
|
||||
* tree-ssa-dom.c (opt_stats): Move so that it lives just after
|
||||
|
|
|
@ -6764,6 +6764,13 @@ mips_function_value (tree valtype, tree func ATTRIBUTE_UNUSED,
|
|||
mode = mode_for_size (size * BITS_PER_UNIT, MODE_INT, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* For EABI, the class of return register depends entirely on MODE.
|
||||
For example, "struct { some_type x; }" and "union { some_type x; }"
|
||||
are returned in the same way as a bare "some_type" would be.
|
||||
Other ABIs only use FPRs for scalar, complex or vector types. */
|
||||
if (mips_abi != ABI_EABI && !FLOAT_TYPE_P (valtype))
|
||||
return gen_rtx_REG (mode, GP_RETURN);
|
||||
}
|
||||
|
||||
if ((GET_MODE_CLASS (mode) == MODE_FLOAT
|
||||
|
|
Loading…
Add table
Reference in a new issue