- Standalone Python disassembler for 24-bit ADSP-219x instructions - Complete instruction set reference (PDFs + extracted text) - Architecture documentation and getting-started guide - Test ROM generator with packed (3-byte) and padded (4-byte) formats - r2pipe-based analysis script for radare2 integration
813 lines
26 KiB
Plaintext
813 lines
26 KiB
Plaintext
9 INSTRUCTION OPCODES
|
||
Figure 9-0.
|
||
Table 9-0.
|
||
Listing 9-0.
|
||
|
||
|
||
|
||
This chapter lists and describes the opcodes that defines each of the
|
||
instructions in the ADSP-219x’s instruction set. This information is use-
|
||
ful for debugging programs.
|
||
This chapter covers the following topics:
|
||
• “Opcode Mnemonics” on page 9-1
|
||
• “Opcode Definitions” on page 9-20
|
||
|
||
|
||
Opcode Mnemonics
|
||
This section lists, describes, and gives the numeric value for each opcode
|
||
mnemonic.
|
||
|
||
Table 9-1. Opcode mnemonics
|
||
|
||
Mnemonic Description Details
|
||
|
||
AMF Specifies an ALU or multiplier operation. page 9-8
|
||
|
||
AS Specifies whether ALU saturation mode is page 9-40
|
||
0 = disabled
|
||
1 = enabled
|
||
|
||
B Specifies whether branch is page 9-32
|
||
page 9-41
|
||
0 = immediate
|
||
page 9-42
|
||
1 = delayed
|
||
|
||
|
||
|
||
|
||
ADSP-219x Instruction Set Reference 9-1
|
||
Instruction Opcodes
|
||
|
||
|
||
|
||
|
||
Table 9-1. Opcode mnemonics (Cont’d)
|
||
|
||
Mnemonic Description Details
|
||
|
||
BIT Specifies which interrupt to enable or disable (0–15). page 9-60
|
||
|
||
BO Specifies whether the supplied 4-bit constant in a type 9 instruction is page 9-12
|
||
page 9-27
|
||
01 = as is
|
||
11 = negated
|
||
|
||
BR Specifies whether bit-reverse addressing on DAG1 is page 9-40
|
||
0 = disabled
|
||
1 = enabled
|
||
|
||
BSR Specifies whether the secondary DAG address registers are page 9-40
|
||
0 = disabled
|
||
1 = enabled
|
||
|
||
C Specifies whether a software interrupt is page 9-60
|
||
0 = set
|
||
1 = cleared
|
||
|
||
CC Specifies the two LSBs of a 4-bit constant value in a type 9 instruction. page 9-12
|
||
page 9-27
|
||
|
||
CF Specifies whether to flush the instruction cache page 9-50
|
||
0 = No flush
|
||
1 = flush
|
||
|
||
COND Specifies one of the condition codes on which to base execution of the page 9-11
|
||
instruction.
|
||
|
||
|
||
|
||
|
||
9-2 ADSP-219x Instruction Set Reference
|
||
Table 9-1. Opcode mnemonics (Cont’d)
|
||
|
||
Mnemonic Description Details
|
||
|
||
D Specifies the direction of a data move. page 9-22
|
||
page 9-35
|
||
0 = read
|
||
page 9-51
|
||
1 = write page 9-54
|
||
page 9-57
|
||
page 9-58
|
||
|
||
DD Specifies a destination data register for a DM bus transfer. page 9-21
|
||
00 = AX0
|
||
01 = AX1
|
||
10 = MX0
|
||
11 = MX1
|
||
|
||
DDREG Specifies a destination register for a register-to-register move operation. page 9-13
|
||
|
||
DREG Specifies an unrestricted data register (REG0 only). page 9-13
|
||
|
||
DMI Specifies a DAG index address register (I0–I3) for a DM bus transfer. page 9-18
|
||
page 9-21
|
||
|
||
DMM Specifies a DAG modify address register (M0–M3) for a DM bus trans- page 9-18
|
||
fer. page 9-21
|
||
|
||
DRGP Specifies a destination register group. page 9-39
|
||
00 = REG0
|
||
01 = REG1
|
||
10 = REG2
|
||
11 = REG3
|
||
|
||
DRL Specifies two MSBs of DREG data register address. page 9-13
|
||
|
||
DRU Specifies two LSBs of DREG data register address. page 9-13
|
||
|
||
Exponent Specifies an 8-bit, two’s-complement shift value. page 9-37
|
||
|
||
|
||
|
||
|
||
ADSP-219x Instruction Set Reference 9-3
|
||
Instruction Opcodes
|
||
|
||
|
||
|
||
|
||
Table 9-1. Opcode mnemonics (Cont’d)
|
||
|
||
Mnemonic Description Details
|
||
|
||
G Specifies a DAG register group. page 9-17
|
||
0 = DAG1
|
||
1 = DAG2
|
||
|
||
IREG/MREG Specifies DAG index and modify registers (I0–I7, M0–M7). page 9-18
|
||
|
||
I Specifies DAG index register (I0–I7). page 9-17
|
||
|
||
Idle Value Specifies a 4-bit value that defines an internal clock divisor. page 9-53
|
||
|
||
INT Specifies whether interrupts are globally page 9-40
|
||
0 = disabled
|
||
1 = enabled
|
||
|
||
LPP Specifies push/pop of the loop stacks. page 9-50
|
||
0 = disabled
|
||
1 = enabled
|
||
|
||
M Specifies a DAG modify register. page 9-17
|
||
|
||
MM Specifies whether MAC integer mode is page 9-40
|
||
0 = disabled
|
||
1 = enabled
|
||
|
||
MOD DATA Specifies an 8-bit, two’s-complement immediate data value. page 9-44
|
||
page 9-51
|
||
|
||
MS Specifies memory bus for a memory data transfer page 9-54
|
||
0 = 16-bit DM bus
|
||
1 = 24-bit PM bus
|
||
|
||
|
||
|
||
|
||
9-4 ADSP-219x Instruction Set Reference
|
||
Table 9-1. Opcode mnemonics (Cont’d)
|
||
|
||
Mnemonic Description Details
|
||
|
||
OL Specifies whether ALU overflow mode is page 9-40
|
||
0 = disabled
|
||
1 = enabled
|
||
|
||
PD Specifies a destination data register for a PM bus transfer. page 9-21
|
||
00 = AY0
|
||
01 = AY1
|
||
10 = MY0
|
||
11 = MY1
|
||
|
||
PMI Specifies a DAG index address register (I4–I7) for a PM bus transfer. page 9-18
|
||
|
||
PMM Specifies a DAG modify address register (M4–M7) for a PM bus trans- page 9-18
|
||
fer.
|
||
|
||
PPP Specifies push/pop of the PC stack. page 9-50
|
||
0 = disabled
|
||
1 = enabled
|
||
|
||
Q Specifies the RTI mode. page 9-42
|
||
0 = normal
|
||
1 = single-step
|
||
|
||
R Specifies a result register. page 9-49
|
||
0 = MR register
|
||
1 = SR register
|
||
|
||
REG Specifies a core register of RGPx. page 9-13
|
||
|
||
REG1 Specifies a register group 1 register page 9-13
|
||
page 9-25
|
||
|
||
|
||
|
||
|
||
ADSP-219x Instruction Set Reference 9-5
|
||
Instruction Opcodes
|
||
|
||
|
||
|
||
|
||
Table 9-1. Opcode mnemonics (Cont’d)
|
||
|
||
Mnemonic Description Details
|
||
|
||
REG2 Specifies a register group 2 register page 9-13
|
||
page 9-25
|
||
|
||
REG3 Specifies a register group 3 register page 9-13
|
||
page 9-56
|
||
|
||
RGP Specifies a register group. page 9-13
|
||
00 = REG0
|
||
01 = REG1
|
||
10 = REG2
|
||
11 = REG3.
|
||
|
||
S Specifies the branch type. page 9-32
|
||
page 9-41
|
||
0 = jump
|
||
1 = call
|
||
|
||
SDREG Specifies the source data register for a data move operation. page 9-13
|
||
|
||
SF Specifies a shift function. page 9-15
|
||
|
||
SPP Specifies push/pop of the status stack. page 9-50
|
||
0 = disabled
|
||
1 = enabled
|
||
|
||
SR Specifies whether the secondary data registers are page 9-40
|
||
0 = disabled
|
||
1 = enabled
|
||
|
||
|
||
|
||
|
||
9-6 ADSP-219x Instruction Set Reference
|
||
Table 9-1. Opcode mnemonics (Cont’d)
|
||
|
||
Mnemonic Description Details
|
||
|
||
SRGP Specifies a source register group for a data move operation. page 9-39
|
||
00 = REG0
|
||
01 = REG1
|
||
10 = REG2
|
||
11 = REG3
|
||
|
||
SWCD Specifies a 4-bit nonfunctional value used by ADI tools only. page 9-52
|
||
|
||
T Specifies the return type. page 9-42
|
||
0 = RTS
|
||
1 = RTI
|
||
|
||
TERM Specifies the terminating condition for the type 11 instruction. page 9-34
|
||
1110 = NOT CE
|
||
1111 = TRUE
|
||
|
||
TI Specifies whether the timer is page 9-40
|
||
0 = disabled
|
||
1 = enabled
|
||
|
||
U Specifies whether the DAG index register is page 9-54
|
||
0 = premodified with no update
|
||
1 = postmodified with update
|
||
|
||
XOP Specifies a restricted data register used to supply the x operand value in page 9-19
|
||
a multifunction or conditional instruction.
|
||
|
||
XREG Specifies the source register (REG0) in a shift function. page 9-13
|
||
|
||
|
||
|
||
|
||
ADSP-219x Instruction Set Reference 9-7
|
||
Instruction Opcodes
|
||
|
||
|
||
|
||
|
||
Table 9-1. Opcode mnemonics (Cont’d)
|
||
|
||
Mnemonic Description Details
|
||
|
||
Y0 Specifies whether the source of the x-operand is page 9-11
|
||
0 = data register
|
||
1 = 0 (explicit value)
|
||
|
||
YOP Specifies a restricted data register used to supply the y operand value in page 9-19
|
||
a multifunction or conditional instruction.
|
||
|
||
YREG Specifies the destination register (REG0) in a shift function. page 9-13
|
||
page 9-11
|
||
|
||
YY Specifies the two MSBs of a 4-bit constant value in a type 9 instruc- page 9-12
|
||
tion. page 9-27
|
||
|
||
Z Specifies a result or feedback register page 9-23
|
||
page 9-26
|
||
0 = result register
|
||
page 9-27
|
||
1 = feedback register page 9-11
|
||
|
||
|
||
ALU or Multiplier Function (AMF) Codes
|
||
Table 9-2 on page 9-9 lists the AMF codes used by these instruction types:
|
||
• “Type 1: Compute | DregX«···DM | DregY«···PM” on page 9-21
|
||
• “Type 4: Compute | Dreg «···» DM/PM” on page 9-23
|
||
• “Type 8: Compute | Dreg1 «··· Dreg2” on page 9-26
|
||
• “Type 9: Compute” on page 9-27
|
||
|
||
|
||
|
||
|
||
9-8 ADSP-219x Instruction Set Reference
|
||
Table 9-2. ALU/multiplier function (AMF) codes
|
||
|
||
Code Function Description
|
||
|
||
Multiplier functions
|
||
|
||
00000 NOP No operation
|
||
|
||
00001 X * Y (RND) Multiply
|
||
|
||
00010 MR + X * Y (RND) Multiply and accumulate
|
||
|
||
00011 MR – X * Y (RND) Multiply and subtract
|
||
|
||
00100 X * Y (SS) Multiply
|
||
|
||
00101 X * Y (SU) Multiply
|
||
|
||
00110 X * Y (US) Multiply
|
||
|
||
00111 X * Y (UU) Multiply
|
||
|
||
01000 MR + X * Y (SS) Multiply and accumulate
|
||
|
||
01001 MR + X * Y (SU) Multiply and accumulate
|
||
|
||
01010 MR + X * Y (US) Multiply and accumulate
|
||
|
||
01011 MR + X * Y (UU) Multiply and accumulate
|
||
|
||
01100 MR – X * Y (SS) Multiply and subtract
|
||
|
||
01101 MR – X * Y (SU) Multiply and subtract
|
||
|
||
01110 MR – X * Y (US) Multiply and subtract
|
||
|
||
01111 MR – X * Y (UU) Multiply and subtract
|
||
|
||
(RND) = round results; (SS) = both operands signed; (SU) = x operand signed, y operand unsigned;
|
||
(US) =x operand unsigned, y operand signed; (UU) = both operands unsigned
|
||
|
||
|
||
|
||
|
||
ADSP-219x Instruction Set Reference 9-9
|
||
Instruction Opcodes
|
||
|
||
|
||
|
||
|
||
Table 9-2. ALU/multiplier function (AMF) codes (Cont’d)
|
||
|
||
Code Function Description
|
||
|
||
ALU functions
|
||
|
||
10000 Y PASS/CLEAR
|
||
|
||
10001 Y+1 PASS
|
||
|
||
10010 X+Y+C Add with carry
|
||
|
||
10011 X+Y Add
|
||
|
||
10100 NOT Y Negate
|
||
|
||
10101 –Y PASS
|
||
|
||
10110 X–Y+C–1 Subtract (X–Y) with borrow
|
||
|
||
10111 X–Y Subtract
|
||
|
||
11000 Y–1 PASS
|
||
|
||
11001 Y–X Subtract
|
||
|
||
11010 Y–X+C–1 Subtract (Y–X) with borrow
|
||
|
||
11011 NOT X Negate
|
||
|
||
11100 X AND Y AND/test bit,clear bit
|
||
|
||
11101 X OR Y OR/set bit
|
||
|
||
11110 X XOR Y XOR/toggle bit
|
||
|
||
11111 ABS X Absolute value
|
||
|
||
(RND) = round results; (SS) = both operands signed; (SU) = x operand signed, y operand unsigned;
|
||
(US) =x operand unsigned, y operand signed; (UU) = both operands unsigned
|
||
|
||
|
||
|
||
|
||
9-10 ADSP-219x Instruction Set Reference
|
||
Condition Codes
|
||
Table 9-3 on page 9-11 lists the condition codes used by these instruction
|
||
types:
|
||
• “Type 9: Compute” on page 9-27
|
||
• “Type 10: Direct Jump” on page 9-32
|
||
• “Type 16: Shift Reg0” on page 9-38
|
||
• “Type 19: Indirect Jump/Call” on page 9-41
|
||
• “Type 20: Return” on page 9-42
|
||
• “Type 36: Long Jump/Call” on page 9-59
|
||
• “Type 11: Do ··· Until” on page 9-34
|
||
uses NOT CE and TRUE only for the terminating condition.
|
||
|
||
Table 9-3. Condition codes
|
||
|
||
Code Condition Description
|
||
|
||
0000 EQ Equal to 0 (= 0)
|
||
|
||
0001 NE Not equal to 0 (≠ 0)
|
||
|
||
0010 GT Greater than 0 (>0)
|
||
|
||
0011 LE Less than or equal to 0 (≤0)
|
||
|
||
0100 LT Less than 0 (<0)
|
||
|
||
0101 GE Greater than or equal to 0 (≥0)
|
||
|
||
0110 AV ALU overflow
|
||
|
||
0111 NOT AV Not ALU overflow
|
||
|
||
|
||
|
||
|
||
ADSP-219x Instruction Set Reference 9-11
|
||
Instruction Opcodes
|
||
|
||
|
||
|
||
|
||
Table 9-3. Condition codes (Cont’d)
|
||
|
||
Code Condition Description
|
||
|
||
1000 AC ALU carry
|
||
|
||
1001 NOT AC Not ALU carry
|
||
|
||
1010 SWCOND CCODE register condition
|
||
|
||
1011 NOT SWCOND Not CCODE register condition
|
||
|
||
1100 MV MAC overflow
|
||
|
||
1101 NOT MV Not MAC overflow
|
||
|
||
1110 NOT CE Counter not expired
|
||
|
||
1111 TRUE Always true
|
||
|
||
|
||
Constant Codes
|
||
Table 9-4 lists the valid constants used by “Type 9: Compute” on
|
||
page 9-27. As shown, the YY/CC bits determine the constant value and the
|
||
BO bits determine the sign of the value.
|
||
|
||
|
||
Table 9-4. Constants
|
||
|
||
Code Decimal / Hex Decimal / Hex
|
||
|
||
YY CC BO = 01 BO = 11
|
||
|
||
00 00 1 / 0x0001 −2 / 0xFFFE
|
||
|
||
00 01 2 / 0x0002 −3 / 0xFFFD
|
||
|
||
00 10 4 / 0x0004 −5 / 0xFFFB
|
||
|
||
00 11 8 / 0x0008 −9 / 0xFFF7
|
||
|
||
|
||
|
||
|
||
9-12 ADSP-219x Instruction Set Reference
|
||
Table 9-4. Constants (Cont’d)
|
||
|
||
Code Decimal / Hex Decimal / Hex
|
||
|
||
YY CC BO = 01 BO = 11
|
||
|
||
01 00 16 / 0x0010 −17 / 0xFFEF
|
||
|
||
01 01 32 / 0x0020 −33 / 0xFFDF
|
||
|
||
01 10 64 / 0x0040 −65 / 0xFFBF
|
||
|
||
01 11 128 / 0x0080 −129 / 0xFF7F
|
||
|
||
10 00 256 / 0x0100 −257 / 0xFEFF
|
||
|
||
10 01 512 / 0x0200 −513 / 0xFDFF
|
||
|
||
10 10 1024 / 0x0400 −1025 / 0xFBFF
|
||
|
||
10 11 2048 / 0x0800 −2049 / 0xF7FF
|
||
|
||
11 00 4096 / 0x1000 −4097 / 0xEFFF
|
||
|
||
11 01 8192 / 0x2000 −8193 / 0xDFFF
|
||
|
||
11 10 16384 / 0x4000 −16385 / 0xBFFF
|
||
|
||
11 11 −32768 / 0x8000 +32767 / 0x7FFF
|
||
|
||
|
||
Core Register Codes
|
||
Table 9-5 on page 9-14 list the core registers and their addresses. The
|
||
complete address of any individual register is formed by appending the
|
||
register’s address bits to its RGP bits, so, for example, the address of the I2
|
||
register is 010010. The opcode mnemonics DREG, DDREG, SDREG, XREG, and
|
||
YREG and the following instruction types reference these registers by their
|
||
address bits:
|
||
• “Type 3: Dreg/Ireg/Mreg «···» DM/PM” on page 9-22
|
||
|
||
|
||
|
||
ADSP-219x Instruction Set Reference 9-13
|
||
Instruction Opcodes
|
||
|
||
|
||
|
||
|
||
• “Type 4: Compute | Dreg «···» DM/PM” on page 9-23
|
||
• “Type 6: Dreg «··· Data16” on page 9-24
|
||
• “Type 8: Compute | Dreg1 «··· Dreg2” on page 9-26
|
||
• “Type 9: Compute” on page 9-27
|
||
• “Type 12: Shift | Dreg «···» DM/PM” on page 9-35
|
||
• “Type 14: Shift | Dreg1 «··· Dreg2” on page 9-36
|
||
• “Type 15: Shift Data8” on page 9-37
|
||
• “Type 16: Shift Reg0” on page 9-38
|
||
• “Type 17: Any Reg «··· Any Reg” on page 9-39
|
||
• “Type 34: Dreg «···» IOreg” on page 9-57
|
||
• “Type 35: Dreg «···»Sreg” on page 9-58
|
||
|
||
Table 9-5. Core registers
|
||
|
||
RGP/Address Register Groups (RGP)
|
||
|
||
Address 00 (REG0) 01 (REG1) 10 (REG2) 11 (REG3)
|
||
|
||
0000 AX0 I0 I4 ASTAT
|
||
|
||
0001 AX1 I1 I5 MSTAT
|
||
|
||
0010 MX0 I2 I6 SSTAT
|
||
|
||
0011 MX1 I3 I7 LPSTACKP
|
||
|
||
0100 AY0 M0 M4 CCODE
|
||
|
||
0101 AY1 M1 M5 SE
|
||
|
||
0110 MY0 M2 M6 SB
|
||
|
||
|
||
|
||
|
||
9-14 ADSP-219x Instruction Set Reference
|
||
Table 9-5. Core registers (Cont’d)
|
||
|
||
RGP/Address Register Groups (RGP)
|
||
|
||
Address 00 (REG0) 01 (REG1) 10 (REG2) 11 (REG3)
|
||
|
||
0111 MY1 M3 M7 PX
|
||
|
||
1000 MR2 L0 L4 DMPG1
|
||
|
||
1001 SR2 L1 L5 DMPG2
|
||
|
||
1010 AR L2 L6 IOPG
|
||
|
||
1011 SI L3 L7 IJPG
|
||
|
||
1100 MR1 IMASK Reserved Reserved
|
||
|
||
1101 SR1 IRPTL Reserved Reserved
|
||
|
||
1110 MR0 ICNTL CNTR Reserved
|
||
|
||
1111 SR0 STACKA LPSTACKA STACKP
|
||
|
||
|
||
SF Function Codes
|
||
Table 9-6 list the shift function (SF) codes used by these instruction types:
|
||
• “Type 12: Shift | Dreg «···» DM/PM” on page 9-35
|
||
• “Type 14: Shift | Dreg1 «··· Dreg2” on page 9-36
|
||
• “Type 15: Shift Data8” on page 9-37
|
||
—shift functions (codes 0000–0111) only
|
||
• “Type 16: Shift Reg0” on page 9-38
|
||
|
||
|
||
|
||
|
||
ADSP-219x Instruction Set Reference 9-15
|
||
Instruction Opcodes
|
||
|
||
|
||
|
||
|
||
Table 9-6. SF codes
|
||
|
||
Code Function
|
||
|
||
0000 LSHIFT (HI)
|
||
|
||
0001 LSHIFT (HI, OR)
|
||
|
||
0010 LSHIFT (LO)
|
||
|
||
0011 LSHIFT (LO, OR)
|
||
|
||
0100 ASHIFT (HI)
|
||
|
||
0101 ASHIFT (HI, OR)
|
||
|
||
0110 ASHIFT (LO)
|
||
|
||
0111 ASHIFT (LO, OR)
|
||
|
||
1000 NORM (HI)
|
||
|
||
1001 NORM (HI, OR)
|
||
|
||
1010 NORM (LO)
|
||
|
||
1011 NORM (LO, OR)
|
||
|
||
1100 EXP (HI)
|
||
|
||
1101 EXP (HIX)
|
||
|
||
1110 EXP (LO)
|
||
|
||
1111 Derive Block Exponent
|
||
|
||
|
||
|
||
|
||
9-16 ADSP-219x Instruction Set Reference
|
||
I and M Codes
|
||
Table 9-7 on page 9-17 lists the DAG index and modify register codes
|
||
used by the following instruction types. The G bit (DAG1/DAG2) determines
|
||
which group of I (index) and M (modify) registers.
|
||
• “Type 4: Compute | Dreg «···» DM/PM” on page 9-23.
|
||
• “Type 12: Shift | Dreg «···» DM/PM” on page 9-35
|
||
• “Type 19: Indirect Jump/Call” on page 9-41
|
||
• “Type 21: Modify DagI” on page 9-43
|
||
• “Type 21a: Modify DagI” on page 9-44
|
||
• “Type 22: DM/PM «··· Data16” on page 9-45
|
||
• “Type 29: Dreg «···» DM” on page 9-51
|
||
• “Type 32: Any Reg «···» PM/DM” on page 9-54
|
||
|
||
Table 9-7. I and M codes
|
||
|
||
DAG1 (G=0) DAG2 (G=1)
|
||
|
||
Code I M I M
|
||
|
||
00 I0 M0 I4 M4
|
||
|
||
01 I1 M1 I5 M5
|
||
|
||
10 I2 M2 I6 M6
|
||
|
||
11 I3 M3 I7 M7
|
||
|
||
|
||
|
||
|
||
ADSP-219x Instruction Set Reference 9-17
|
||
Instruction Opcodes
|
||
|
||
|
||
|
||
|
||
DMI, DMM, PMI, and PMM Codes
|
||
Table 9-8 lists the DAG index and modify register codes used by “Type 1:
|
||
Compute | DregX«···DM | DregY«···PM” on page 9-21.
|
||
|
||
Table 9-8. DMI, DMM, PMI, PMM codes
|
||
|
||
Code DMI DMM PMI PMM
|
||
|
||
00 I0 M0 I4 M4
|
||
|
||
01 I1 M1 I5 M5
|
||
|
||
10 I2 M2 I6 M6
|
||
|
||
11 I3 M3 I7 M7
|
||
|
||
|
||
IREG/MREG Codes
|
||
Table 9-9 lists the Ireg and Mreg codes used by “Type 3: Dreg/Ireg/Mreg
|
||
«···» DM/PM” on page 9-22 to specify a DAG index or modify register.
|
||
|
||
Table 9-9. Ireg, Mreg codes
|
||
|
||
Code Register Code Register
|
||
|
||
0000 I0 1000 M0
|
||
|
||
0001 I1 1001 M1
|
||
|
||
0010 I2 1010 M2
|
||
|
||
0011 I3 1011 M3
|
||
|
||
0100 I4 1100 M4
|
||
|
||
0101 I5 1101 M5
|
||
|
||
|
||
|
||
|
||
9-18 ADSP-219x Instruction Set Reference
|
||
Table 9-9. Ireg, Mreg codes (Cont’d)
|
||
|
||
Code Register Code Register
|
||
|
||
0110 I6 1110 M6
|
||
|
||
0111 I7 1111 M7
|
||
|
||
|
||
XOP and YOP Codes
|
||
Table 9-10 on page 9-19 lists the XOP and YOP codes used by these
|
||
instructions:
|
||
• “Type 1: Compute | DregX«···DM | DregY«···PM” on page 9-21
|
||
• “Type 4: Compute | Dreg «···» DM/PM” on page 9-23
|
||
• “Type 8: Compute | Dreg1 «··· Dreg2” on page 9-26
|
||
• “Type 9: Compute” on page 9-27
|
||
• “Type 12: Shift | Dreg «···» DM/PM” on page 9-35
|
||
• “Type 23: Divide primitive, DIVQ” on page 9-47
|
||
• “Type 24: Divide primitive, DIVS” on page 9-48
|
||
|
||
Table 9-10. XOP/YOP codes
|
||
|
||
XOP YOP
|
||
|
||
Code ALU MAC Shift Code ALU MAC
|
||
|
||
000 AX0 MX0 SI 00 AY0 MY0
|
||
|
||
001 AX1 MX1 SR2 01 AY1 MY1
|
||
|
||
010 AR AR AR 10 AF SR1
|
||
|
||
|
||
|
||
|
||
ADSP-219x Instruction Set Reference 9-19
|
||
Instruction Opcodes
|
||
|
||
|
||
|
||
|
||
Table 9-10. XOP/YOP codes
|
||
|
||
XOP YOP
|
||
|
||
Code ALU MAC Shift Code ALU MAC
|
||
|
||
011 MR0 MR0 MR0 11 0 0
|
||
|
||
100 MR1 MR1 MR1
|
||
|
||
101 MR2 MR2 MR2
|
||
|
||
110 SR0 SR0 SR0
|
||
|
||
111 SR1 SR1 SR1
|
||
|
||
|
||
|
||
Opcode Definitions
|