MicroBlaze Processor Reference Guide www.xilinx.com 97
UG081 (v6.0) June 1, 2006 1-800-255-7778
Instructions
R
bs
Barrel Shift
Description
Shifts the contents of register rA by the amount specified in register rB and puts the result
in register rD.
The mnemonic bsll sets the S bit (Side bit). If the S bit is set, the barrel shift is done to the
left. The mnemonics bsrl and bsra clear the S bit and the shift is done to the right.
The mnemonic bsrawill set theT bit(Type bit). Ifthe Tbit isset, thebarrel shift performed
is Arithmetical. The mnemonics bsrl and bsll clear the T bit and the shift performed is
Logical.
Pseudocode
if S = 1 then
(rD) (rA) << (rB)[27:31]
else
if T = 1 then
if ((rB)[27:31]) 0 then
(rD)[0:(rB)[27:31]-1] (rA)[0]
(rD)[(rB)[27:31]:31] (rA) >> (rB)[27:31]
else
(rD) (rA)
else
(rD) (rA) >> (rB)[27:31]
Registers Altered
rD
Latency
1 cycle.
Note
These instructions are optional. To usethem, MicroBlaze has tobe configuredto use barrel
shift instructions (C_USE_BARREL=1).
bsrl rD, rA, rB Barrel Shift Right Logical
bsra rD, rA, rB Barrel Shift Right Arithmetical
bsll rD, rA, rB Barrel Shift Left Logical
0 1 0 0 0 1 rD rA rB S T 0 0 0 0 0 0 0 0 0
0 6 11 16 21 31