![background image](http://html1.mh-extra.com/html/texas-instruments/tms320c28x/tms320c28x_reference-manual_1097071538.webp)
XMACD P,loc16,*(pma)
6-381
OVM
If overflow mode bit is set, the ACC value will saturate maximum positive
(0x7FFFFFFF) or maximum negative (0x80000000) if the operation
overflowed.
PM
The value in the PM bits sets the shift mode for the output operation from the
product register. If the product shift value is positive (logical left shift
operation), then the low bits are zero filled. If the product shift value is
negative (arithmetic right shift operation), the upper bits are sign extended.
Repeat
This instruction is repeatable. If the operation follows a RPT instruction,
then it will be executed N+1 times. The state of the Z, N, C and OVC flags
will reflect the final result. The V flag will be set if an intermediate overflow
occurs. When repeated, the program-memory address is incremented by
1 during each repetition.
Example
; Calculate FIR filter using 16-bit multiply:
; int16 X[N] ; Data information
; int16 C[N] ; Coefficient information, located in high 64K
; sum = X[N−1] * C[0];
; for(i=1; i < N; i++)
; {
; sum = sum + (X[N−1−i] * C[i]) >> 5;
; X[N−i] = X[N−1−i];
; }
; X[1] = X[0];
MOVL XAR2,#X+N
; XAR2 = point to end of X array
SPM −5
; Set product shift to ”>> 5”
ZAPA
; Zero ACC, P, OVC
XMAC P,*−−XAR2,*(C)
; ACC = 0, P = X[N−1] * C[0]
RPT #N−2
; Repeat next instruction N−1 times
||XMACD P,*−−XAR2,*(C+1)
; ACC = ACC + P >> 5,
; P = X[N−1−i] * C[i],
; i++
MOV *+XAR2[2],T
; X[1] = X[0]
ADDL ACC,P << PM
; Perform final accumulate
MOVL @sum,ACC
; Store final result into sum
Summary of Contents for TMS320C28x
Page 30: ...1 12...
Page 80: ...This page intentionally left blank 2 50 This page intentionally left blank...
Page 269: ...IN loc16 PA 6 112 MOV AL 0 AL 0 UOUT IORegC AL IOspace IORegC AL 10...
Page 308: ...MAXCUL P loc32 6 151 Saturate MOVL Var64 2 ACC Store result into Var64 MOVL Var64 P...
Page 509: ...SUBL ACC P PM 6 352 SUBL ACC P PM ACC S B 11 M X 4 MOVH Y ACC 5 Store Q15 result into Y...
Page 585: ...This page intentionally left blank 7 32 This page intentionally left blank...