1// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding < %s 2> %t | FileCheck %s --check-prefix=CHECK
2// RUN: FileCheck --check-prefix=CHECK-RO < %t %s
3
4//------------------------------------------------------------------------------
5// ARMV8.4-A RAS Extensions
6//------------------------------------------------------------------------------
7
8// Read/Write registers:
9
10  msr ERXPFGCTL_EL1, x0
11  mrs x0,ERXPFGCTL_EL1
12
13//CHECK:  msr ERXPFGCTL_EL1, x0       // encoding: [0xa0,0x54,0x18,0xd5]
14//CHECK:  mrs x0, ERXPFGCTL_EL1       // encoding: [0xa0,0x54,0x38,0xd5]
15
16  msr ERXPFGCDN_EL1, x0
17  mrs x0,ERXPFGCDN_EL1
18
19//CHECK:  msr ERXPFGCDN_EL1, x0       // encoding: [0xc0,0x54,0x18,0xd5]
20//CHECK:  mrs x0, ERXPFGCDN_EL1       // encoding: [0xc0,0x54,0x38,0xd5]
21
22  msr ERXMISC2_EL1, x0
23  mrs x0, ERXMISC2_EL1
24
25//CHECK:   msr ERXMISC2_EL1, x0        // encoding: [0x40,0x55,0x18,0xd5]
26//CHECK:   mrs x0, ERXMISC2_EL1        // encoding: [0x40,0x55,0x38,0xd5]
27
28  msr ERXMISC3_EL1, x0
29  mrs x0, ERXMISC3_EL1
30
31//CHECK:  msr ERXMISC3_EL1, x0        // encoding: [0x60,0x55,0x18,0xd5]
32//CHECK:  mrs x0, ERXMISC3_EL1        // encoding: [0x60,0x55,0x38,0xd5]
33
34// Read-only registers:
35
36  mrs x0,ERXPFGF_EL1
37  msr ERXPFGF_EL1, x0
38
39//CHECK:  mrs x0, ERXPFGF_EL1         // encoding: [0x80,0x54,0x38,0xd5]
40//CHECK-RO: error: expected writable system register or pstate
41