The registers
AR
tion definition with the
these registers, a warning is issued and these registers are added to the
clobbered set.
However, if the compiler sees an external function declaration with a
regs_clobbered
warning will not be issued because an assembly function may have been
written which genuinely does not modify these registers.
Registers from these classes,
D, I, B, ASTAT, CNTR, PX, DMPG1, STACKA, STACKP, IJPG, IOPG, SB, SE
may be specified in clobbered set and code will be generated to save them
as necessary.
The L-registers are required to be zero on entry and exit from a function.
A user may specify that a function clobbers the L-registers. If it is a com-
piler-generated function, then it will in fact leave the L-registers as zero at
the end of the function. If it is an assembly function, then it may clobber
the L-registers. In that case, the L-registers are re-zeroed after any call to
that function. The registers
in an analogous manner.
The
IMASK
and
LPSTACKP
preserved.
User Reserved Registers
User reserved registers will never be preserved in the function wrappers
whether in the clobbered set or not.
Function Results
The registers in which a function returns its result must always be clob-
bered by the callee and retain their new value in the caller. They may
appear in the clobbered set of the callee but it will make no difference to
VisualDSP++ 3.5 C/C++ Compiler and Library Manual
for ADSP-219x DSPs
and
are always clobbered. If the user specifies a func-
M7
regs_clobbered
pragma that does not contain the
,
,
M1
M2
,
,
,
ICNTL
IRPTL
SSTAT
registers are never used by the compiler and are never
pragma which does not contain
AR
and
have their required value set
M6
M7
,
,
SYSCTL
CACTL
Compiler
and
registers, a
M7
,
,
,
CCODE
LPSTACKA
1-133
Need help?
Do you have a question about the VISUALDSP++ 3.5 and is the answer not in the manual?