28.2.43 __builtin_movsac
Description
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.
If AWB is non null, the other accumulator will be written back
into the referenced variable.
For example:
volatile register int16_t result asm("A");
int16_t *xmemory;
int16_t *ymemory;
int16_t xVal, yVal;
__builtin_movsac(&xmemory, &xVal, 2, &ymemory, &yVal, 2, 0, 0);
might generate:
movsac A, [w8]+=2, w4, [w10]+=2, w5
Prototype
void __builtin_movsac(
int16_t **xptr, int16_t *xval, int16_t xincr,
int16_t **yptr, int16_t *yval, int16_t yincr, int16_t *AWB
int16_t AWB_accum);
Arguments
xptr – Integer pointer to pointer to x prefetch.
xval – Integer pointer to value of x prefetch.
xincr – Integer increment value of x prefetch.
yptr – Integer pointer to pointer to y prefetch.
yval – Integer pointer to value of y prefetch.
yincr – Integer increment value of y prefetch.
AWB – Accumulator write back location.
AWB_accum – Accumulator to write back.
Return Value
None
Machine Instruction
movsac
Error Messages
An error message will be displayed if:
- the result is not an accumulator register
xvalis a null value butxptris not nullyvalis a null value butyptris not nullAWB_accumis not an accumulator register andAWBis not null
