XMAC P,loc16,*(pma)
6-379
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 sum of product using 16-bit multiply:
; int16 X[N] ; Data information
; int16 C[N] ; Coefficient information, located in high 64K
; sum = 0;
; for(i=0; i < N; i++)
; sum = sum + (X[i] * C[i]) >> 5;
MOVL XAR2,#X
; XAR2 = pointer to X
SPM −5
; Set product shift to ”>> 5”
ZAPA
; Zero ACC, P, OVC
RPT #N−1
; Repeat next instruction N times
||XMAC P,*XAR2++,*(C)
; ACC = ACC + P >> 5,
; P = *XAR2++ * *C++
ADDL ACC,P << PM
; Perform final accumulate
MOVL @sum,ACC
; Store final result into sum
Содержание TMS320C28x
Страница 30: ...1 12...
Страница 80: ...This page intentionally left blank 2 50 This page intentionally left blank...
Страница 269: ...IN loc16 PA 6 112 MOV AL 0 AL 0 UOUT IORegC AL IOspace IORegC AL 10...
Страница 308: ...MAXCUL P loc32 6 151 Saturate MOVL Var64 2 ACC Store result into Var64 MOVL Var64 P...
Страница 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...
Страница 585: ...This page intentionally left blank 7 32 This page intentionally left blank...