SW006012 Microchip Technology, SW006012 Datasheet - Page 152

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
MPLAB
DS51284F-page 146
®
C30 User’s Guide
__
Description:
Prototype:
Argument:
Return Value:
Assembler Opera-
tor / Machine
Instruction:
Error Messages
__
Description:
Prototype:
builtin_msc
builtin_mulss
Computes a x b and subtracts from 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_msc(int a, int b,
a
b
xptr
xval
xincr
yptr
yval
yincr
AWB
Returns the cleared value result to an accumulator.
msc
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
Computes the product p0 x p1. Function arguments are signed inte-
gers, and the function result is a signed long integer. The command-line
option -Wconversions can be used to detect unexpected sign
conversions.
signed long __builtin_mulss(const signed int p0,
const signed int p1);
register int result asm("A");
int *xmemory;
int *ymemory;
int xVal, yVal;
result = __builtin_msc(xVal, yVal,
msc w4*w5, A, [w8]+=2, w4, [w10]+=2, w5
int **xptr, int *xval, int xincr,
int **yptr, int *yval, int yincr, int *AWB);
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);
© 2007 Microchip Technology Inc.

Related parts for SW006012