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