35.3.3.4. INTEGER SHIFT/ROTATE ON MIPS
+------------------------------+
| Len Value |
| 6 0 |
| 5 0 |
| 5 rt |
| 5 rd |
| 5 sa |
| 5 xx |
+------------------------------+
Command xx
DSLL rd,rt,sa 11 1000 Doubleword Shift Left Logical
rd <- rt << sa (MIPS III)
DSLL32 rd,rt,sa 11 1100 Doubleword Shift Left Logical plus 32
rd <- rt << (sa+32) (MIPS III)
DSRA rd,rt,sa 11 1011 Doubleword Shift Right Arithmetic
rd <- rt >>> sa (MIPS III)
DSRA32 rd,rt,sa 11 1011 Doubleword Shift Right Arithmetic
rd <- rt >>> (sa +32) plus 32 (MIPS III)
DSRL rd,rt,sa 11 1010 Doubleword Shift Right Logical
rd <- rt >> sa (MIPS III)
DSRL32 rd,rt,sa 11 1110 Doubleword Shift Right Logical
rd <- rt >> (sa+32) plus 32 (MIPS III)
SLL rd,rt,sa 00 0000 Shift word left Logical
rd <- rt << sa (32-bit parts)
SRA rd,rt,sa 00 0011 Shift word Right Arithmetic
rd <- rt >>> sa (32-bit)
SRL rd,rs,sa 00 0010 Shift Word Right Logical
rd <- rt >> sa (32-bit)
+------------------------------+
| Len Value |
| 6 0 |
| 5 rs |
| 5 rt |
| 5 rd |
| 5 0 |
| 5 xx |
+------------------------------+
Command xx
DSLLV rd,rt,rs 01 0100 Doubleword Shift Left Logical Variable
rd <- rt << rs (MIPS III)
DSRAV rd,rt,rs 01 0111 Doubleword Shift Right Arithmetic
rd <- rt >>> rs Variable (MIPS III)
DSRLV rd,rt,rs 01 0110 Doubleword Shift Right Logical Variable
rd <- rt >> rs (MIPS III)
SLLV rd,rt,rs 00 0100 Shift Word Left Logical Variable
rd <- rt << rs (32bit)
SRAV rd,rt,rs 00 0111 Shift Word Right Arithmetic Variable
rd <- rt >>> rs (32bit)
SRLV rd,rt,rs 00 0110 Shift Word Right Logical Variable
rd <- rt >> rs (32-bit)
Note: 32bit operations perform only on low 32-bit parts of registers!!
// ----------------------------------------------------------------------
Index Prev Next