QMPYL ACC,XT,loc32
6-305
QMPYL ACC,XT,loc32 Signed 32 X 32-bit Multiply (Upper Half)
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
QMPYL ACC,XT,loc32 0101 0110 0110 0011
0000 0000 LLLL LLLL
1 − 2
Operands P Product register
XT Multiplicand register
ACC Accumulator register
Description Multiply the signed 32-bit content of the XT register by the signed 32-bit
content of the location pointed to by the “loc32” addressing mode and store
the upper 32−bits of the 64-bit result (a Q30 number) in the ACC register:
ACC = (signed XT * signed [loc32]) >> 32;
Flags and
Modes
Z
After the operation, the Z flag is set if the ACC value is zero, else Z is cleared.
N
After the operation, the N flag is set if bit 31 of the ACC is 1, else N is cleared.
Repeat This instruction is not repeatable. If this instruction follows the RPT
instruction, it resets the repeat counter (RPTC) and executes only once.
Example
; Calculate signed result: Y64 = M32*X32
MOVL XT,@M32 ; XT = M32
IMPYL P,XT,@X32 ; P = low 32−bits of (M32*X32)
QMPYL ACC,XT,@X32 ; ACC = high 32−bits of (M32*X32)
MOVL @Y64+0,P ; Store result into Y64
MOVL @Y64+2,ACC