Computes a x b ; also prefetches data ready for a future MAC operation.

xptr may be null to signify no X prefetch to be performed, in which case the values of xincr and xval are ignored, but required.

yptr may be null to signify no Y prefetch to be performed, in which case the values of yincr and yval are ignored, but required.

xval and yval nominate the address of a C variable where the prefetched value will be stored.

xincr and yincr may be the literal values: -6, -4, -2, 0, 2, 4, 6 or an integer value.

For example:

register int result asm("A");

int *xmemory;

int *ymemory;

int xVal, yVal;

result = __builtin_mpy(xVal, yVal,

&xmemory, &xVal, 2,

&ymemory, &yVal, 2);

might generate:

mac w4*w5, A, [w8]+=2, w4, [w10]+=2, w5