ix86_value_regno and callers
Richard Guenther
rguenther@suse.de
Tue Jul 5 15:22:00 GMT 2005
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.
More information about the Gcc
mailing list