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 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Format x24 - 24 bit(s) | 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SRC | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
r | 3 | 2 | 1 | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s | 3 | 2 | 1 | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
t | 3 | 2 | 1 | 0 |
SRC ar, as, at
extern int XT_SRC(int s, int t);
(please consult the Xtensa ® Instruction Set Architecture Reference Manual for any cross references and additional information)
SRC
performs a right shift of the concatenation of address registers as
and at
by the shift amount in SAR
. The least significant 32 bits of the shift result are written to address register ar
. A shift with a wider input than output is called a funnel shift. SRC
directly performs right funnel shifts. Left funnel shifts are done by swapping the high and low operands to SRC
and setting SAR
to 32 minus the shift amount. The SSL
and SSA8B
instructions directly implement such SAR
settings. Note the result of SRC
is undefined if SAR
>
32
.
sa ← SAR5..0 AR[r] ← (AR[s]||AR[t])31+sa..sa
In | Out |
---|---|
SAR Estage , ars Estage , art Estage
|
arr Estage
|