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:
Richard Sandiford 2004-09-22 07:27:51 +00:00 committed by Richard Sandiford
parent c3002ae940
commit e1aeeae90e
2 changed files with 12 additions and 0 deletions

View file

@ -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

View file

@ -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