
5-6
Motorola DSP56000 Family Optimizing C Compiler User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Motorola
In-line Assembly Code
D
—One of the 56-bit accumulators (
a
or
b
which are referred to as Destination
Registers; see Section 4 of the
DSP56000/DSP56001 User’s Manual
) will be
allocated to the C expression (see “OES modifier e: The modifier e can be used
to generate the assembly code below because a1 is the upper part of register A.”
on page 10 through “OES modifier k: The k modifier can be used to generate
the following assembly code because a2 is the extension portion of register A.”
on page 11). The C expression will be promoted to this register. Care must be
exercised to make sure the size of the C expression is consistent with the
accumulator length. The OES modifiers ‘
e
’, ‘
h
’ and
‘k
’ can be associated with
operand constraint D (see Section 5.2.1).
R
—One of the Input Registers (
x0
or
y0
which are also called Multiplier
Registers; see Section 4 of the
DSP56000/DSP56001 User’s Manual
) will be
allocated to the C expression (see “OES modifier i: The modifier can be used to
generate the following assembly code because x is a register without a 0 or 1
portion.” on page 12). The C expression will be promoted to this register. The
OES modifiers ‘
g
’ and ‘
i
’ can only be associated with operand constraint R (see
Section 5.2.1).
S
—One of the Input Registers (
x0
,
x1
,
y0
or
y1
which are also called Source
Registers; see Section 4 of the
DSP56000/DSP56001 User’s Manual
) will be
allocated to the C expression (see Example 5-13 on page 5-14 through
Example 5-17 on page 5-15). The C expression will be promoted to this
register. The OES modifiers “
g
” and “
i
” can only be associated with operand
constraint
S
(see Section 5.2.1).
i
—An immediate constant; a constant is generated in the form of #constant if
no modifier is specified. With
p
or
q
modifier, the value is generated without
the # sign. The value is the 16-bit constant with
p
modifier, and 24-bit constant
with
q
modifier (see Example 5-12).
m
—A memory location will be allocated to the C expression (see
Example 5-11). The DSP56000/DSP56001 has four memory spaces: X, Y, L
and P but the C compiler may only use the X, Y or L memory spaces for this
expression. The OES modifier ‘
f
’ can only be associated with operand
constraint m (see Section 5.2.1).
number
—Inherit all memory or register characteristics of the operand
indicated by the
operand id number
(see Example 5-3). This constraint is
usually used for read/write operands which are declared by using the same C
variable as both the input and output operand.
The operand is sometimes referred to as a read-only operand if it is used only as input (see
Example 5-14) and it is called a write-only operand if it is used only as an output (see
F
Freescale Semiconductor, Inc.
n
.