Encoding:

POOL32A

000000

rt

rs

rd

0

SRAV

0010010000

6

5

5

5

1

10

Format:

SRAV rd, rt, rs

microMIPS

Shift Word Right Arithmetic Variable

Purpose:

Shift Word Right Arithmetic Variable

To execute an arithmetic right-shift of a word by a variable number of bits.

Description:

 GPR[rd] = GPR[rt] >> GPR[rs]  (arithmetic)

The contents of the low-order 32-bit word of GPR rt are shifted right, duplicating the sign-bit (bit 31) in the emptied bits; the word result is sign-extended and placed in GPR rd. The bit-shift amount is specified by the low-order 5 bits of GPR rs.

Restrictions:

On 64-bit processors, if GPR rt does not contain a sign-extended 32-bit value (bits 63..31 equal), then the result of the operation is UNPREDICTABLE.

Operation:

if NotWordValue(GPR[rt]) then 
   UNPREDICTABLE 
endif
s = GPR[rs]4..0
temp = (GPR[rt]31)s || GPR[rt]31..s
GPR[rd] = sign_extend(temp)

Exceptions:

None