SW006012 Microchip Technology, SW006012 Datasheet - Page 147

C COMPILER FOR DSPIC30F FAMILY

SW006012

Manufacturer Part Number
SW006012
Description
C COMPILER FOR DSPIC30F FAMILY
Manufacturer
Microchip Technology
Type
MPLAB® C30 Compilerr
Series
PIC24 & DsPICr
Datasheets

Specifications of SW006012

Supported Families
PIC24, DsPIC30F And DsPIC33F
Core Architecture
PIC, DsPIC
Kit Contents
Software And Docs
Mcu Supported Families
PIC24 MCUs And DsPIC DSCs
Tool Type
Compiler
Processor Series
PIC24, dsPIC
Lead Free Status / RoHS Status
Not applicable / Not applicable
For Use With/related Products
dsPIC30F
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
© 2007 Microchip Technology Inc.
__
Assembler Opera-
tor / Machine
Instruction:
Error Messages
__
Description:
Prototype:
Argument:
Return Value:
Assembler Opera-
tor / Machine
Instruction:
Error Messages
builtin_lac (Continued)
builtin_mac
lac
An error message will be displayed if:
• the result is not an accumulator register
• the shift value is not a literal within range
Computes a x b and sums with accumulator; also prefetchs 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.
If AWB is non null, the other accumulator will be written back into the
referenced variable.
For example:
might generate:
int __builtin_mac(int a, int b,
int **xptr, int *xval, int xincr,
int **yptr, int *yval, int yincr, int *AWB);
a
b
xptr
xval
xincr
yptr
yval
yincr
AWB
Returns the cleared value result to an accumulator.
mac
An error message will be displayed if:
• the result is not an accumulator register
• xval is a null value but xptr is not null
• yval is a null value but yptr is not null
register int result asm("A");
int *xmemory;
int *ymemory;
int xVal, yVal;
result = __builtin_mac(xVal, yVal,
mac w4*w5, A, [w8]+=2, w4, [w10]+=2, w5
MPLAB C30 Built-in Functions
Integer multiplicand.
Integer multiplier.
Integer pointer to pointer to x prefetch.
Integer pointer to value of x prefetch.
Integer increment value of x prefetch.
Integer pointer to pointer to y prefetch.
Integer pointer to value of y prefetch.
Integer increment value of y prefetch.
Integer pointer to accumulator selection.
&xmemory, &xVal, 2,
&ymemory, &yVal, 2, 0);
DS51284F-page 141

Related parts for SW006012