Re: sign/zero extension of function arguments on x86-64

2009-03-16 Thread Rafael Espindola
I got mixed results with icc for -- short a; void g(short); void f(void) { g(a); } -- it produces a movswl. For --- void g(int); void f(short a) { g(a); } -- it produces a movswq. For the original

sign/zero extension of function arguments on x86-64

2009-03-13 Thread Rafael Espindola
This is similar to the discussion that happened some time ago about extending return values. The decisions for that was that the callee could just leave the higher bits undefined and the caller would extent the result if it needed to. We have a similar issue with function arguments. We compile