POOL32A 000000 |
rt |
rs |
sa |
0 |
APPEND 1000010101 |
6 |
5 |
5 |
5 |
1 |
10 |
SPECIAL3 011111 |
rs |
rt |
sa |
APPEND 00000 |
APPEND 110001 |
6 |
5 |
5 |
5 |
5 |
6 |
APPEND rt, rs, sa |
microMIPSDSP-R2 |
Left Shift and Append Bits to the LSB |
Left Shift and Append Bits to the LSB
Shift a general-purpose register left, inserting bits from the another GPR into the bit positions emptied by the shift.
rt = sign_extend((rt31..0 << sa4..0) || rssa-1..0
The right-most 32-bit value in register rt is left-shifted by the specified shift amount sa, and sa bits from the least-significant positions of the rs register are inserted into the bit positions in rt emptied by the shift. The 32-bit shifted value is sign-extended to 64 bits and written to destination register rt.
No data-dependent exceptions are possible.
The operands must be a value in the specified format. If they are not, the results are UNPREDICTABLE and the values of the operand vectors become UNPREDICTABLE.
if ( sa4..0 = 0 ) then temp31..0 = GPR[rt]31..0 else temp31..0 = ( GPR[rt]31-sa..0 || GPR[rs]sa-1..0 ) endif GPR[rt]63..0 = (temp31)32 || temp31..0
Reserved Instruction, DSP Disabled