www.ti.com
Example
;
;
;
;
;
;
;
;
;
||
MACF32 R7H, R3H, mem32, *XAR7++
See also
MACF32 R3H, R2H, RdH, ReH, RfH || MOV32 RaH, mem32
MPYF32 RaH, RbH, RcH || ADDF32 RdH, ReH, RfH
SPRUEO2A – June 2007 – Revised August 2008
Submit Documentation Feedback
Perform 5 multiply and accumulate operations:
1st multiply: A = X0 * Y0
2nd multiply: B = X1 * Y1
3rd multiply: C = X2 * Y2
4th multiply: D = X3 * Y3
5th multiply: E = X3 * Y3
Result = A + B + C + D + E
MOV32
R0H, *XAR4++
MOV32
R1H, *XAR5++
MPYF32 R6H, R0H, R1H
|| MOV32
R0H, *XAR4++
MOV32
R1H, *XAR5++
MPYF32 R7H, R0H, R1H
|| MOV32
R0H, *XAR4++
MOV32
R1H, *XAR5++
MACF32 R7H, R6H, R6H, R0H, R1H ; In parallel R0H = X3
|| MOV32
R0H, *XAR4++
MOV32
R1H, *XAR5++
MACF32 R7H, R6H, R6H, R0H, R1H ; In parallel R0H = X4
MOV32
R0H, *XAR4
MOV32
R1H, *XAR5
MPYF32 R6H, R0H, R1H
|| ADDF32 R7H, R7H, R6H
NOP
ADDF32 R7H, R7H, R6H
NOP
MOV32
@Result, R7H
; R0H = X0
; R1H = Y0
; R6H = A = X0 * Y0
; In parallel R0H = X1
; R1H = Y1
; R7H = B = X1 * Y1
; In parallel R0H = X2
; R1H = Y2
; R7H = A + B
; R6H = C = X2 * Y2
; R1H = Y3
; R7H = (A + B) + C
; R6H = D = X3 * Y3
; R1H = Y4
; R6H = E = X4 * Y4
; in parallel R7H = (A + B + C) + D
; Wait for MPYF32 || ADDF32 to complete
; R7H = (A + B + C + D) + E
; Wait for ADDF32 to complete
; Store the result
Instructions
Instruction Set
71
Need help?
Do you have a question about the TMS320C28 series and is the answer not in the manual?