msr

Move to System Register

MSR <system_reg>, <Xt>

Moves general-purpose register to system register.

Pseudocode Operation

SystemRegister[system_reg] ← Xt

Example

MSR system_reg, x3

Encoding

Binary Layout
1101010100
31:22
0
21
1
20
o0
19
op1
18:16
CRn
15:12
CRm
11:8
op2
7:5
Rt
4:0
 
Format System
Opcode 0xD5100000
Extension System

Operands

  • system_reg
    Sys Reg
  • Xt
    Transfer 64-bit integer register (load/store)

Related

Other forms of msr

  • msr Move to Special Register (Banked)
  • msr Move Immediate to Special Register (A32)
  • msr Move Immediate to Special Register (Thumb)
  • msr Move Register to Special Register (Thumb)
  • msr Move Register to Status Register

More in System

Reference

Instruction Forms

Encoding Instruction ISA Bit pattern
0xD500401F MSR <pstatefield>, #<imm> A64 1101010100000 | op1 | 0100 | CRm | op2 | 11111
0xD5100000 MSR (<systemreg>|S<op0>_<op1>_<Cn>_<Cm>_<op2>), <Xt> A64 1101010100 | 0 | 1 | o0 | op1 | CRn | CRm | op2 | Rt

Description

Move general-purpose register to System Register allows the PE to write an AArch64 System register from a general-purpose register.

Operation

AArch64.SysRegWrite(sys_op0, sys_op1, sys_crn, sys_crm, sys_op2, t);