MOV (wide immediate)

Move wide immediate value

This instruction moves a 16-bit immediate value to a register.

Encoding: Immediate packed into 16-bit value and 2-bit shift

313029282726252423222120191817161514131211109876543210
10100101
sfopchwimm16Rd

32-bit (sf == 0 && hw == 0x)

MOV <Wd>, #<imm>

Equivalent to: MOVZ <Wd>, #<imm16>, LSL #<shift>

64-bit (sf == 1)

MOV <Xd>, #<imm>

Equivalent to: MOVZ <Xd>, #<imm16>, LSL #<shift>

Explanations

<Wd>: Is the 32-bit name of the general-purpose destination register, encoded in the "Rd" field.
<imm>: For the "32-bit" variant: is a 32-bit immediate which can be encoded in "imm16:hw".
<imm>: For the "64-bit" variant: is a 64-bit immediate which can be encoded in "imm16:hw".
<Xd>: Is the 64-bit name of the general-purpose destination register, encoded in the "Rd" field.

Operational Notes

If PSTATE.DIT is 1: