This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
ix86_value_regno and callers
- From: Richard Guenther <rguenther at suse dot de>
- To: gcc at gcc dot gnu dot org
- Date: Tue, 5 Jul 2005 17:14:44 +0200 (CEST)
- Subject: ix86_value_regno and callers
[1st try appearantly did not get through - sorry if you get this twice]
Hi!
I'm facing a problem, that with code like
double sin(double);
double __attribute__((sseregparm)) (*mysin)(double) = sin;
double bar(double x)
{
return mysin(x);
}
we fail to recognize that mysin returns in %mm0 because ix86_value_regno
is only ever called with NULL func argument. We correctly recognize that
we need to pass x in %mm0, though. We even sibcall mysin incorrectly
(probably because of the above bug).
I'm lost in the mysteries of expansion of the indirect call, also
ix86_value_regno gets called all over the place, so the "interesting"
call-site is hard to find.
Any ideas?
Thanks,
Richard.