QMPYL P,XT,loc32
6-304
QMPYL P,XT,loc32 Signed 32 X 32-bit Multiply (Upper Half)
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
QMPYL P,XT,loc32 0101 0110 0110 0111
0000 0000 LLLL LLLL
1 − 1
Operands
P Product register
XT Multiplicand register
loc32 Addressing mode (see Chapter 5)
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 P register:
P = (signed XT * signed [loc32]) >> 32;
Flags and
Modes
None
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 + B64
MOVL XT,@M32 ; XT = M32
IMPYL P,XT,@X32 ; P = low 32−bits of (M32*X32)
MOVL ACC,@B64+2 ; ACC = high 32−bits of B64
ADDUL P,@B64+0 ; P = P + low 32−bits of B64
MOVL @Y64+0,P ; Store low 32-bit result into Y64
QMPYL P,XT,@X32 ; P = high 32−bits of (M32*X32)
ADDCL ACC,@P ; ACC = ACC + P + carry
MOVL @Y64+2,ACC ; Store high 32-bit result into Y64