Instructions
www.ti.com
MACF32 R3H, R2H, RdH, ReH, RfH
MOV32 RaH, mem32
32-bit Floating-Point Multiply and Accumulate with Parallel Move
Operands
R3H
floating-point destination/source register R3H for the add operation
R2H
floating-point source register R2H for the add operation
RdH
floating-point destination register (R0H to R7H) for the multiply operation
RdH cannot be the same register as RaH
ReH
floating-point source register (R0H to R7H) for the multiply operation
RfH
floating-point source register (R0H to R7H) for the multiply operation
RaH
floating-point destination register for the MOV32 operation (R0H to R7H).
RaH cannot be R3H or the same register as RdH.
mem32
32-bit source for the MOV32 operation
Opcode
LSW: 1110 0011
0011 fffe
MSW: eedd daaa
mem32
Description
Multiply and accumulate the contents of floating-point registers and move from register
to memory. The destination register for the MOV32 cannot be the same as the
destination registers for the MACF32.
R3H = R3H + R2H,
RdH = ReH * RfH,
RaH = [mem32]
Restrictions
The destination registers for the MACF32 and the MOV32 must be unique. That is, RaH
cannot be R3H and RaH cannot be the same register as RdH.
Flags
This instruction modifies the following flags in the STF register:
Flag
TF
ZI
NI
ZF
NF
LUF
LVF
Modified
No
Yes
Yes
Yes
Yes
Yes
Yes
The STF register flags are modified as follows:
•
LUF = 1 if MACF32 (add or multiply) generates an underflow condition.
•
LVF = 1 if MACF32 (add or multiply) generates an overflow condition.
MOV32 sets the NF, ZF, NI and ZI flags as follows:
NF = RaH(31);
ZF = 0;
if(RaH(30:23) == 0) { ZF = 1; NF = 0; }
NI = RaH(31);
ZI = 0;
if(RaH(31:0) == 0) ZI = 1;
Pipeline
The MACF32 takes 2 pipeline cycles (2p) and the MOV32 takes a single cycle. That is:
MACF32
R3H, R2H, RdH, ReH, RfH
; 2 pipeline cycles (2p)
|| MOV32
RaH, mem32
; 1 cycle
; <-- MOV32 completes, RaH updated
NOP
; 1 cycle delay for MACF32
; <-- MACF32 completes, R3H, RdH updated
NOP
Any instruction in the delay slot for this version of MACF32 must not use R3H or RdH as
a destination register or R3H or RdH as a source operand.
64
Instruction Set
SPRUEO2A – June 2007 – Revised August 2008
Содержание TMS320C28 series
Страница 2: ...2 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...
Страница 12: ...Introduction 12 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...
Страница 20: ...CPU Register Set 20 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...
Страница 136: ...Instruction Set 136 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...