SLLI — Shift Left Logical Immediate

Instruction Word

Slot
Inst
6
3
6
2
6
1
6
0
5
9
5
8
5
7
5
6
5
5
5
4
5
3
5
2
5
1
5
0
4
9
4
8
4
7
4
6
4
5
4
4
4
3
4
2
4
1
4
0
3
9
3
8
3
7
3
6
3
5
3
4
3
3
3
2
3
1
3
0
2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
1
9
1
8
1
7
1
6
1
5
1
4
1
3
1
2
1
1
1
0
9876543210
Format x24 - 24 bit(s) 0
SLLI 000 0001 0000
r 3210
s 3210
sal 4 3210

Assembler Syntax

SLLI ar, as, 1..31

C Syntax

#include <xtensa/tie/xt_core.h>

extern int XT_SLLI(int s, immediate i);

Description

(please consult the Xtensa ® Instruction Set Architecture Reference Manual for any cross references and additional information)

SLLI shifts the contents of address register as left by a constant amount in the range 1..31 encoded in the instruction. The shift amount sa field is split, with bits 3..0 in bits 7..4 of the instruction word and bit 4 in bit 20 of the instruction word. The shift amount is encoded as 32shift. When the sa field is 0, the result of this instruction is undefined.

Operation

AR[r] ← (AR[s]||032)31+sa..sa

Exceptions

EveryInstR Group (see EveryInstR Group:)

Implementation Pipeline

In Out
ars Estage arr Estage

Protos that use SLLI

proto SLLI { out int32 r, in int32 s, in immediate i }{}{
SLLI r, s, i + 0;
}