7.4 DSP instructions
Programming the MIPS32® 74K™ Core Family, Revision 02.14
90
7.4 DSP instructions
The DSP instruction set is nothing like the regular and orthogonal MIPS32 instruction set. It’s a collection of special-
case instructions, in many cases aimed at the known hot-spots of important algorithms.
We’ll summarize the instructions under headings, but then list all of them in
Section 7.2, "DSP instructions in
, an alphabetically-ordered list which provides a terse but usually-sufficient description of what
each instruction does.
7.4.1 Hints in instruction names
An instruction’s name may have some suffixes which are often informative:
q
: generally means it treats operands as fractions (which isn’t important for adds and subtracts, but is important for
multiplications and convert operations);
_s
: usually means the full-precision result is saturated to the size of the destination;
_sa
is used for instructions which
saturate intermediate results before accumulating; and
r
: denotes rounding (see above);
.w, .ph, .qb
: suggest the operation is dealing with 32-bit, paired-half or quad-byte values respectively. Where there
are two of these (as in
macq_s.w.phl
) the first one suggests the type of the result, and the second the type of the
operand(s).
v
: (in a shift instruction) suggests that the shift amount is defined in a register, rather than being encoded in a field of
the instruction.
To help you get your arms around this collection of instructions we’ll group them by likely usage - guided by the type
of the result performed, with an eye to the application. The multiplication instructions are more tricky: most of them
have multiple uses. We’ve sorted them by the most obvious use (likely also the most common). The classification
we’ve chosen divides them into:
•
•
Arithmetic - saturating and/or SIMD Types
•
Bit-shifts - saturating and/or SIMD types
•
Comparison and "conditional-move" operations on SIMD types
pick
instructions.
•
Conversions to and from SIMD types
•
Multiplication - SIMD types with result in GP register
•
Multiply Q15s from paired-half and accumulate
•
•
•
Accumulator access instructions
•
Dot products and building blocks for complex multiplication
- includes full-word (Q31) multiply-accumulate
•
- everything else...
Содержание MIPS32 74K Series
Страница 1: ...Document Number MD00541 Revision 02 14 March 30 2011 Programming the MIPS32 74K Core Family...
Страница 10: ...Programming the MIPS32 74K Core Family Revision 02 14 10...
Страница 20: ...1 4 A brief guide to the 74K core implementation Programming the MIPS32 74K Core Family Revision 02 14 20...
Страница 28: ...2 2 PRId register identifying your CPU type Programming the MIPS32 74K Core Family Revision 02 14 28...
Страница 54: ...3 8 The TLB and translation Programming the MIPS32 74K Core Family Revision 02 14 54...
Страница 83: ......
Страница 86: ...6 5 FPU pipeline and instruction timing Programming the MIPS32 74K Core Family Revision 02 14 86...
Страница 101: ...The MIPS32 DSP ASE 101 Programming the MIPS32 74K Core Family Revision 02 14...
Страница 134: ...8 4 Performance counters Programming the MIPS32 74K Core Family Revision 02 14 134...
Страница 154: ...C 3 FPU changes in Release 2 of the MIPS32 Architecture Programming the MIPS32 74K Core Family Revision 02 14 154...