Motorola MCF5281 用户手册

下载
页码 816
3-12
MCF5282 User’s Manual
MOTOROLA
 
EMAC Instruction Set Summary  
3.5
EMAC Instruction Set Summary
3.5.1
EMAC Instruction Execution Times
The instruction execution times for the EMAC can be found in Section 2.12, “EMAC
Instruction Execution Times.”
The EMAC execution pipeline overlaps the AGEX stage of the OEP; that is, the first stage
of the EMAC pipeline is the last stage of the basic OEP. EMAC units are designed for
sustained, fully-pipelined operation on accumulator load, copy, and multiply-accumulate
instructions. However, instructions that store contents of the multiply-accumulate
programming model can generate OEP stalls that expose the EMAC execution pipeline
depth, as in the following:
mac.w
Ry, Rx, Acc0
mov.l
Acc0, Rz
Table 3-3. EMAC Instruction Summary
Command
Mnemonic
Description
Multiply Signed
MULS <ea>y,Dx
Multiplies two signed operands yielding a signed result
Multiply Unsigned
MULU <ea>y,Dx
Multiplies two unsigned operands yielding an unsigned result
Multiply Accumulate
MAC Ry,RxSF,ACCx
MSAC Ry,RxSF,ACCx
Multiplies two operands and adds/subtracts the product to/from an 
accumulator
Multiply Accumulate 
with Load
MAC  Ry,Rx,<ea>y,Rw,ACCx
MSAC Ry,Rx,<ea>y,Rw,ACCx
Multiplies two operands and combines the product to an 
accumulator while loading a register with the memory operand
Load Accumulator
MOV.L {Ry,#imm},ACCx
Loads an accumulator with a 32-bit operand
Store Accumulator
MOV.L ACCx,Rx
Writes the contents of an accumulator to a CPU register
Copy Accumulator
MOV.L ACCy,ACCx
Copies a 48-bit accumulator
Load MACSR
MOV.L {Ry,#imm},MACSR
Writes a value to MACSR
Store MACSR
MOV.L MACSR,Rx
Write the contents of MACSR to a CPU register
Store MACSR to CCR
MOV.L MACSR,CCR
Write the contents of MACSR to the CCR 
Load MAC Mask Reg
MOV.L {Ry,#imm},MASK
Writes a value to the MASK register
Store MAC Mask Reg
MOV.L MASK,Rx
Writes the contents of the MASK to a CPU register
Load AccExtensions01
MOV.L {Ry,#imm},ACCext01
Loads the accumulator 0,1 extension bytes with a 32-bit operand
Load AccExtensions23
MOV.L {Ry,#imm},ACCext23
Loads the accumulator 2,3 extension bytes with a 32-bit operand
Store AccExtensions01
MOV.L ACCext01,Rx
Writes the contents of accumulator 0,1 extension bytes into a CPU 
register
Store AccExtensions23
MOV.L ACCext23,Rx
Writes the contents of accumulator 2,3 extension bytes into a CPU 
register