Hello all, I am involved in the porting of gcc 4.1.2 for 16 bit target. For this target size of long long is 32bits. For the following code
#define VALUE 0x1B4E81B4E81B4DLL #define AFTER 0x55 //void test (int n, long long q, int y); void test (int n, ...); int main () { test (1, VALUE, AFTER); exit(0); } i find that the machine mode of the arguments of test are HImode, DImode and HImode. When replace function 'test' with normal one instead of varargs i find that the machine modes are HImode, SImode and HImode respectively. My question is even if the function is a vararg function shouldn't the mode of the argument be SImode instead of DImode since long long is only 32bit for the target? Regards, Shafi