1// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s | FileCheck %s
2// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
3
4//------------------------------------------------------------------------------
5// Virtualization Enhancements
6//------------------------------------------------------------------------------
7
8  msr   VSTCR_EL2, x0
9  msr   VSTTBR_EL2, x0
10  msr   SDER32_EL2, x12
11  msr   CNTHVS_TVAL_EL2, x0
12  msr   CNTHVS_CVAL_EL2, x0
13  msr   CNTHVS_CTL_EL2, x0
14  msr   CNTHPS_TVAL_EL2, x0
15  msr   CNTHPS_CVAL_EL2, x0
16  msr   CNTHPS_CTL_EL2, x0
17
18//CHECK:  msr VSTCR_EL2, x0           // encoding: [0x40,0x26,0x1c,0xd5]
19//CHECK:  msr VSTTBR_EL2, x0          // encoding: [0x00,0x26,0x1c,0xd5]
20//CHECK:  msr SDER32_EL2, x12         // encoding: [0x2c,0x13,0x1c,0xd5]
21//CHECK:  msr CNTHVS_TVAL_EL2, x0     // encoding: [0x00,0xe4,0x1c,0xd5]
22//CHECK:  msr CNTHVS_CVAL_EL2, x0     // encoding: [0x40,0xe4,0x1c,0xd5]
23//CHECK:  msr CNTHVS_CTL_EL2, x0      // encoding: [0x20,0xe4,0x1c,0xd5]
24//CHECK:  msr CNTHPS_TVAL_EL2, x0     // encoding: [0x00,0xe5,0x1c,0xd5]
25//CHECK:  msr CNTHPS_CVAL_EL2, x0     // encoding: [0x40,0xe5,0x1c,0xd5]
26//CHECK:  msr CNTHPS_CTL_EL2, x0      // encoding: [0x20,0xe5,0x1c,0xd5]
27
28//CHECK-ERROR: error: expected writable system register or pstate
29//CHECK-ERROR: error: expected writable system register or pstate
30//CHECK-ERROR: error: expected writable system register or pstate
31//CHECK-ERROR: error: expected writable system register or pstate
32//CHECK-ERROR: error: expected writable system register or pstate
33//CHECK-ERROR: error: expected writable system register or pstate
34//CHECK-ERROR: error: expected writable system register or pstate
35//CHECK-ERROR: error: expected writable system register or pstate
36//CHECK-ERROR: error: expected writable system register or pstate
37