A.1.1.1 brackets as isap indicators, A.1.1.2 brackets as address indicators, A.1.1.1 – Freescale Semiconductor StarCore SC140 User Manual

Page 318: A.1.1.2

Advertising
background image

A-4

SC140 DSP Core Reference Manual

DSP Core Instruction Set

Table A-4 lists special syntax used in this appendix to define an instruction’s assembler syntax. Note that
the assembler syntax is case insensitive.

A.1.1.1 Brackets as ISAP indicators

The SC140 core can dispatch one ISAP opcode per VLES. This opcode uses the 2-word prefix encoding,
and is recognized as an ISAP opcode if it is not the first opcode in the VLES. The assembly syntax uses
brackets to identify a mnemonic as an ISAP instruction, for example:

ADD D0,D1,D2 {move_spacial (r0)+,K0}

For more details about working with an ISAP, see

Chapter 6, “Instruction Set Accelerator Plug-In.”

A.1.1.2 Brackets as address indicators

The ranges for addresses are included in the assembly syntax sections. These are not part of the assembly
syntax, but are shown there for clarity. They are enclosed in curly brackets {}. For example, in MOVE.L
the following is found:

MOVE.L (Rn+u3),DR {0

≤u3 < 32,L}

In this example, u3 is an unsigned immediate offset to the value in pointer register Rn. In addition, u3 is
aligned to long word addressing. Its values are in multiples of four. Addressing is in units of bytes, and
there are four bytes to a 32-bit long word. With only every fourth address required, u3 is encoded with
three bits to encode: 0, 4, 8, ---, 28. The notation for these numbers is

{0

≤u3 < 2

5

, L}.

The values for

u3 in the source code and disassembled code will be multiples of four from 0 to 28. The 3-bit encoded
values in the instruction will be zero to seven. Other notations for address alignment are:

W for word (multiples of two)

Q for quad (multiples of eight)

The ranges shown in the brackets are always for the source code addressing. The ranges may or may not
reflect the number of bits used in the encoding, depending on whether a left shift is applied to the encoded
value.

Table A-4. Assembler Syntax

#

Prefix for an immediate value (for example, #u5 means an immediate 5-bit unsigned number and #s16 is an
immediate 16-bit signed number).

$

Prefix to a hexadecimal value (for example, #$1A4F as an immediate value or $2FC as an address offset).

>

Prefix for long addressing, forces the assembler to use an extra word to encode the displacement/offset.

<

Prefix for short addressing, forces the assembler to use the smallest instruction when encoding the displace-
ment/offset.

label

Replace the word “label” in an instruction with the label name of an execution set in code. The instruction
determines if the assembler substitutes an absolute address or a relative displacement in the opcode.

*

Assembler variable containing the address of the current execution set.

{ }

Used to include ISAP instructions, OR - i
If the contents are not ISAP instruction, then these brackets are merely for illustrative purposes only, and can
be used to define the range of addressing of the previous instruction

Advertising