xref: /netbsd-src/external/gpl3/gcc.old/usr.bin/gcc/arch/arm/arm-isa.h (revision 627f7eb200a4419d89b531d55fccd2ee3ffdcde0)
1 /* This file is automatically generated.  DO NOT EDIT! */
2 /* Generated from: NetBSD: mknative-gcc,v 1.108 2020/09/05 10:58:08 mrg Exp  */
3 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
4 
5 /* -*- buffer-read-only: t -*-
6    Generated automatically by parsecpu.awk from arm-cpus.in.
7    Do not edit.
8 
9    Copyright (C) 2011-2019 Free Software Foundation, Inc.
10 
11    This file is part of GCC.
12 
13    GCC is free software; you can redistribute it and/or modify
14    it under the terms of the GNU General Public License as
15    published by the Free Software Foundation; either version 3,
16    or (at your option) any later version.
17 
18    GCC is distributed in the hope that it will be useful,
19    but WITHOUT ANY WARRANTY; without even the implied warranty of
20    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21    GNU General Public License for more details.
22 
23    You should have received a copy of the GNU General Public
24    License along with GCC; see the file COPYING3.  If not see
25    <http://www.gnu.org/licenses/>.  */
26 
27 enum isa_feature {
28   isa_nobit = 0,
29   isa_bit_vfpv2,
30   isa_bit_adiv,
31   isa_bit_vfpv3,
32   isa_bit_vfpv4,
33   isa_bit_smallmul,
34   isa_bit_iwmmxt,
35   isa_bit_armv5te,
36   isa_bit_fp16fml,
37   isa_bit_xscale,
38   isa_bit_sb,
39   isa_bit_thumb,
40   isa_bit_quirk_cm3_ldrd,
41   isa_bit_be8,
42   isa_bit_armv5t,
43   isa_bit_dotprod,
44   isa_bit_lpae,
45   isa_bit_armv4,
46   isa_bit_quirk_armv6kz,
47   isa_bit_neon,
48   isa_bit_armv6,
49   isa_bit_crc32,
50   isa_bit_armv7,
51   isa_bit_armv7em,
52   isa_bit_cmse,
53   isa_bit_armv8,
54   isa_bit_fpv5,
55   isa_bit_tdiv,
56   isa_bit_quirk_no_volatile_ce,
57   isa_bit_fp_d32,
58   isa_bit_thumb2,
59   isa_bit_iwmmxt2,
60   isa_bit_notm,
61   isa_bit_fp16,
62   isa_bit_armv8_1,
63   isa_bit_fp16conv,
64   isa_bit_armv8_2,
65   isa_bit_armv6k,
66   isa_bit_armv8_3,
67   isa_bit_armv8_4,
68   isa_bit_mp,
69   isa_bit_armv8_5,
70   isa_bit_crypto,
71   isa_bit_fp_dbl,
72   isa_bit_sec,
73   isa_bit_predres,
74   isa_num_bits
75 };
76 
77 #define ISA_CRYPTO \
78   isa_bit_crypto, \
79   isa_bit_fp_d32, \
80   isa_bit_neon, \
81   isa_bit_fp_dbl
82 
83 #define ISA_ARMv8_1a \
84   isa_bit_crc32, \
85   isa_bit_armv5te, \
86   isa_bit_be8, \
87   isa_bit_mp, \
88   isa_bit_armv4, \
89   isa_bit_armv6, \
90   isa_bit_armv7, \
91   isa_bit_armv8, \
92   isa_bit_lpae, \
93   isa_bit_armv5t, \
94   isa_bit_thumb, \
95   isa_bit_notm, \
96   isa_bit_armv6k, \
97   isa_bit_adiv, \
98   isa_bit_tdiv, \
99   isa_bit_thumb2, \
100   isa_bit_armv8_1, \
101   isa_bit_sec
102 
103 #define ISA_ARMv5t \
104   isa_bit_thumb, \
105   isa_bit_notm, \
106   isa_bit_armv5t, \
107   isa_bit_armv4
108 
109 #define ISA_ALL_CRYPTO \
110   isa_bit_crypto
111 
112 #define ISA_DOTPROD \
113   isa_bit_fp_dbl, \
114   isa_bit_neon, \
115   isa_bit_fp_d32, \
116   isa_bit_dotprod
117 
118 #define ISA_ARMv7m \
119   isa_bit_thumb, \
120   isa_bit_thumb2, \
121   isa_bit_be8, \
122   isa_bit_tdiv, \
123   isa_bit_armv5t, \
124   isa_bit_armv5te, \
125   isa_bit_armv4, \
126   isa_bit_armv6, \
127   isa_bit_armv7
128 
129 #define ISA_ARMv8m_main \
130   isa_bit_thumb2, \
131   isa_bit_armv5te, \
132   isa_bit_armv4, \
133   isa_bit_armv6, \
134   isa_bit_armv7, \
135   isa_bit_armv8, \
136   isa_bit_cmse, \
137   isa_bit_thumb, \
138   isa_bit_armv5t, \
139   isa_bit_tdiv, \
140   isa_bit_be8
141 
142 #define ISA_ARMv8m_base \
143   isa_bit_be8, \
144   isa_bit_tdiv, \
145   isa_bit_armv5t, \
146   isa_bit_armv4, \
147   isa_bit_armv6, \
148   isa_bit_armv8, \
149   isa_bit_armv5te, \
150   isa_bit_cmse, \
151   isa_bit_thumb
152 
153 #define ISA_FPv5 \
154   isa_bit_fp16conv, \
155   isa_bit_vfpv2, \
156   isa_bit_vfpv3, \
157   isa_bit_vfpv4, \
158   isa_bit_fpv5
159 
160 #define ISA_ARMv7r \
161   isa_bit_tdiv, \
162   isa_bit_armv5te, \
163   isa_bit_be8, \
164   isa_bit_armv4, \
165   isa_bit_armv6, \
166   isa_bit_armv7, \
167   isa_bit_thumb2, \
168   isa_bit_thumb, \
169   isa_bit_armv5t, \
170   isa_bit_armv6k, \
171   isa_bit_notm
172 
173 #define ISA_ARMv8_3a \
174   isa_bit_thumb2, \
175   isa_bit_armv4, \
176   isa_bit_armv6, \
177   isa_bit_armv7, \
178   isa_bit_armv8, \
179   isa_bit_lpae, \
180   isa_bit_notm, \
181   isa_bit_thumb, \
182   isa_bit_adiv, \
183   isa_bit_sec, \
184   isa_bit_mp, \
185   isa_bit_tdiv, \
186   isa_bit_be8, \
187   isa_bit_armv5t, \
188   isa_bit_armv8_1, \
189   isa_bit_armv8_2, \
190   isa_bit_armv6k, \
191   isa_bit_armv8_3, \
192   isa_bit_crc32, \
193   isa_bit_armv5te
194 
195 #define ISA_VFPv2 \
196   isa_bit_vfpv2
197 
198 #define ISA_FP_DBL \
199   isa_bit_fp_dbl
200 
201 #define ISA_VFPv3 \
202   isa_bit_vfpv2, \
203   isa_bit_vfpv3
204 
205 #define ISA_VFPv4 \
206   isa_bit_vfpv2, \
207   isa_bit_vfpv3, \
208   isa_bit_vfpv4, \
209   isa_bit_fp16conv
210 
211 #define ISA_ARMv7ve \
212   isa_bit_thumb2, \
213   isa_bit_armv5te, \
214   isa_bit_armv5t, \
215   isa_bit_armv6k, \
216   isa_bit_sec, \
217   isa_bit_mp, \
218   isa_bit_lpae, \
219   isa_bit_be8, \
220   isa_bit_notm, \
221   isa_bit_armv4, \
222   isa_bit_armv6, \
223   isa_bit_armv7, \
224   isa_bit_adiv, \
225   isa_bit_tdiv, \
226   isa_bit_thumb
227 
228 #define ISA_ARMv4t \
229   isa_bit_notm, \
230   isa_bit_armv4, \
231   isa_bit_thumb
232 
233 #define ISA_ARMv6j \
234   isa_bit_notm, \
235   isa_bit_armv4, \
236   isa_bit_armv6, \
237   isa_bit_armv5t, \
238   isa_bit_be8, \
239   isa_bit_thumb, \
240   isa_bit_armv5te
241 
242 #define ISA_ALL_FP \
243   isa_bit_fp_d32, \
244   isa_bit_neon, \
245   isa_bit_fpv5, \
246   isa_bit_fp16conv, \
247   isa_bit_fp16, \
248   isa_bit_fp_dbl, \
249   isa_bit_vfpv2, \
250   isa_bit_vfpv3, \
251   isa_bit_vfpv4, \
252   isa_bit_crypto
253 
254 #define ISA_ARMv6k \
255   isa_bit_thumb, \
256   isa_bit_notm, \
257   isa_bit_armv5t, \
258   isa_bit_be8, \
259   isa_bit_armv6k, \
260   isa_bit_armv5te, \
261   isa_bit_armv4, \
262   isa_bit_armv6
263 
264 #define ISA_FP_D32 \
265   isa_bit_fp_d32, \
266   isa_bit_fp_dbl
267 
268 #define ISA_ALL_QUIRKS \
269   isa_bit_xscale, \
270   isa_bit_quirk_cm3_ldrd, \
271   isa_bit_quirk_armv6kz, \
272   isa_bit_quirk_no_volatile_ce
273 
274 #define ISA_ARMv8_5a \
275   isa_bit_lpae, \
276   isa_bit_be8, \
277   isa_bit_notm, \
278   isa_bit_adiv, \
279   isa_bit_crc32, \
280   isa_bit_tdiv, \
281   isa_bit_predres, \
282   isa_bit_armv4, \
283   isa_bit_armv6, \
284   isa_bit_armv7, \
285   isa_bit_armv8, \
286   isa_bit_sb, \
287   isa_bit_armv5t, \
288   isa_bit_mp, \
289   isa_bit_thumb, \
290   isa_bit_armv6k, \
291   isa_bit_armv8_1, \
292   isa_bit_armv8_2, \
293   isa_bit_armv8_3, \
294   isa_bit_armv8_4, \
295   isa_bit_armv8_5, \
296   isa_bit_armv5te, \
297   isa_bit_sec, \
298   isa_bit_thumb2
299 
300 #define ISA_ARMv8a \
301   isa_bit_mp, \
302   isa_bit_armv5t, \
303   isa_bit_lpae, \
304   isa_bit_armv6k, \
305   isa_bit_notm, \
306   isa_bit_adiv, \
307   isa_bit_thumb2, \
308   isa_bit_tdiv, \
309   isa_bit_sec, \
310   isa_bit_armv4, \
311   isa_bit_armv6, \
312   isa_bit_armv7, \
313   isa_bit_armv8, \
314   isa_bit_armv5te, \
315   isa_bit_be8, \
316   isa_bit_thumb
317 
318 #define ISA_ARMv6m \
319   isa_bit_armv5t, \
320   isa_bit_armv4, \
321   isa_bit_armv6, \
322   isa_bit_armv5te, \
323   isa_bit_thumb, \
324   isa_bit_be8
325 
326 #define ISA_ALL_FPU_INTERNAL \
327   isa_bit_fp16conv, \
328   isa_bit_neon, \
329   isa_bit_fpv5, \
330   isa_bit_fp_dbl, \
331   isa_bit_crypto, \
332   isa_bit_fp_d32, \
333   isa_bit_vfpv2, \
334   isa_bit_vfpv3, \
335   isa_bit_vfpv4
336 
337 #define ISA_ARMv5tej \
338   isa_bit_armv5t, \
339   isa_bit_armv4, \
340   isa_bit_thumb, \
341   isa_bit_armv5te, \
342   isa_bit_notm
343 
344 #define ISA_ALL_SIMD \
345   isa_bit_fp_d32, \
346   isa_bit_fp16fml, \
347   isa_bit_neon, \
348   isa_bit_dotprod, \
349   isa_bit_crypto
350 
351 #define ISA_ARMv8_2a \
352   isa_bit_armv5t, \
353   isa_bit_tdiv, \
354   isa_bit_thumb, \
355   isa_bit_armv6k, \
356   isa_bit_armv8_1, \
357   isa_bit_armv8_2, \
358   isa_bit_thumb2, \
359   isa_bit_armv5te, \
360   isa_bit_sec, \
361   isa_bit_crc32, \
362   isa_bit_be8, \
363   isa_bit_lpae, \
364   isa_bit_mp, \
365   isa_bit_notm, \
366   isa_bit_armv4, \
367   isa_bit_armv6, \
368   isa_bit_armv7, \
369   isa_bit_armv8, \
370   isa_bit_adiv
371 
372 #define ISA_NEON \
373   isa_bit_neon, \
374   isa_bit_fp_dbl, \
375   isa_bit_fp_d32
376 
377 #define ISA_ARMv5te \
378   isa_bit_thumb, \
379   isa_bit_armv5te, \
380   isa_bit_armv5t, \
381   isa_bit_notm, \
382   isa_bit_armv4
383 
384 #define ISA_ARMv4 \
385   isa_bit_armv4, \
386   isa_bit_notm
387 
388 #define ISA_ARMv6 \
389   isa_bit_thumb, \
390   isa_bit_armv5te, \
391   isa_bit_armv5t, \
392   isa_bit_notm, \
393   isa_bit_be8, \
394   isa_bit_armv4, \
395   isa_bit_armv6
396 
397 #define ISA_ARMv7 \
398   isa_bit_thumb, \
399   isa_bit_thumb2, \
400   isa_bit_be8, \
401   isa_bit_armv5t, \
402   isa_bit_armv4, \
403   isa_bit_armv6, \
404   isa_bit_armv7, \
405   isa_bit_armv5te
406 
407 #define ISA_ARMv6zk \
408   isa_bit_armv5t, \
409   isa_bit_armv6k, \
410   isa_bit_notm, \
411   isa_bit_armv4, \
412   isa_bit_armv6, \
413   isa_bit_be8, \
414   isa_bit_thumb, \
415   isa_bit_armv5te
416 
417 #define ISA_ARMv6kz \
418   isa_bit_armv4, \
419   isa_bit_armv6, \
420   isa_bit_thumb, \
421   isa_bit_notm, \
422   isa_bit_quirk_armv6kz, \
423   isa_bit_be8, \
424   isa_bit_armv5t, \
425   isa_bit_armv6k, \
426   isa_bit_armv5te
427 
428 #define ISA_ARMv6z \
429   isa_bit_be8, \
430   isa_bit_notm, \
431   isa_bit_armv4, \
432   isa_bit_armv6, \
433   isa_bit_armv5t, \
434   isa_bit_armv5te, \
435   isa_bit_thumb
436 
437 #define ISA_ARMv8r \
438   isa_bit_armv4, \
439   isa_bit_armv6, \
440   isa_bit_armv7, \
441   isa_bit_armv8, \
442   isa_bit_lpae, \
443   isa_bit_notm, \
444   isa_bit_thumb, \
445   isa_bit_adiv, \
446   isa_bit_mp, \
447   isa_bit_armv5t, \
448   isa_bit_tdiv, \
449   isa_bit_armv6k, \
450   isa_bit_armv5te, \
451   isa_bit_thumb2, \
452   isa_bit_sec, \
453   isa_bit_be8
454 
455 #define ISA_FP_ARMv8 \
456   isa_bit_fp_d32, \
457   isa_bit_vfpv2, \
458   isa_bit_vfpv3, \
459   isa_bit_vfpv4, \
460   isa_bit_fpv5, \
461   isa_bit_fp16conv, \
462   isa_bit_fp_dbl
463 
464 #define ISA_ALL_SIMD_INTERNAL \
465   isa_bit_crypto, \
466   isa_bit_fp_d32, \
467   isa_bit_neon
468 
469 #define ISA_ARMv8_4a \
470   isa_bit_thumb, \
471   isa_bit_armv6k, \
472   isa_bit_mp, \
473   isa_bit_sec, \
474   isa_bit_thumb2, \
475   isa_bit_be8, \
476   isa_bit_armv8_1, \
477   isa_bit_armv8_2, \
478   isa_bit_armv8_3, \
479   isa_bit_armv8_4, \
480   isa_bit_armv5te, \
481   isa_bit_crc32, \
482   isa_bit_lpae, \
483   isa_bit_notm, \
484   isa_bit_adiv, \
485   isa_bit_armv4, \
486   isa_bit_armv6, \
487   isa_bit_armv7, \
488   isa_bit_armv8, \
489   isa_bit_tdiv, \
490   isa_bit_armv5t
491 
492 #define ISA_ARMv7a \
493   isa_bit_armv5t, \
494   isa_bit_thumb, \
495   isa_bit_armv5te, \
496   isa_bit_armv6k, \
497   isa_bit_thumb2, \
498   isa_bit_armv4, \
499   isa_bit_armv6, \
500   isa_bit_armv7, \
501   isa_bit_be8, \
502   isa_bit_notm
503 
504 #define ISA_ARMv6t2 \
505   isa_bit_armv5t, \
506   isa_bit_notm, \
507   isa_bit_armv4, \
508   isa_bit_armv6, \
509   isa_bit_thumb2, \
510   isa_bit_thumb, \
511   isa_bit_armv5te, \
512   isa_bit_be8
513 
514 #define ISA_ARMv7em \
515   isa_bit_thumb2, \
516   isa_bit_armv4, \
517   isa_bit_armv6, \
518   isa_bit_armv7, \
519   isa_bit_tdiv, \
520   isa_bit_armv5te, \
521   isa_bit_thumb, \
522   isa_bit_be8, \
523   isa_bit_armv5t, \
524   isa_bit_armv7em
525 
526