# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# MPLAB XC16 C-Compiler

- 1
- 2
…
- 306
- 307
- 308
- 309
- 310
…
- 365
- 366

MPLAB
®
XC16 C Compiler Users Guide
DS50002071C-page 308  2012-2013 Microchip Technology Inc.
Argument: sqr Integer squared value.
xptr Integer pointer to pointer to x prefetch.
xincr Integer increment value of x prefetch.
yptr Integer pointer to pointer to y prefetch.
yincr Integer increment value of y prefetch.
distance Integer pointer to distance.
Return Value: Returns the squared result to an accumulator.
Assembler Operator/
Machine Instruction:
ed
Error Messages An error message will be displayed if:
 the result is not an accumulator register
 xptr is null
 yptr is null
 distance is null
__builtin_edac
Description: Squares sqr and sums with the nominated accumulator register, returning it as the result.
Also prefetches data for future square operation by computing **xptr - **yptr and stor-
ing the result in *distance.
xincr and yincr may be the literal values: -6, -4, -2, 0, 2, 4, 6 or an integer value.
For example:
volatile register int result asm("A");
int *xmemory, *ymemory;
int distance;
result = __builtin_ed(result, distance,
&xmemory, 2,
&ymemory, 2,
&distance);
might generate:
edac w4*w4, A, [w8]+=2, [W10]+=2, w4
Prototype: int __builtin_edac(int Accum, int sqr,
int **xptr, int xincr, int **yptr, int yincr,
int *distance);
Argument: Accum Accumulator to sum.
sqr Integer squared value.
xptr Integer pointer to pointer to x prefetch.
xincr Integer increment value of x prefetch.
yptr Integer pointer to pointer to y prefetch.
yincr Integer increment value of y prefetch.
distance Integer pointer to distance.
Return Value: Returns the squared result to specified accumulator.
Assembler Operator/
Machine Instruction:
edac
Error Messages An error message will be displayed if:
 the result is not an accumulator register
 Accum is not an accumulator register
 xptr is null
 yptr is null
 distance is null
__builtin_ed

- 1
- 2
…
- 306
- 307
- 308
- 309
- 310
…
- 365
- 366