I want to multiply two fixed point numbers. After the multiplication I have to shift the result so that the binary point is correct. Example:
int a; int b; int c; c = (a * b) >> 10
That's it! The following line produces just what I wanted: c = ((long)a * b)>>10; The product a*b is stored as 32 bit value in MD register, then the MD register value is arithmetic shifted right by 10 and the lower 16 bits stored in c. Thanks to Andrew and Mike!