armv8.4a-mpam.s
7.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s 2> %t | FileCheck %s --check-prefix=CHECK
// RUN: FileCheck --check-prefix=CHECK-RO < %t %s
// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
//------------------------------------------------------------------------------
// ARMV8.4-A MPAM Extensions
//------------------------------------------------------------------------------
msr MPAM0_EL1, x0
msr MPAM1_EL1, x0
msr MPAM2_EL2, x0
msr MPAM3_EL3, x0
msr MPAM1_EL12, x0
msr MPAMHCR_EL2, x0
msr MPAMVPMV_EL2, x0
msr MPAMVPM0_EL2, x0
msr MPAMVPM1_EL2, x0
msr MPAMVPM2_EL2, x0
msr MPAMVPM3_EL2, x0
msr MPAMVPM4_EL2, x0
msr MPAMVPM5_EL2, x0
msr MPAMVPM6_EL2, x0
msr MPAMVPM7_EL2, x0
msr MPAMIDR_EL1, x0
mrs x0, MPAM0_EL1
mrs x0, MPAM1_EL1
mrs x0, MPAM2_EL2
mrs x0, MPAM3_EL3
mrs x0, MPAM1_EL12
mrs x0, MPAMHCR_EL2
mrs x0, MPAMVPMV_EL2
mrs x0, MPAMVPM0_EL2
mrs x0, MPAMVPM1_EL2
mrs x0, MPAMVPM2_EL2
mrs x0, MPAMVPM3_EL2
mrs x0, MPAMVPM4_EL2
mrs x0, MPAMVPM5_EL2
mrs x0, MPAMVPM6_EL2
mrs x0, MPAMVPM7_EL2
mrs x0, MPAMIDR_EL1
//CHECK: msr MPAM0_EL1, x0 // encoding: [0x20,0xa5,0x18,0xd5]
//CHECK: msr MPAM1_EL1, x0 // encoding: [0x00,0xa5,0x18,0xd5]
//CHECK: msr MPAM2_EL2, x0 // encoding: [0x00,0xa5,0x1c,0xd5]
//CHECK: msr MPAM3_EL3, x0 // encoding: [0x00,0xa5,0x1e,0xd5]
//CHECK: msr MPAM1_EL12, x0 // encoding: [0x00,0xa5,0x1d,0xd5]
//CHECK: msr MPAMHCR_EL2, x0 // encoding: [0x00,0xa4,0x1c,0xd5]
//CHECK: msr MPAMVPMV_EL2, x0 // encoding: [0x20,0xa4,0x1c,0xd5]
//CHECK: msr MPAMVPM0_EL2, x0 // encoding: [0x00,0xa6,0x1c,0xd5]
//CHECK: msr MPAMVPM1_EL2, x0 // encoding: [0x20,0xa6,0x1c,0xd5]
//CHECK: msr MPAMVPM2_EL2, x0 // encoding: [0x40,0xa6,0x1c,0xd5]
//CHECK: msr MPAMVPM3_EL2, x0 // encoding: [0x60,0xa6,0x1c,0xd5]
//CHECK: msr MPAMVPM4_EL2, x0 // encoding: [0x80,0xa6,0x1c,0xd5]
//CHECK: msr MPAMVPM5_EL2, x0 // encoding: [0xa0,0xa6,0x1c,0xd5]
//CHECK: msr MPAMVPM6_EL2, x0 // encoding: [0xc0,0xa6,0x1c,0xd5]
//CHECK: msr MPAMVPM7_EL2, x0 // encoding: [0xe0,0xa6,0x1c,0xd5]
//CHECK-RO: error: expected writable system register or pstate
//CHECK-RO: msr MPAMIDR_EL1, x0
//CHECK-RO: ^
//CHECK: mrs x0, MPAM0_EL1 // encoding: [0x20,0xa5,0x38,0xd5]
//CHECK: mrs x0, MPAM1_EL1 // encoding: [0x00,0xa5,0x38,0xd5]
//CHECK: mrs x0, MPAM2_EL2 // encoding: [0x00,0xa5,0x3c,0xd5]
//CHECK: mrs x0, MPAM3_EL3 // encoding: [0x00,0xa5,0x3e,0xd5]
//CHECK: mrs x0, MPAM1_EL12 // encoding: [0x00,0xa5,0x3d,0xd5]
//CHECK: mrs x0, MPAMHCR_EL2 // encoding: [0x00,0xa4,0x3c,0xd5]
//CHECK: mrs x0, MPAMVPMV_EL2 // encoding: [0x20,0xa4,0x3c,0xd5]
//CHECK: mrs x0, MPAMVPM0_EL2 // encoding: [0x00,0xa6,0x3c,0xd5]
//CHECK: mrs x0, MPAMVPM1_EL2 // encoding: [0x20,0xa6,0x3c,0xd5]
//CHECK: mrs x0, MPAMVPM2_EL2 // encoding: [0x40,0xa6,0x3c,0xd5]
//CHECK: mrs x0, MPAMVPM3_EL2 // encoding: [0x60,0xa6,0x3c,0xd5]
//CHECK: mrs x0, MPAMVPM4_EL2 // encoding: [0x80,0xa6,0x3c,0xd5]
//CHECK: mrs x0, MPAMVPM5_EL2 // encoding: [0xa0,0xa6,0x3c,0xd5]
//CHECK: mrs x0, MPAMVPM6_EL2 // encoding: [0xc0,0xa6,0x3c,0xd5]
//CHECK: mrs x0, MPAMVPM7_EL2 // encoding: [0xe0,0xa6,0x3c,0xd5]
//CHECK: mrs x0, MPAMIDR_EL1 // encoding: [0x80,0xa4,0x38,0xd5]
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAM0_EL1, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAM1_EL1, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAM2_EL2, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAM3_EL3, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAM1_EL12, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAMHCR_EL2, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAMVPMV_EL2, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAMVPM0_EL2, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAMVPM1_EL2, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAMVPM2_EL2, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAMVPM3_EL2, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAMVPM4_EL2, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAMVPM5_EL2, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAMVPM6_EL2, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAMVPM7_EL2, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected writable system register or pstate
//CHECK-ERROR: msr MPAMIDR_EL1, x0
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAM0_EL1
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAM1_EL1
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAM2_EL2
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAM3_EL3
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAM1_EL12
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAMHCR_EL2
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAMVPMV_EL2
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAMVPM0_EL2
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAMVPM1_EL2
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAMVPM2_EL2
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAMVPM3_EL2
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAMVPM4_EL2
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAMVPM5_EL2
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAMVPM6_EL2
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAMVPM7_EL2
//CHECK-ERROR: ^
//CHECK-ERROR: error: expected readable system register
//CHECK-ERROR: mrs x0, MPAMIDR_EL1
//CHECK-ERROR: ^