xref: /llvm-project/llvm/test/MC/AArch64/armv8.6a-fgt.s (revision 2050e7ebe18cc4cf906d9b54d17ee885cd868327)
1// RUN:     llvm-mc -triple aarch64 -show-encoding -mattr=+fgt   < %s | FileCheck %s
2// RUN:     llvm-mc -triple aarch64 -show-encoding -mattr=+v8.6a < %s | FileCheck %s
3// RUN: not llvm-mc -triple aarch64 -show-encoding  < %s 2>&1         | FileCheck %s --check-prefix=NOFGT
4
5msr HFGRTR_EL2, x0
6msr HFGWTR_EL2, x5
7msr HFGITR_EL2, x10
8msr HDFGRTR_EL2, x15
9msr HDFGWTR_EL2, x20
10msr HAFGRTR_EL2, x25
11// CHECK: msr     HFGRTR_EL2, x0          // encoding: [0x80,0x11,0x1c,0xd5]
12// CHECK: msr     HFGWTR_EL2, x5          // encoding: [0xa5,0x11,0x1c,0xd5]
13// CHECK: msr     HFGITR_EL2, x10         // encoding: [0xca,0x11,0x1c,0xd5]
14// CHECK: msr     HDFGRTR_EL2, x15        // encoding: [0x8f,0x31,0x1c,0xd5]
15// CHECK: msr     HDFGWTR_EL2, x20        // encoding: [0xb4,0x31,0x1c,0xd5]
16// CHECK: msr     HAFGRTR_EL2, x25        // encoding: [0xd9,0x31,0x1c,0xd5]
17// NOFGT: error: expected writable system register or pstate
18// NOFGT: error: expected writable system register or pstate
19// NOFGT: error: expected writable system register or pstate
20// NOFGT: error: expected writable system register or pstate
21// NOFGT: error: expected writable system register or pstate
22// NOFGT: error: expected writable system register or pstate
23
24mrs x30,  HFGRTR_EL2
25mrs x25,  HFGWTR_EL2
26mrs x20,  HFGITR_EL2
27mrs x15,  HDFGRTR_EL2
28mrs x10,  HDFGWTR_EL2
29mrs x5,   HAFGRTR_EL2
30// CHECK: mrs     x30, HFGRTR_EL2         // encoding: [0x9e,0x11,0x3c,0xd5]
31// CHECK: mrs     x25, HFGWTR_EL2         // encoding: [0xb9,0x11,0x3c,0xd5]
32// CHECK: mrs     x20, HFGITR_EL2         // encoding: [0xd4,0x11,0x3c,0xd5]
33// CHECK: mrs     x15, HDFGRTR_EL2        // encoding: [0x8f,0x31,0x3c,0xd5]
34// CHECK: mrs     x10, HDFGWTR_EL2        // encoding: [0xaa,0x31,0x3c,0xd5]
35// CHECK: mrs     x5, HAFGRTR_EL2         // encoding: [0xc5,0x31,0x3c,0xd5]
36// NOFGT: error: expected readable system register
37// NOFGT: error: expected readable system register
38// NOFGT: error: expected readable system register
39// NOFGT: error: expected readable system register
40// NOFGT: error: expected readable system register
41// NOFGT: error: expected readable system register
42
43
44mrs x3, HDFGRTR2_EL2
45mrs x3, HDFGWTR2_EL2
46mrs x3, HFGRTR2_EL2
47mrs x3, HFGWTR2_EL2
48mrs x3, HFGITR2_EL2
49// CHECK: mrs     x3, HDFGRTR2_EL2                // encoding: [0x03,0x31,0x3c,0xd5]
50// CHECK: mrs     x3, HDFGWTR2_EL2                // encoding: [0x23,0x31,0x3c,0xd5]
51// CHECK: mrs     x3, HFGRTR2_EL2                 // encoding: [0x43,0x31,0x3c,0xd5]
52// CHECK: mrs     x3, HFGWTR2_EL2                 // encoding: [0x63,0x31,0x3c,0xd5]
53// CHECK: mrs     x3, HFGITR2_EL2                 // encoding: [0xe3,0x31,0x3c,0xd5]
54// NOFGT: error: expected readable system register
55// NOFGT: error: expected readable system register
56// NOFGT: error: expected readable system register
57// NOFGT: error: expected readable system register
58// NOFGT: error: expected readable system register
59
60
61msr HDFGRTR2_EL2, x3
62msr HDFGWTR2_EL2, x3
63msr HFGRTR2_EL2, x3
64msr HFGWTR2_EL2, x3
65msr HFGITR2_EL2, x3
66// CHECK: msr     HDFGRTR2_EL2, x3                // encoding: [0x03,0x31,0x1c,0xd5]
67// CHECK: msr     HDFGWTR2_EL2, x3                // encoding: [0x23,0x31,0x1c,0xd5]
68// CHECK: msr     HFGRTR2_EL2, x3                 // encoding: [0x43,0x31,0x1c,0xd5]
69// CHECK: msr     HFGWTR2_EL2, x3                 // encoding: [0x63,0x31,0x1c,0xd5]
70// CHECK: msr     HFGITR2_EL2, x3                 // encoding: [0xe3,0x31,0x1c,0xd5]
71// NOFGT: error: expected writable system register
72// NOFGT: error: expected writable system register
73// NOFGT: error: expected writable system register
74// NOFGT: error: expected writable system register
75// NOFGT: error: expected writable system register
76