LSL (immediate)
Logical shift left (immediate)
This instruction shifts a register value left by an immediate
number of bits, shifting in zeros, and writes the result to the destination
register.
If PSTATE.DIT is 1:
The execution time of this instruction is independent of:
The values of the data supplied in any of its registers.
The values of the NZCV flags.
The response of this instruction to asynchronous exceptions does not vary based on:
The values of the data supplied in any of its registers.
The values of the NZCV flags.
UBFM
1
0
1
0
0
1
1
0
0
0
Z
N
N
N
N
N
LSL <Wd>, <Wn>, #<shift>
UBFM <Wd>, <Wn>, #(-<shift> MOD 32), #(31-<shift>)
UInt(imms) + 1 == UInt(immr)
1
1
N
N
N
N
N
N
LSL <Xd>, <Xn>, #<shift>
UBFM <Xd>, <Xn>, #(-<shift> MOD 64), #(63-<shift>)
UInt(imms) + 1 == UInt(immr)
<Wd>
Is the 32-bit name of the general-purpose destination register, encoded in the "Rd" field.
<Wn>
Is the 32-bit name of the general-purpose source register, encoded in the "Rn" field.
<shift>
For the 32-bit variant: is the shift amount, in the range 0 to 31.
<shift>
For the 64-bit variant: is the shift amount, in the range 0 to 63.
<Xd>
Is the 64-bit name of the general-purpose destination register, encoded in the "Rd" field.
<Xn>
Is the 64-bit name of the general-purpose source register, encoded in the "Rn" field.