Arithmetic Shift Left

 

SHL

 

 

 

 

Arithmetic Shift Left

 

 

 

 

 

 

 

 

 

 

 

SHL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Syntax

 

 

 

 

SHL (.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

xsint

 

.S1, .S2

11 0011

 

 

 

 

src1

uint

 

 

 

 

 

 

 

dst

sint

 

 

 

 

 

 

 

src2

slong

 

.S1, .S2

11 0001

 

 

 

 

src1

uint

 

 

 

 

 

 

 

dst

slong

 

 

 

 

 

 

 

src2

xuint

 

.S1, .S2

01 0011

 

 

 

 

src1

uint

 

 

 

 

 

 

 

dst

ulong

 

 

 

 

 

 

 

src2

xsint

 

.S1, .S2

11 0010

 

 

 

 

src1

ucst5

 

 

 

 

 

 

 

dst

sint

 

 

 

 

 

 

 

src2

slong

 

.S1, .S2

11 0000

 

 

 

 

src1

ucst5

 

 

 

 

 

 

 

dst

slong

 

 

 

 

 

 

 

src2

xuint

 

.S1, .S2

01 0010

 

 

 

 

src1

ucst5

 

 

 

 

 

 

 

dst

ulong

 

 

 

 

 

 

 

 

 

 

 

 

 

Description

The src2 operand is shifted to the left by the src1 operand. The 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 is used, valid shift amounts are 0−31.

 

If 39 < src1 < 64, src2 is shifted to the left 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 << src1 dst

 

else nop

 

SPRU733

Instruction Set

3-213

Page 273
Image 273
Texas Instruments TMS320C67X/C67X+ DSP manual Arithmetic Shift Left, Shl