* 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
+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
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