3 emac instruction set summary, 1 emac instruction execution timing, Emac instruction set summary -11 – Freescale Semiconductor MCF5480 User Manual

Page 159: Emac instruction execution timing -11

Advertising
background image

EMAC Instruction Set Summary

MCF548x Reference Manual, Rev. 3

Freescale Semiconductor

4-11

4.3

EMAC Instruction Set Summary

Table 4-3

summarizes EMAC unit instructions.

4.3.1

EMAC Instruction Execution Timing

The instruction execution times for the EMAC can be found in

Section 3.7, “Instruction Execution

Timing.”

The ColdFire family supports two multiply-accumulate implementations that provide different levels of

performance and capability for differing silicon costs. The EMAC features a four-stage execution pipeline,

optimized for 32-bit operands with a fully-pipelined 32

× 32 multiply array and four 48-bit accumulators.

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

move.l

Acc0, Rz

Table 4-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

Advertising
This manual is related to the following products: