C/C++ Compiler Language Extensions
Table 1-10. Register Names for asm() Constructs (Cont'd)
Clobber String
"astat"
"MSTAT", "MMODE", "SSTAT"
"IMASK", "ICNTL", "IFC"
"CNTR", "STACKA", "STACKP"
"IJPG", "IOPG",
"cc"
"memory"
Assembly Constructs with Multiple Instructions
There can be many assembly instructions in one template. If the
string is longer than one line, you may continue it on the next line by
placing a backslash (
separately.
This is an example of multiple instructions in a template:
asm ("se=exp %1 (hi); \
"sr=norm %1 (hi);
"%0=sr0;"
: "=e" (normalized)
: "e" (inval) ;
: "se", "sr2", "sr1", "sr0") ;
Assembly Construct Reordering and Optimization
For the purpose of optimization, the compiler assumes that the side effects
of an
construct are limited to changes in the output operands or the
asm()
items specified using the clobber specifiers. This does not mean that you
1-74
) at the end of the line or by quoting each line
\
\
VisualDSP++ 3.5 C/C++ Compiler and Library Manual
Meaning
ALU status register
mode control register
Interrupt registers
Program sequencer register
Paging/overlay register;
ADSP-2190 DSP only
Condition code register
Unspecified memory location(s)
// output
// input
// clobbers
for ADSP-219x DSPs
asm()
Need help?
Do you have a question about the VISUALDSP++ 3.5 and is the answer not in the manual?
Questions and answers