www.ti.com
Instructions
MACF32 can also be used standalone. In this case, the insruction takes 2 cycles and the
following pipeline restrictions apply:
<instruction1>
; No restriction
<instruction2>
; Cannot be a 2p instruction that writes
; to R2H, R3H, R6H or R7H
MACF32 R7H, R3H, *XAR6, *XAR7
; R3H = R3H + R2H, R2H = [mem32] * [XAR7++]
; <-- R2H and R3H are valid (note: no
delay required)
NOP
Example
ZERO R2H
; Zero the accumulation registers
ZERO R3H
; and temporary multiply storage registers
ZERO R6H
ZERO R7H
RPT
#3
; Repeat MACF32 N+1 (4) times
|| MACF32 R7H, R3H, *XAR6++, *XAR7++
ADDF32 R7H, R7H, R3H
; Final accumulate
NOP
; <-- ADDF32 completes, R7H valid
NOP
Cascading of RPT || MACF32 is allowed as long as the first and subsequent counts are
even. Cascading is useful for creating interruptible windows so that interrupts are not
delayed too long by the RPT instruction. For example:
ZERO R2H
; Zero the accumulation registers
ZERO R3H
; and temporary multiply storage registers
ZERO R6H
ZERO R7H
RPT
#3
; Execute MACF32 N+1 (4) times
|| MACF32 R7H, R3H, *XAR6++, *XAR7++
RPT
#5
; Execute MACF32 N+1 (6) times
|| MACF32 R7H, R3H, *XAR6++, *XAR7++
RPT
#N
; Repeat MACF32 N+1 times where N+1 is even
|| MACF32 R7H, R3H, *XAR6++, *XAR7++
ADDF32 R7H, R7H, R3H
; Final accumulate
NOP
; <-- ADDF32 completes, R7H valid
See also
MACF32 R3H, R2H, RdH, ReH, RfH || MOV32 RaH, mem32
MACF32 R7H, R6H, RdH, ReH, RfH || MOV32 RaH, mem32
MPYF32 RaH, RbH, RcH || ADDF32 RdH, ReH, RfH
SPRUEO2A – June 2007 – Revised August 2008
Instruction Set
67
Summary of Contents for TMS320C28 series
Page 2: ...2 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...
Page 12: ...Introduction 12 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...
Page 20: ...CPU Register Set 20 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...
Page 136: ...Instruction Set 136 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...