28.2.124 __builtin_sftac
Architecture
dsPIC33A, dsPIC33C/E/F, dsPIC30
Description
Shifts accumulator by shift. The valid shift range is
-16 to 16.
For example:
volatile register int16_t result asm(“A”);
int16_t i;
result = __builtin_sftac(result,i);
Might generate:
sftac A, w0
Prototype
int __builtin_sftac(int Accum, int shift);
For dsPIC33A, int is int32_t. For dsPIC33C/E/F and
dsPIC30, int is int16_t.
Arguments
Accum – Accumulator to shift.
shift – Amount to shift.
Return Value
Returns the shifted result to an accumulator.
Machine Instruction
sftac
Error Messages
An error message will be displayed if:
- the result is not an accumulator register
Accumis not an accumulator register- the shift value is not a literal within range
