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 test
-------------------------
void g(short);
void f(short a) {
g(a);
}
----------------------
it avoids the extension.
Cheers,
--
Rafael Avila de Espindola
Google | Gordon House | Barrow Street | Dublin 4 | Ireland
Registered in Dublin, Ireland | Registration Number: 368047