Encoding:

SPECIAL

000000

rs

rt

rd

000

sa

DLSA

010101

6

5

5

5

3

2

6

Format:

DLSA 

Doubleword Left Shift Add

DLSA rd,rs,rt,sa

MSA

Doubleword Left Shift Add

Purpose:

Doubleword Left Shift Add

To left-shift a doubleword by a fixed number of bits and add the result to another doubleword.

Description:

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.

Restrictions:

A Reserved Instruction Exception is signaled if access to 64-bit operations is not enabled or MSA implementation is not present.

Operation:

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

Exceptions:

Reserved Instruction Exception.