Format |
Syntax: |
Operation: |
Operands: |
Architecture revision |
Opcode | ||||||||||||||
1 |
macwh.d Rd, Rx, Ry:<part> |
operand1 = Rx; If (Ry-part == t) then operand2 = SE(Ry[31:16]) else operand2 = SE(Ry[15:0]); (Rd+1:Rd)[63:16] = (operand1 × operand2)[47:0] + (Rd+1:Rd)[63:16]; Rd[15:0] = 0; |
d ∈ {0, 2, …, 14} {x, y} ∈ {0, 1, …, 15} part ∈ {t,b} |
Rev1+ |
|
Multiplies the word and halfword register specified and adds the result to the specified double- word-register. The halfword register is selected as either the high or low part of Ry. Only the 48 highest of the 64 possible bits in the doubleword accumulator are used. The 16 lowest bits are cleared.
Q: |
Not affected. |
V: |
Not affected. |
N: |
Not affected. |
Z: |
Not affected. |
C: |
Not affected. |
macwh.dR10, R2, R3:bwill perform (R11:R10)[63:16] = (R2 × SE(R3[15:0])) + (R11:R10)[63:16] R10[15:0] = 0