On 08/08/2012 03:07 AM, Richard Sandiford wrote:
It looks like this patch might have been written before: http://gcc.gnu.org/ml/gcc-patches/2012-01/msg00756.html which added: /* If we're calling a locally-defined MIPS16 function, we know that it will return values in both the "soft-float" and "hard-float" registers. There is no need to use a stub to move the latter to the former. */ if (fp_code == 0&& mips16_local_function_p (fn)) return NULL_RTX; to cope with this.
Yes, you are right; this patch does predate yours, and I'd missed that you'd already committed another fix for what looks like the same problem.
If so, and out of nervousness :-), did the testcase fail with current trunk before the patch?
The testcase bundled with the patch is OK on current trunk. But, I have to admit that the "real" testcase that motivated this patch was building Android. It's going to take us a while to figure out whether your patch alone is adequate to make that work, so I'll withdraw this patch pending the outcome of those experiments.
-Sandra