xref: /netbsd-src/external/gpl3/gcc.old/usr.bin/gcc/arch/armeb/arm-isa.h (revision cef8759bd76c1b621f8eab8faa6f208faabc2e15)
1 /* This file is automatically generated.  DO NOT EDIT! */
2 /* Generated from: NetBSD: mknative-gcc,v 1.102 2019/10/16 06:57:24 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-2018 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_armv5e,
34   isa_bit_mode26,
35   isa_bit_smallmul,
36   isa_bit_iwmmxt,
37   isa_bit_fp16fml,
38   isa_bit_xscale,
39   isa_bit_thumb,
40   isa_bit_quirk_cm3_ldrd,
41   isa_bit_be8,
42   isa_bit_dotprod,
43   isa_bit_lpae,
44   isa_bit_armv4,
45   isa_bit_armv5,
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_mode32,
59   isa_bit_thumb2,
60   isa_bit_iwmmxt2,
61   isa_bit_notm,
62   isa_bit_fp16,
63   isa_bit_armv8_1,
64   isa_bit_fp16conv,
65   isa_bit_armv8_2,
66   isa_bit_armv6k,
67   isa_bit_armv8_3,
68   isa_bit_armv8_4,
69   isa_bit_mp,
70   isa_bit_crypto,
71   isa_bit_fp_dbl,
72   isa_bit_sec,
73   isa_bit_armv3m,
74   isa_num_bits
75 };
76 
77 #define ISA_CRYPTO \
78   isa_bit_crypto, \
79   isa_bit_neon, \
80   isa_bit_fp_dbl, \
81   isa_bit_fp_d32
82 
83 #define ISA_ARMv8_1a \
84   isa_bit_crc32, \
85   isa_bit_be8, \
86   isa_bit_lpae, \
87   isa_bit_notm, \
88   isa_bit_thumb, \
89   isa_bit_adiv, \
90   isa_bit_armv8_1, \
91   isa_bit_sec, \
92   isa_bit_armv3m, \
93   isa_bit_armv5e, \
94   isa_bit_armv6k, \
95   isa_bit_thumb2, \
96   isa_bit_mp, \
97   isa_bit_armv4, \
98   isa_bit_armv5, \
99   isa_bit_armv6, \
100   isa_bit_armv7, \
101   isa_bit_armv8, \
102   isa_bit_tdiv, \
103   isa_bit_mode32
104 
105 #define ISA_ARMv5t \
106   isa_bit_mode32, \
107   isa_bit_thumb, \
108   isa_bit_armv3m, \
109   isa_bit_armv4, \
110   isa_bit_armv5, \
111   isa_bit_notm
112 
113 #define ISA_ALL_CRYPTO \
114   isa_bit_crypto
115 
116 #define ISA_DOTPROD \
117   isa_bit_neon, \
118   isa_bit_dotprod, \
119   isa_bit_fp_dbl, \
120   isa_bit_fp_d32
121 
122 #define ISA_ARMv7m \
123   isa_bit_thumb, \
124   isa_bit_be8, \
125   isa_bit_armv4, \
126   isa_bit_armv5, \
127   isa_bit_armv6, \
128   isa_bit_armv7, \
129   isa_bit_armv3m, \
130   isa_bit_thumb2, \
131   isa_bit_armv5e, \
132   isa_bit_mode32, \
133   isa_bit_tdiv
134 
135 #define ISA_ARMv8m_main \
136   isa_bit_armv3m, \
137   isa_bit_cmse, \
138   isa_bit_armv5e, \
139   isa_bit_thumb2, \
140   isa_bit_thumb, \
141   isa_bit_be8, \
142   isa_bit_mode32, \
143   isa_bit_armv4, \
144   isa_bit_armv5, \
145   isa_bit_armv6, \
146   isa_bit_armv7, \
147   isa_bit_armv8, \
148   isa_bit_tdiv
149 
150 #define ISA_ARMv8m_base \
151   isa_bit_tdiv, \
152   isa_bit_cmse, \
153   isa_bit_thumb, \
154   isa_bit_armv3m, \
155   isa_bit_armv5e, \
156   isa_bit_be8, \
157   isa_bit_armv4, \
158   isa_bit_armv5, \
159   isa_bit_armv6, \
160   isa_bit_armv8, \
161   isa_bit_mode32
162 
163 #define ISA_FPv5 \
164   isa_bit_fp16conv, \
165   isa_bit_fpv5, \
166   isa_bit_vfpv2, \
167   isa_bit_vfpv3, \
168   isa_bit_vfpv4
169 
170 #define ISA_ARMv7r \
171   isa_bit_tdiv, \
172   isa_bit_be8, \
173   isa_bit_mode32, \
174   isa_bit_notm, \
175   isa_bit_armv4, \
176   isa_bit_armv5, \
177   isa_bit_armv6, \
178   isa_bit_armv7, \
179   isa_bit_armv3m, \
180   isa_bit_thumb2, \
181   isa_bit_thumb, \
182   isa_bit_armv5e, \
183   isa_bit_armv6k
184 
185 #define ISA_ARMv8_3a \
186   isa_bit_thumb, \
187   isa_bit_tdiv, \
188   isa_bit_lpae, \
189   isa_bit_notm, \
190   isa_bit_armv3m, \
191   isa_bit_sec, \
192   isa_bit_armv5e, \
193   isa_bit_armv6k, \
194   isa_bit_thumb2, \
195   isa_bit_armv4, \
196   isa_bit_armv5, \
197   isa_bit_armv6, \
198   isa_bit_armv7, \
199   isa_bit_armv8, \
200   isa_bit_adiv, \
201   isa_bit_mp, \
202   isa_bit_armv8_1, \
203   isa_bit_armv8_2, \
204   isa_bit_armv8_3, \
205   isa_bit_crc32, \
206   isa_bit_mode32, \
207   isa_bit_be8
208 
209 #define ISA_VFPv2 \
210   isa_bit_vfpv2
211 
212 #define ISA_FP_DBL \
213   isa_bit_fp_dbl
214 
215 #define ISA_VFPv3 \
216   isa_bit_vfpv2, \
217   isa_bit_vfpv3
218 
219 #define ISA_VFPv4 \
220   isa_bit_fp16conv, \
221   isa_bit_vfpv2, \
222   isa_bit_vfpv3, \
223   isa_bit_vfpv4
224 
225 #define ISA_ARMv7ve \
226   isa_bit_mode32, \
227   isa_bit_armv4, \
228   isa_bit_armv5, \
229   isa_bit_armv6, \
230   isa_bit_armv7, \
231   isa_bit_tdiv, \
232   isa_bit_mp, \
233   isa_bit_lpae, \
234   isa_bit_be8, \
235   isa_bit_notm, \
236   isa_bit_adiv, \
237   isa_bit_armv3m, \
238   isa_bit_thumb, \
239   isa_bit_thumb2, \
240   isa_bit_armv5e, \
241   isa_bit_armv6k, \
242   isa_bit_sec
243 
244 #define ISA_ARMv4t \
245   isa_bit_notm, \
246   isa_bit_thumb, \
247   isa_bit_armv3m, \
248   isa_bit_armv4, \
249   isa_bit_mode32
250 
251 #define ISA_ARMv6j \
252   isa_bit_notm, \
253   isa_bit_mode32, \
254   isa_bit_be8, \
255   isa_bit_thumb, \
256   isa_bit_armv3m, \
257   isa_bit_armv4, \
258   isa_bit_armv5, \
259   isa_bit_armv6, \
260   isa_bit_armv5e
261 
262 #define ISA_ALL_FP \
263   isa_bit_fp_d32, \
264   isa_bit_neon, \
265   isa_bit_vfpv2, \
266   isa_bit_vfpv3, \
267   isa_bit_vfpv4, \
268   isa_bit_fpv5, \
269   isa_bit_fp16conv, \
270   isa_bit_crypto, \
271   isa_bit_fp16, \
272   isa_bit_fp_dbl
273 
274 #define ISA_ARMv6k \
275   isa_bit_thumb, \
276   isa_bit_mode32, \
277   isa_bit_armv4, \
278   isa_bit_armv5, \
279   isa_bit_armv6, \
280   isa_bit_notm, \
281   isa_bit_armv3m, \
282   isa_bit_armv5e, \
283   isa_bit_be8, \
284   isa_bit_armv6k
285 
286 #define ISA_FP_D32 \
287   isa_bit_fp_d32, \
288   isa_bit_fp_dbl
289 
290 #define ISA_ALL_QUIRKS \
291   isa_bit_quirk_cm3_ldrd, \
292   isa_bit_xscale, \
293   isa_bit_quirk_armv6kz, \
294   isa_bit_quirk_no_volatile_ce
295 
296 #define ISA_ARMv8a \
297   isa_bit_armv5e, \
298   isa_bit_armv6k, \
299   isa_bit_thumb2, \
300   isa_bit_tdiv, \
301   isa_bit_sec, \
302   isa_bit_mp, \
303   isa_bit_lpae, \
304   isa_bit_notm, \
305   isa_bit_mode32, \
306   isa_bit_armv4, \
307   isa_bit_armv5, \
308   isa_bit_armv6, \
309   isa_bit_armv7, \
310   isa_bit_armv8, \
311   isa_bit_adiv, \
312   isa_bit_be8, \
313   isa_bit_thumb, \
314   isa_bit_armv3m
315 
316 #define ISA_ARMv6m \
317   isa_bit_thumb, \
318   isa_bit_armv3m, \
319   isa_bit_armv5e, \
320   isa_bit_armv4, \
321   isa_bit_armv5, \
322   isa_bit_armv6, \
323   isa_bit_be8, \
324   isa_bit_mode32
325 
326 #define ISA_ALL_FPU_INTERNAL \
327   isa_bit_crypto, \
328   isa_bit_neon, \
329   isa_bit_fp_dbl, \
330   isa_bit_fp_d32, \
331   isa_bit_fp16conv, \
332   isa_bit_fpv5, \
333   isa_bit_vfpv2, \
334   isa_bit_vfpv3, \
335   isa_bit_vfpv4
336 
337 #define ISA_ARMv5tej \
338   isa_bit_armv5e, \
339   isa_bit_mode32, \
340   isa_bit_armv4, \
341   isa_bit_armv5, \
342   isa_bit_notm, \
343   isa_bit_thumb, \
344   isa_bit_armv3m
345 
346 #define ISA_ALL_SIMD \
347   isa_bit_fp_d32, \
348   isa_bit_fp16fml, \
349   isa_bit_neon, \
350   isa_bit_dotprod, \
351   isa_bit_crypto
352 
353 #define ISA_ARMv8_2a \
354   isa_bit_mp, \
355   isa_bit_thumb, \
356   isa_bit_armv3m, \
357   isa_bit_be8, \
358   isa_bit_armv5e, \
359   isa_bit_tdiv, \
360   isa_bit_armv6k, \
361   isa_bit_armv8_1, \
362   isa_bit_armv8_2, \
363   isa_bit_thumb2, \
364   isa_bit_lpae, \
365   isa_bit_notm, \
366   isa_bit_armv4, \
367   isa_bit_armv5, \
368   isa_bit_armv6, \
369   isa_bit_armv7, \
370   isa_bit_armv8, \
371   isa_bit_mode32, \
372   isa_bit_sec, \
373   isa_bit_crc32, \
374   isa_bit_adiv
375 
376 #define ISA_ARMv3m \
377   isa_bit_armv3m, \
378   isa_bit_notm, \
379   isa_bit_mode32
380 
381 #define ISA_ARMv2 \
382   isa_bit_notm
383 
384 #define ISA_ARMv3 \
385   isa_bit_notm, \
386   isa_bit_mode32
387 
388 #define ISA_NEON \
389   isa_bit_fp_dbl, \
390   isa_bit_fp_d32, \
391   isa_bit_neon
392 
393 #define ISA_ARMv5te \
394   isa_bit_thumb, \
395   isa_bit_armv4, \
396   isa_bit_notm, \
397   isa_bit_armv5, \
398   isa_bit_armv3m, \
399   isa_bit_armv5e, \
400   isa_bit_mode32
401 
402 #define ISA_ARMv4 \
403   isa_bit_armv4, \
404   isa_bit_notm, \
405   isa_bit_armv3m, \
406   isa_bit_mode32
407 
408 #define ISA_ARMv5 \
409   isa_bit_armv3m, \
410   isa_bit_notm, \
411   isa_bit_mode32, \
412   isa_bit_armv4, \
413   isa_bit_armv5
414 
415 #define ISA_ARMv6 \
416   isa_bit_armv3m, \
417   isa_bit_armv5e, \
418   isa_bit_armv4, \
419   isa_bit_armv5, \
420   isa_bit_armv6, \
421   isa_bit_mode32, \
422   isa_bit_be8, \
423   isa_bit_thumb, \
424   isa_bit_notm
425 
426 #define ISA_ARMv5e \
427   isa_bit_armv4, \
428   isa_bit_armv5, \
429   isa_bit_notm, \
430   isa_bit_armv3m, \
431   isa_bit_armv5e, \
432   isa_bit_mode32
433 
434 #define ISA_ARMv7 \
435   isa_bit_thumb2, \
436   isa_bit_be8, \
437   isa_bit_thumb, \
438   isa_bit_mode32, \
439   isa_bit_armv4, \
440   isa_bit_armv5, \
441   isa_bit_armv6, \
442   isa_bit_armv7, \
443   isa_bit_armv3m, \
444   isa_bit_armv5e
445 
446 #define ISA_ARMv6zk \
447   isa_bit_mode32, \
448   isa_bit_armv4, \
449   isa_bit_armv5, \
450   isa_bit_armv6, \
451   isa_bit_notm, \
452   isa_bit_armv3m, \
453   isa_bit_thumb, \
454   isa_bit_armv5e, \
455   isa_bit_armv6k, \
456   isa_bit_be8
457 
458 #define ISA_ARMv6kz \
459   isa_bit_armv3m, \
460   isa_bit_armv5e, \
461   isa_bit_armv6k, \
462   isa_bit_thumb, \
463   isa_bit_notm, \
464   isa_bit_quirk_armv6kz, \
465   isa_bit_be8, \
466   isa_bit_mode32, \
467   isa_bit_armv4, \
468   isa_bit_armv5, \
469   isa_bit_armv6
470 
471 #define ISA_ARMv6z \
472   isa_bit_notm, \
473   isa_bit_armv4, \
474   isa_bit_armv5, \
475   isa_bit_armv6, \
476   isa_bit_mode32, \
477   isa_bit_thumb, \
478   isa_bit_armv3m, \
479   isa_bit_be8, \
480   isa_bit_armv5e
481 
482 #define ISA_ARMv8r \
483   isa_bit_adiv, \
484   isa_bit_mode32, \
485   isa_bit_armv4, \
486   isa_bit_armv5, \
487   isa_bit_armv6, \
488   isa_bit_armv7, \
489   isa_bit_armv8, \
490   isa_bit_mp, \
491   isa_bit_be8, \
492   isa_bit_tdiv, \
493   isa_bit_armv3m, \
494   isa_bit_lpae, \
495   isa_bit_notm, \
496   isa_bit_thumb, \
497   isa_bit_armv5e, \
498   isa_bit_armv6k, \
499   isa_bit_thumb2, \
500   isa_bit_sec
501 
502 #define ISA_FP_ARMv8 \
503   isa_bit_fpv5, \
504   isa_bit_vfpv2, \
505   isa_bit_vfpv3, \
506   isa_bit_vfpv4, \
507   isa_bit_fp16conv, \
508   isa_bit_fp_dbl, \
509   isa_bit_fp_d32
510 
511 #define ISA_ALL_SIMD_INTERNAL \
512   isa_bit_neon, \
513   isa_bit_crypto, \
514   isa_bit_fp_d32
515 
516 #define ISA_ARMv8_4a \
517   isa_bit_thumb, \
518   isa_bit_mp, \
519   isa_bit_adiv, \
520   isa_bit_be8, \
521   isa_bit_armv3m, \
522   isa_bit_armv4, \
523   isa_bit_armv5, \
524   isa_bit_armv6, \
525   isa_bit_armv7, \
526   isa_bit_armv8, \
527   isa_bit_armv5e, \
528   isa_bit_armv6k, \
529   isa_bit_thumb2, \
530   isa_bit_crc32, \
531   isa_bit_tdiv, \
532   isa_bit_sec, \
533   isa_bit_mode32, \
534   isa_bit_armv8_1, \
535   isa_bit_armv8_2, \
536   isa_bit_armv8_3, \
537   isa_bit_armv8_4, \
538   isa_bit_lpae, \
539   isa_bit_notm
540 
541 #define ISA_ARMv7a \
542   isa_bit_armv5e, \
543   isa_bit_thumb, \
544   isa_bit_armv6k, \
545   isa_bit_thumb2, \
546   isa_bit_be8, \
547   isa_bit_mode32, \
548   isa_bit_armv4, \
549   isa_bit_armv5, \
550   isa_bit_armv6, \
551   isa_bit_armv7, \
552   isa_bit_notm, \
553   isa_bit_armv3m
554 
555 #define ISA_ARMv6t2 \
556   isa_bit_notm, \
557   isa_bit_armv4, \
558   isa_bit_armv5, \
559   isa_bit_armv6, \
560   isa_bit_armv3m, \
561   isa_bit_armv5e, \
562   isa_bit_thumb2, \
563   isa_bit_be8, \
564   isa_bit_mode32, \
565   isa_bit_thumb
566 
567 #define ISA_ARMv7em \
568   isa_bit_armv4, \
569   isa_bit_armv5, \
570   isa_bit_armv6, \
571   isa_bit_armv7, \
572   isa_bit_armv3m, \
573   isa_bit_be8, \
574   isa_bit_armv5e, \
575   isa_bit_armv7em, \
576   isa_bit_thumb2, \
577   isa_bit_mode32, \
578   isa_bit_thumb, \
579   isa_bit_tdiv
580 
581