MOV (to/from SP)

Move register value to or from SP

This instruction copies the value of a register to or from the stack pointer.

Encoding: Not setting the condition flags

313029282726252423222120191817161514131211109876543210
001000100000000000000
sfopSshimm12RnRd

32-bit (sf == 0)

MOV <Wd|WSP>, <Wn|WSP>

Equivalent to: ADD <Wd|WSP>, <Wn|WSP>, #0

64-bit (sf == 1)

MOV <Xd|SP>, <Xn|SP>

Equivalent to: ADD <Xd|SP>, <Xn|SP>, #0

Explanations

<Wd|WSP>: Is the 32-bit name of the destination general-purpose register or stack pointer, encoded in the "Rd" field.
<Wn|WSP>: Is the 32-bit name of the source general-purpose register or stack pointer, encoded in the "Rn" field.
<Xd|SP>: Is the 64-bit name of the destination general-purpose register or stack pointer, encoded in the "Rd" field.
<Xn|SP>: Is the 64-bit name of the source general-purpose register or stack pointer, encoded in the "Rn" field.

Operational Notes

If PSTATE.DIT is 1: