Arithmetic Shift Right SHR
3-215 Instruction SetSPRU733
Arithmetic Shift Right
SHR
Syntax SHR (.unit) src2, src1, dst
.unit = .S1 or .S2
Compatibility C62x, C64x, C67x, and C67x+ CPU
Opcode
31 29 28 27 23 22 18 17 13 12 11 6 5 4 3 2 1 0
creg z dst src2 src1 x op 1 0 0 0 s p
3 1 5 5 5 1 6 1 1
Opcode map field used... For operand type... Unit Opfield
src2
src1
dst
xsint
uint
sint
.S1, .S2 11 0111
src2
src1
dst
slong
uint
slong
.S1, .S2 11 0101
src2
src1
dst
xsint
ucst5
sint
.S1, .S2 11 0110
src2
src1
dst
slong
ucst5
slong
.S1, .S2 11 0100
Description The src2 operand is shifted to the right by the src1 operand. The sign-extended
result is placed in dst. When a register is used, the six LSBs specify the shift
amount and valid values are 0−40. When an immediate value is used, valid
shift amounts are 0–31.
If 39
< src1 < 64, src2 is shifted to the right by 40. Only the six LSBs of src1 are
used by the shifter, so any bits set above bit 5 do not affect execution.
Execution if (cond) src2
>>s src1 → dst
else nop