• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "License": [
3    "Copyright (C) 2023 The Android Open Source Project",
4    "",
5    "Licensed under the Apache License, Version 2.0 (the “License”);",
6    "you may not use this file except in compliance with the License.",
7    "You may obtain a copy of the License at",
8    "",
9    "     http://www.apache.org/licenses/LICENSE-2.0",
10    "",
11    "Unless required by applicable law or agreed to in writing, software",
12    "distributed under the License is distributed on an “AS IS” BASIS,",
13    "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
14    "See the License for the specific language governing permissions and",
15    "limitations under the License."
16  ],
17  "reg_classes": [
18    {
19      "name": "GeneralReg64",
20      "size": 8,
21      "comment": ["Legacy registers (those other than r8-15) save a byte in ",
22	          "encoding, but RAX, RCX and RDX are often implicit operands"],
23      "regs": [
24        "RDI",
25        "RSI",
26        "RBX",
27        "R10",
28        "R11",
29        "R13",
30        "R14",
31        "R15",
32        "R8",
33        "R9",
34        "RDX",
35        "R12",
36        "RCX",
37        "RAX"
38      ]
39    },
40    {
41      "name": "XmmReg",
42      "size": 16,
43      "comment": ["XMM0-7 save a byte in encoding, but XMM0 can be ",
44	          "an implicit operand in some instructions"],
45      "regs": [
46        "XMM1",
47        "XMM2",
48        "XMM3",
49        "XMM4",
50        "XMM5",
51        "XMM6",
52        "XMM7",
53        "XMM8",
54        "XMM9",
55        "XMM10",
56        "XMM11",
57        "XMM12",
58        "XMM13",
59        "XMM14",
60        "XMM15",
61        "XMM0"
62      ]
63    },
64    {
65      "name": "YmmReg",
66      "size": 32,
67      "regs": [
68        "XmmReg"
69      ]
70    },
71    {
72      "name": "Reg64",
73      "size": 8,
74      "regs": [
75        "GeneralReg64",
76        "XmmReg"
77      ]
78    },
79    {
80      "name": "Reg32",
81      "size": 4,
82      "regs": [
83        "Reg64"
84      ]
85    },
86    {
87      "name": "GeneralReg32",
88      "size": 4,
89      "regs": [
90        "GeneralReg64"
91      ]
92    },
93    {
94      "name": "GeneralReg16",
95      "size": 2,
96      "regs": [
97        "GeneralReg64"
98      ]
99    },
100    {
101      "name": "GeneralReg8",
102      "size": 1,
103      "regs": [
104        "GeneralReg64"
105      ]
106    },
107    {
108      "name": "FpReg64",
109      "size": 8,
110      "regs": [
111        "XmmReg"
112      ]
113    },
114    {
115      "name": "FpReg32",
116      "size": 4,
117      "regs": [
118        "XmmReg"
119      ]
120    },
121    {
122      "name": "VecReg128",
123      "size": 16,
124      "regs": [
125        "XmmReg"
126      ]
127    },
128    {
129      "name": "VecReg256",
130      "size": 32,
131      "regs": [
132        "XmmReg"
133      ]
134    },
135    {
136      "name": "RAX",
137      "size": 8,
138      "regs": [
139        "RAX"
140      ]
141    },
142    {
143      "name": "EAX",
144      "size": 4,
145      "regs": [
146        "RAX"
147      ]
148    },
149    {
150      "name": "AX",
151      "size": 2,
152      "regs": [
153        "RAX"
154      ]
155    },
156    {
157      "name": "AL",
158      "size": 1,
159      "regs": [
160        "RAX"
161      ]
162    },
163    {
164      "name": "RBX",
165      "size": 8,
166      "regs": [
167        "RBX"
168      ]
169    },
170    {
171      "name": "EBX",
172      "size": 4,
173      "regs": [
174        "RBX"
175      ]
176    },
177    {
178      "name": "RCX",
179      "size": 8,
180      "regs": [
181        "RCX"
182      ]
183    },
184    {
185      "name": "ECX",
186      "size": 4,
187      "regs": [
188        "RCX"
189      ]
190    },
191    {
192      "name": "CL",
193      "size": 1,
194      "regs": [
195        "RCX"
196      ]
197    },
198    {
199      "name": "RDX",
200      "size": 8,
201      "regs": [
202        "RDX"
203      ]
204    },
205    {
206      "name": "EDX",
207      "size": 4,
208      "regs": [
209        "RDX"
210      ]
211    },
212    {
213      "name": "DX",
214      "size": 2,
215      "regs": [
216        "RDX"
217      ]
218    },
219    {
220      "name": "RSI",
221      "size": 8,
222      "regs": [
223        "RSI"
224      ]
225    },
226    {
227      "name": "RDI",
228      "size": 8,
229      "regs": [
230        "RDI"
231      ]
232    },
233    {
234      "name": "R8",
235      "size": 8,
236      "regs": [
237        "R8"
238      ]
239    },
240    {
241      "name": "R9",
242      "size": 8,
243      "regs": [
244        "R9"
245      ]
246    },
247    {
248      "name": "R10",
249      "size": 8,
250      "regs": [
251        "R10"
252      ]
253    },
254    {
255      "name": "R11",
256      "size": 8,
257      "regs": [
258        "R11"
259      ]
260    },
261    {
262      "name": "XMM0",
263      "size": 16,
264      "regs": [
265        "XMM0"
266      ]
267    },
268    {
269      "name": "XMM1",
270      "size": 16,
271      "regs": [
272        "XMM1"
273      ]
274    },
275    {
276      "name": "XMM2",
277      "size": 16,
278      "regs": [
279        "XMM2"
280      ]
281    },
282    {
283      "name": "XMM3",
284      "size": 16,
285      "regs": [
286        "XMM3"
287      ]
288    },
289    {
290      "name": "XMM4",
291      "size": 16,
292      "regs": [
293        "XMM4"
294      ]
295    },
296    {
297      "name": "XMM5",
298      "size": 16,
299      "regs": [
300        "XMM5"
301      ]
302    },
303    {
304      "name": "XMM6",
305      "size": 16,
306      "regs": [
307        "XMM6"
308      ]
309    },
310    {
311      "name": "XMM7",
312      "size": 16,
313      "regs": [
314        "XMM7"
315      ]
316    },
317    {
318      "name": "XMM8",
319      "size": 16,
320      "regs": [
321        "XMM8"
322      ]
323    },
324    {
325      "name": "XMM9",
326      "size": 16,
327      "regs": [
328        "XMM9"
329      ]
330    },
331    {
332      "name": "XMM10",
333      "size": 16,
334      "regs": [
335        "XMM10"
336      ]
337    },
338    {
339      "name": "XMM11",
340      "size": 16,
341      "regs": [
342        "XMM11"
343      ]
344    },
345    {
346      "name": "XMM12",
347      "size": 16,
348      "regs": [
349        "XMM12"
350      ]
351    },
352    {
353      "name": "XMM13",
354      "size": 16,
355      "regs": [
356        "XMM13"
357      ]
358    },
359    {
360      "name": "XMM14",
361      "size": 16,
362      "regs": [
363        "XMM14"
364      ]
365    },
366    {
367      "name": "XMM15",
368      "size": 16,
369      "regs": [
370        "XMM15"
371      ]
372    },
373    {
374      "name": "FLAGS",
375      "size": 0,
376      "regs": [
377        "FLAGS"
378      ]
379    }
380  ]
381}
382