DSP Core Reference Manual

DALU
SC140 DSP Core Reference Manual 2-9
A special case of the MOVE.L instruction is used for reading from or writing to the EXT portion of a data
register. Six variations of this instruction save (restore) the extension bits and Ln bit of data registers to
(from) memory. One of the variations writes to memory the Ln bit and extension bits of an even and an odd
pair of registers. Another variation reads bits 8:0 from memory to the extension bits and the Ln bit of an
even register. Another variation reads bits 24:16 to the extension bits and the Ln bit of an odd register.
Memory writes are done from the even/odd pair of registers. Memory reads are done to a single register.
An extension saved to memory from an even numbered register must be restored to an even register,
likewise for odd registers.
All move instructions are described in detail in Appendix A, “SC140 DSP Core Instruction Set.”
Table 2-2 summarizes the various types of data bus write access to the data registers.
Note: When an unsigned long operand is written to a data register, Dn.e is zero-extended.
Table 2-3 summarizes the various types of data bus read accesses from the data registers.
Note: A fractional word or fractional long word can be written to memory with or without limiting and
shifting. See MOVE.F and MOVES.F in Appendix A, “SC140 DSP Core Instruction Set.”
The register file architecture and the 64-bit wide data buses XDBA and XDBB support wide data transfers
between the memory and the data registers. Up to four 16-bit words or two 32-bit long words can be
transferred between the register file and the memory in a single move operation on each data bus, XDBA
or XDBB.
Table 2-4 summarizes the various data widths for data moves from/to the data register file.
Table 2-2. Write to Data Registers
Operand Type Ln Dn.e Dn.h Dn.l
Fractional word Zero-extended Sign-extended Operand Zero-filled
Integer Byte Zero-extended Zero-extended/
Sign-extended
Zero-filled/
Sign-extended
Upper byte - Sign-extended/zero-extended
Lower byte - Operand
Integer Word Zero-extended Zero-extended/
Sign-extended
Zero-filled/
Sign-extended
Operand
Long Zero-extended Zero-extended/
Sign-extended
Operand Operand
2 Extensions - Long Operand Operand Unchanged Unchanged
Table 2-3. Read from Data Registers
Operand Type Memory Data Bus.h Memory Data Bus.l Limiting/Scaling
Fractional Word - Dn.h Yes/No (See Note)
Fractional Long Dn.h Dn.l Yes/No (See Note)
Integer Word - Dn.l No
Integer Long Dn.h Dn.l No
Integer Byte - Low byte - Dn.l[7:0] No
2 Extensions - Long EXT word: {7 zero bits, L
n+1
,
D
n+1
.e}
EXT word: {7 zero bits, Ln,
Dn.e}
No