SPECIAL 000000 |
rs |
rt |
rd |
000 |
sa |
DLSA 010101 |
6 |
5 |
5 |
5 |
3 |
2 |
6 |
DLSA |
Doubleword Left Shift Add | |
DLSA rd,rs,rt,sa |
MSA |
Doubleword Left Shift Add |
Doubleword Left Shift Add
To left-shift a doubleword by a fixed number of bits and add the result to another doubleword.
GPR[rd] = (GPR[rs] << (sa + 1)) + GPR[rt]
The 64-bit doubleword value in GPR rs is shifted left, inserting zeros into the emptied bits; the 64-bit doubleword result is added to the 64-bit value in GPR rt and the 64-bit arithmetic result is placed into GPR rd.
No Integer Overflow exception occurs under any circumstances.
A Reserved Instruction Exception is signaled if access to 64-bit operations is not enabled or MSA implementation is not present.
if Are64bitOperationsEnabled() and Config3MSAP = 1 then s = sa + 1 temp = (GPR[rs](63-s)..0 || 0s) + GPR[rt] GPR[rd] = temp63..0 else SignalException(ReservedInstruction) endif
Reserved Instruction Exception.