I use __stosq in a wrapper:
__inline void set8 (unsigned long long val,void *dstp,int count) {__stosq(dstp,val,count);}
I call it like this:
set8 (0x0203040506070809,buffer,sizeof(buffer)/8);
and get:
C:\Software\Projects\x86-64\sredump\sredump.c(24): warning #3110: [asm] Integer value too large for 32 bits.
This is because the intrinsic has the second parameter declared as eax (or at least tries to fit 0x0203040506070809 into eax) istdo rax.
Confirmed. Should be fixed in 6.50, RC4.