[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.