Xilinx EDK 8.2i manual Instructions Barrel Shift Bsrl, Bsra, Bsll

Models: EDK 8.2i

1 148
Download 148 pages 28.91 Kb
Page 97
Image 97

Instructions

bs

Barrel Shift

 

 

 

bsrl

rD, rA, rB

Barrel Shift Right Logical

 

bsra

rD, rA, rB

Barrel Shift Right Arithmetical

 

bsll

rD, rA, rB

Barrel Shift Left Logical

R

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

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 bsra will set the T bit (Type bit). If the T bit is set, the barrel 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 use them, MicroBlaze has to be configured to use barrel shift instructions (C_USE_BARREL=1).

MicroBlaze Processor Reference Guide

www.xilinx.com

97

UG081 (v6.0) June 1, 2006

1-800-255-7778

 

Page 97
Image 97
Xilinx EDK 8.2i manual Instructions Barrel Shift Bsrl, Bsra, Bsll