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