Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/arm/arm-cpus.in @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 # CPU, FPU and architecture specifications for ARM. | |
2 # | |
3 # Copyright (C) 2011-2017 Free Software Foundation, Inc. | |
4 # | |
5 # This file is part of GCC. | |
6 # | |
7 # GCC is free software; you can redistribute it and/or modify it under | |
8 # the terms of the GNU General Public License as published by the Free | |
9 # Software Foundation; either version 3, or (at your option) any later | |
10 # version. | |
11 # | |
12 # GCC is distributed in the hope that it will be useful, but WITHOUT ANY | |
13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 # for more details. | |
16 # | |
17 # You should have received a copy of the GNU General Public License | |
18 # along with GCC; see the file COPYING3. If not see | |
19 # <http://www.gnu.org/licenses/>. | |
20 | |
21 # This file describes all the various CPUs, FPUs and architectures supported | |
22 # by the compiler. It is pre-processed by parsecpu.awk for a number of | |
23 # purposes. | |
24 # | |
25 # The general form is a sequence of begin..end blocks with the following | |
26 # syntax: | |
27 # begin <object-type> <name> | |
28 # attribute-statement* | |
29 # end <object-type> <name> | |
30 # | |
31 # where object type is one of "cpu" "arch" "fpu". Each object type has | |
32 # a specific set of permitted attributes, some of which are optional; further | |
33 # details can be found below. | |
34 # | |
35 # Some objects cross-reference other objects by name. Objects are permitted | |
36 # in any order and it is not necessary to place a cross-referenced object | |
37 # earlier in the file. | |
38 # | |
39 # The object names for cpu, arch and fpu objects are used for the public option | |
40 # names in the final compiler. The order within each group is preserved and | |
41 # forms the order for the list within the compiler. | |
42 | |
43 # Most objects in this file support forward references. The major | |
44 # exception is feature groups, which may only refer to previously | |
45 # defined features or feature groups. This is done to avoid the risk | |
46 # of feature groups recursively referencing each other and causing | |
47 # the parser to hang. | |
48 | |
49 # Features - general convention: all lower case. | |
50 | |
51 # Extended multiply | |
52 define feature armv3m | |
53 | |
54 # 26-bit mode support | |
55 define feature mode26 | |
56 | |
57 # 32-bit mode support | |
58 define feature mode32 | |
59 | |
60 # Architecture rel 4 | |
61 define feature armv4 | |
62 | |
63 # Architecture rel 5 | |
64 define feature armv5 | |
65 | |
66 # Thumb aware. | |
67 define feature thumb | |
68 | |
69 # Architecture rel 5e. | |
70 define feature armv5e | |
71 | |
72 # XScale. | |
73 define feature xscale | |
74 | |
75 # Architecture rel 6. | |
76 define feature armv6 | |
77 | |
78 # Architecture rel 6k. | |
79 define feature armv6k | |
80 | |
81 # Thumb-2. | |
82 define feature thumb2 | |
83 | |
84 # Instructions not present in 'M' profile. | |
85 define feature notm | |
86 | |
87 # Architecture uses be8 mode in big-endian. | |
88 define feature be8 | |
89 | |
90 # Thumb division instructions. | |
91 define feature tdiv | |
92 | |
93 # Architecture rel 7e-m. | |
94 define feature armv7em | |
95 | |
96 # Architecture rel 7. | |
97 define feature armv7 | |
98 | |
99 # ARM division instructions. | |
100 define feature adiv | |
101 | |
102 # Architecture rel 8. | |
103 define feature armv8 | |
104 | |
105 # ARMv8 CRC32 instructions. | |
106 define feature crc32 | |
107 | |
108 # XScale v2 (Wireless MMX). | |
109 define feature iwmmxt | |
110 | |
111 # XScale Wireless MMX2. | |
112 define feature iwmmxt2 | |
113 | |
114 # Architecture rel 8.1. | |
115 define feature armv8_1 | |
116 | |
117 # Architecutre rel 8.2. | |
118 define feature armv8_2 | |
119 | |
120 # M-Profile security extensions. | |
121 define feature cmse | |
122 | |
123 # Floating point and Neon extensions. | |
124 # VFPv1 is not supported in GCC. | |
125 | |
126 # Vector floating point v2. | |
127 define feature vfpv2 | |
128 | |
129 # Vector floating point v3. | |
130 define feature vfpv3 | |
131 | |
132 # Vector floating point v4. | |
133 define feature vfpv4 | |
134 | |
135 # Floating point v5. | |
136 define feature fpv5 | |
137 | |
138 # ARMv7-A LPAE. | |
139 define feature lpae | |
140 | |
141 # Advanced SIMD instructions. | |
142 define feature neon | |
143 | |
144 # Conversions to/from fp16 (VFPv3 extension). | |
145 define feature fp16conv | |
146 | |
147 # Double precision operations supported. | |
148 define feature fp_dbl | |
149 | |
150 # 32 Double precision registers. | |
151 define feature fp_d32 | |
152 | |
153 # Crypto extension to ARMv8. | |
154 define feature crypto | |
155 | |
156 # FP16 data processing (half-precision float). | |
157 define feature fp16 | |
158 | |
159 # Dot Product instructions extension to ARMv8.2-a. | |
160 define feature dotprod | |
161 | |
162 # ISA Quirks (errata?). Don't forget to add this to the fgroup | |
163 # ALL_QUIRKS below. | |
164 | |
165 # No volatile memory in IT blocks. | |
166 define feature quirk_no_volatile_ce | |
167 | |
168 # Previously mis-identified by GCC. | |
169 define feature quirk_armv6kz | |
170 | |
171 # Cortex-M3 LDRD quirk. | |
172 define feature quirk_cm3_ldrd | |
173 | |
174 # (Very) slow multiply operations. Should probably be a tuning bit. | |
175 define feature smallmul | |
176 | |
177 # Feature groups. Conventionally all (or mostly) upper case. | |
178 # ALL_FPU lists all the feature bits associated with the floating-point | |
179 # unit; these will all be removed if the floating-point unit is disabled | |
180 # (eg -mfloat-abi=soft). ALL_FPU_INTERNAL must ONLY contain features that | |
181 # form part of a named -mfpu option; it is used to map the capabilities | |
182 # back to a named FPU for the benefit of the assembler. | |
183 # | |
184 # ALL_SIMD_INTERNAL and ALL_SIMD are similarly defined to help with the | |
185 # construction of ALL_FPU and ALL_FPU_INTERNAL; they describe the SIMD | |
186 # extensions that are either part of a named FPU or optional extensions | |
187 # respectively. | |
188 | |
189 | |
190 # List of all cryptographic extensions to stripout if crypto is | |
191 # disabled. Currently, that's trivial, but we define it anyway for | |
192 # consistency with the SIMD and FP disable lists. | |
193 define fgroup ALL_CRYPTO crypto | |
194 | |
195 # List of all SIMD bits to strip out if SIMD is disabled. This does | |
196 # strip off 32 D-registers, but does not remove support for | |
197 # double-precision FP. | |
198 define fgroup ALL_SIMD_INTERNAL fp_d32 neon ALL_CRYPTO | |
199 define fgroup ALL_SIMD ALL_SIMD_INTERNAL dotprod | |
200 | |
201 # List of all FPU bits to strip out if -mfpu is used to override the | |
202 # default. fp16 is deliberately missing from this list. | |
203 define fgroup ALL_FPU_INTERNAL vfpv2 vfpv3 vfpv4 fpv5 fp16conv fp_dbl ALL_SIMD_INTERNAL | |
204 | |
205 # Similarly, but including fp16 and other extensions that aren't part of | |
206 # -mfpu support. | |
207 define fgroup ALL_FP fp16 ALL_FPU_INTERNAL | |
208 | |
209 define fgroup ARMv2 notm | |
210 define fgroup ARMv3 ARMv2 mode32 | |
211 define fgroup ARMv3m ARMv3 armv3m | |
212 define fgroup ARMv4 ARMv3m armv4 | |
213 define fgroup ARMv4t ARMv4 thumb | |
214 define fgroup ARMv5 ARMv4 armv5 | |
215 define fgroup ARMv5t ARMv5 thumb | |
216 define fgroup ARMv5e ARMv5 armv5e | |
217 define fgroup ARMv5te ARMv5e thumb | |
218 define fgroup ARMv5tej ARMv5te | |
219 define fgroup ARMv6 ARMv5te armv6 be8 | |
220 define fgroup ARMv6j ARMv6 | |
221 define fgroup ARMv6k ARMv6 armv6k | |
222 define fgroup ARMv6z ARMv6 | |
223 define fgroup ARMv6kz ARMv6k quirk_armv6kz | |
224 define fgroup ARMv6zk ARMv6k | |
225 define fgroup ARMv6t2 ARMv6 thumb2 | |
226 # This is suspect. ARMv6-m doesn't really pull in any useful features | |
227 # from ARMv5* or ARMv6. | |
228 define fgroup ARMv6m mode32 armv3m armv4 thumb armv5 armv5e armv6 | |
229 # This is suspect, the 'common' ARMv7 subset excludes the thumb2 'DSP' and | |
230 # integer SIMD instructions that are in ARMv6T2. */ | |
231 define fgroup ARMv7 ARMv6m thumb2 armv7 | |
232 | |
233 define fgroup ARMv7a ARMv7 notm armv6k | |
234 define fgroup ARMv7ve ARMv7a adiv tdiv lpae | |
235 define fgroup ARMv7r ARMv7a tdiv | |
236 define fgroup ARMv7m ARMv7 tdiv | |
237 define fgroup ARMv7em ARMv7m armv7em | |
238 define fgroup ARMv8a ARMv7ve armv8 | |
239 define fgroup ARMv8_1a ARMv8a crc32 armv8_1 | |
240 define fgroup ARMv8_2a ARMv8_1a armv8_2 | |
241 define fgroup ARMv8m_base ARMv6m armv8 cmse tdiv | |
242 define fgroup ARMv8m_main ARMv7m armv8 cmse | |
243 define fgroup ARMv8r ARMv8a | |
244 | |
245 # Useful combinations. | |
246 define fgroup VFPv2 vfpv2 | |
247 define fgroup VFPv3 VFPv2 vfpv3 | |
248 define fgroup VFPv4 VFPv3 vfpv4 fp16conv | |
249 define fgroup FPv5 VFPv4 fpv5 | |
250 | |
251 define fgroup FP_DBL fp_dbl | |
252 define fgroup FP_D32 FP_DBL fp_d32 | |
253 define fgroup FP_ARMv8 FPv5 FP_D32 | |
254 define fgroup NEON FP_D32 neon | |
255 define fgroup CRYPTO NEON crypto | |
256 define fgroup DOTPROD NEON dotprod | |
257 | |
258 # List of all quirk bits to strip out when comparing CPU features with | |
259 # architectures. | |
260 define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd | |
261 | |
262 # Architecture entries | |
263 # format: | |
264 # begin arch <name> | |
265 # tune for <cpu> | |
266 # [tune flags <list>] | |
267 # base <name> | |
268 # [profile <A|R|M>] | |
269 # isa <isa-flags-list> | |
270 # end arch <name> | |
271 # | |
272 | |
273 begin arch armv2 | |
274 tune for arm2 | |
275 tune flags CO_PROC NO_MODE32 | |
276 base 2 | |
277 isa ARMv2 mode26 | |
278 end arch armv2 | |
279 | |
280 begin arch armv2a | |
281 tune for arm2 | |
282 tune flags CO_PROC NO_MODE32 | |
283 base 2 | |
284 isa ARMv2 mode26 | |
285 end arch armv2a | |
286 | |
287 begin arch armv3 | |
288 tune for arm6 | |
289 tune flags CO_PROC | |
290 base 3 | |
291 isa ARMv3 mode26 | |
292 end arch armv3 | |
293 | |
294 begin arch armv3m | |
295 tune for arm7m | |
296 tune flags CO_PROC | |
297 base 3M | |
298 isa ARMv3m mode26 | |
299 end arch armv3m | |
300 | |
301 begin arch armv4 | |
302 tune for arm7tdmi | |
303 tune flags CO_PROC | |
304 base 4 | |
305 isa ARMv4 mode26 | |
306 end arch armv4 | |
307 | |
308 # Strictly, mode26 is a permitted option for v4t, but there are no | |
309 # implementations that support it, so we will leave it out for now. | |
310 begin arch armv4t | |
311 tune for arm7tdmi | |
312 tune flags CO_PROC | |
313 base 4T | |
314 isa ARMv4t | |
315 end arch armv4t | |
316 | |
317 begin arch armv5 | |
318 tune for arm10tdmi | |
319 tune flags CO_PROC | |
320 base 5 | |
321 isa ARMv5 | |
322 end arch armv5 | |
323 | |
324 begin arch armv5t | |
325 tune for arm10tdmi | |
326 tune flags CO_PROC | |
327 base 5T | |
328 isa ARMv5t | |
329 end arch armv5t | |
330 | |
331 begin arch armv5e | |
332 tune for arm1026ej-s | |
333 tune flags CO_PROC | |
334 base 5E | |
335 isa ARMv5e | |
336 option fp add VFPv2 FP_DBL | |
337 optalias vfpv2 fp | |
338 option nofp remove ALL_FP | |
339 end arch armv5e | |
340 | |
341 begin arch armv5te | |
342 tune for arm1026ej-s | |
343 tune flags CO_PROC | |
344 base 5TE | |
345 isa ARMv5te | |
346 option fp add VFPv2 FP_DBL | |
347 optalias vfpv2 fp | |
348 option nofp remove ALL_FP | |
349 end arch armv5te | |
350 | |
351 begin arch armv5tej | |
352 tune for arm1026ej-s | |
353 tune flags CO_PROC | |
354 base 5TEJ | |
355 isa ARMv5tej | |
356 option fp add VFPv2 FP_DBL | |
357 optalias vfpv2 fp | |
358 option nofp remove ALL_FP | |
359 end arch armv5tej | |
360 | |
361 begin arch armv6 | |
362 tune for arm1136j-s | |
363 tune flags CO_PROC | |
364 base 6 | |
365 isa ARMv6 | |
366 option fp add VFPv2 FP_DBL | |
367 optalias vfpv2 fp | |
368 option nofp remove ALL_FP | |
369 end arch armv6 | |
370 | |
371 begin arch armv6j | |
372 tune for arm1136j-s | |
373 tune flags CO_PROC | |
374 base 6J | |
375 isa ARMv6j | |
376 option fp add VFPv2 FP_DBL | |
377 optalias vfpv2 fp | |
378 option nofp remove ALL_FP | |
379 end arch armv6j | |
380 | |
381 begin arch armv6k | |
382 tune for mpcore | |
383 tune flags CO_PROC | |
384 base 6K | |
385 isa ARMv6k | |
386 option fp add VFPv2 FP_DBL | |
387 optalias vfpv2 fp | |
388 option nofp remove ALL_FP | |
389 end arch armv6k | |
390 | |
391 begin arch armv6z | |
392 tune for arm1176jz-s | |
393 tune flags CO_PROC | |
394 base 6Z | |
395 isa ARMv6z | |
396 option fp add VFPv2 FP_DBL | |
397 optalias vfpv2 fp | |
398 option nofp remove ALL_FP | |
399 end arch armv6z | |
400 | |
401 begin arch armv6kz | |
402 tune for arm1176jz-s | |
403 tune flags CO_PROC | |
404 base 6KZ | |
405 isa ARMv6kz | |
406 option fp add VFPv2 FP_DBL | |
407 optalias vfpv2 fp | |
408 option nofp remove ALL_FP | |
409 end arch armv6kz | |
410 | |
411 begin arch armv6zk | |
412 tune for arm1176jz-s | |
413 tune flags CO_PROC | |
414 base 6KZ | |
415 isa ARMv6kz | |
416 option fp add VFPv2 FP_DBL | |
417 optalias vfpv2 fp | |
418 option nofp remove ALL_FP | |
419 end arch armv6zk | |
420 | |
421 begin arch armv6t2 | |
422 tune for arm1156t2-s | |
423 tune flags CO_PROC | |
424 base 6T2 | |
425 isa ARMv6t2 | |
426 option fp add VFPv2 FP_DBL | |
427 optalias vfpv2 fp | |
428 option nofp remove ALL_FP | |
429 end arch armv6t2 | |
430 | |
431 begin arch armv6-m | |
432 tune for cortex-m1 | |
433 base 6M | |
434 profile M | |
435 isa ARMv6m | |
436 end arch armv6-m | |
437 | |
438 begin arch armv6s-m | |
439 tune for cortex-m1 | |
440 base 6M | |
441 profile M | |
442 isa ARMv6m | |
443 end arch armv6s-m | |
444 | |
445 begin arch armv7 | |
446 tune for cortex-a8 | |
447 tune flags CO_PROC | |
448 base 7 | |
449 isa ARMv7 | |
450 # fp => VFPv3-d16 (only useful for the A+R profile subset). | |
451 option fp add VFPv3 FP_DBL | |
452 optalias vfpv3-d16 fp | |
453 option nofp remove ALL_FP | |
454 end arch armv7 | |
455 | |
456 begin arch armv7-a | |
457 tune for cortex-a8 | |
458 tune flags CO_PROC | |
459 base 7A | |
460 profile A | |
461 isa ARMv7a | |
462 # fp => VFPv3-d16, simd => neon-vfpv3 | |
463 option fp add VFPv3 FP_DBL | |
464 optalias vfpv3-d16 fp | |
465 option vfpv3 add VFPv3 FP_D32 | |
466 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv | |
467 option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv | |
468 option vfpv4-d16 add VFPv4 FP_DBL | |
469 option vfpv4 add VFPv4 FP_D32 | |
470 option simd add VFPv3 NEON | |
471 optalias neon simd | |
472 optalias neon-vfpv3 simd | |
473 option neon-fp16 add VFPv3 NEON fp16conv | |
474 option neon-vfpv4 add VFPv4 NEON | |
475 option nosimd remove ALL_SIMD | |
476 option nofp remove ALL_FP | |
477 end arch armv7-a | |
478 | |
479 begin arch armv7ve | |
480 tune for cortex-a8 | |
481 tune flags CO_PROC | |
482 base 7A | |
483 profile A | |
484 isa ARMv7ve | |
485 # fp => VFPv4-d16, simd => neon-vfpv4 | |
486 option vfpv3-d16 add VFPv3 FP_DBL | |
487 option vfpv3 add VFPv3 FP_D32 | |
488 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv | |
489 option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv | |
490 option fp add VFPv4 FP_DBL | |
491 optalias vfpv4-d16 fp | |
492 option vfpv4 add VFPv4 FP_D32 | |
493 option neon add VFPv3 NEON | |
494 optalias neon-vfpv3 neon | |
495 option neon-fp16 add VFPv3 NEON fp16conv | |
496 option simd add VFPv4 NEON | |
497 optalias neon-vfpv4 simd | |
498 option nosimd remove ALL_SIMD | |
499 option nofp remove ALL_FP | |
500 end arch armv7ve | |
501 | |
502 begin arch armv7-r | |
503 tune for cortex-r4 | |
504 tune flags CO_PROC | |
505 base 7R | |
506 profile R | |
507 isa ARMv7r | |
508 # ARMv7-r uses VFPv3-d16 | |
509 option fp.sp add VFPv3 | |
510 optalias vfpv3xd fp.sp | |
511 option fp add VFPv3 FP_DBL | |
512 optalias vfpv3-d16 fp | |
513 option idiv add adiv | |
514 option nofp remove ALL_FP | |
515 option noidiv remove adiv | |
516 end arch armv7-r | |
517 | |
518 begin arch armv7-m | |
519 tune for cortex-m3 | |
520 tune flags CO_PROC | |
521 base 7M | |
522 profile M | |
523 isa ARMv7m | |
524 # In theory FP is permitted in v7-m, but in practice no implementations exist. | |
525 # leave it out for now. | |
526 end arch armv7-m | |
527 | |
528 begin arch armv7e-m | |
529 tune for cortex-m4 | |
530 tune flags CO_PROC | |
531 base 7EM | |
532 profile M | |
533 isa ARMv7em | |
534 # fp => VFPv4-sp-d16; fpv5 => FPv5-sp-d16; fp.dp => FPv5-d16 | |
535 option fp add VFPv4 | |
536 optalias vfpv4-sp-d16 fp | |
537 option fpv5 add FPv5 | |
538 option fp.dp add FPv5 FP_DBL | |
539 optalias fpv5-d16 fp.dp | |
540 option nofp remove ALL_FP | |
541 end arch armv7e-m | |
542 | |
543 begin arch armv8-a | |
544 tune for cortex-a53 | |
545 tune flags CO_PROC | |
546 base 8A | |
547 profile A | |
548 isa ARMv8a | |
549 option crc add crc32 | |
550 option simd add FP_ARMv8 NEON | |
551 option crypto add FP_ARMv8 CRYPTO | |
552 option nocrypto remove ALL_CRYPTO | |
553 option nofp remove ALL_FP | |
554 end arch armv8-a | |
555 | |
556 begin arch armv8.1-a | |
557 tune for cortex-a53 | |
558 tune flags CO_PROC | |
559 base 8A | |
560 profile A | |
561 isa ARMv8_1a | |
562 option simd add FP_ARMv8 NEON | |
563 option crypto add FP_ARMv8 CRYPTO | |
564 option nocrypto remove ALL_CRYPTO | |
565 option nofp remove ALL_FP | |
566 end arch armv8.1-a | |
567 | |
568 begin arch armv8.2-a | |
569 tune for cortex-a53 | |
570 tune flags CO_PROC | |
571 base 8A | |
572 profile A | |
573 isa ARMv8_2a | |
574 option simd add FP_ARMv8 NEON | |
575 option fp16 add fp16 FP_ARMv8 NEON | |
576 option crypto add FP_ARMv8 CRYPTO | |
577 option nocrypto remove ALL_CRYPTO | |
578 option nofp remove ALL_FP | |
579 option dotprod add FP_ARMv8 DOTPROD | |
580 end arch armv8.2-a | |
581 | |
582 begin arch armv8-m.base | |
583 tune for cortex-m23 | |
584 base 8M_BASE | |
585 profile M | |
586 isa ARMv8m_base | |
587 end arch armv8-m.base | |
588 | |
589 begin arch armv8-m.main | |
590 tune for cortex-m7 | |
591 tune flags CO_PROC | |
592 base 8M_MAIN | |
593 profile M | |
594 isa ARMv8m_main | |
595 option dsp add armv7em | |
596 # fp => FPv5-sp-d16; fp.dp => FPv5-d16 | |
597 option fp add FPv5 | |
598 option fp.dp add FPv5 FP_DBL | |
599 option nofp remove ALL_FP | |
600 option nodsp remove armv7em | |
601 end arch armv8-m.main | |
602 | |
603 begin arch armv8-r | |
604 tune for cortex-r52 | |
605 tune flags CO_PROC | |
606 base 8R | |
607 profile R | |
608 isa ARMv8r | |
609 option crc add crc32 | |
610 # fp.sp => fp-armv8 (d16); simd => simd + fp-armv8 + d32 + double precision | |
611 # note: no fp option for fp-armv8 (d16) + double precision at the moment | |
612 option fp.sp add FPv5 | |
613 option simd add FP_ARMv8 NEON | |
614 option crypto add FP_ARMv8 CRYPTO | |
615 option nocrypto remove ALL_CRYPTO | |
616 option nofp remove ALL_FP | |
617 end arch armv8-r | |
618 | |
619 begin arch iwmmxt | |
620 tune for iwmmxt | |
621 tune flags LDSCHED STRONG XSCALE | |
622 base 5TE | |
623 isa ARMv5te xscale iwmmxt | |
624 end arch iwmmxt | |
625 | |
626 begin arch iwmmxt2 | |
627 tune for iwmmxt2 | |
628 tune flags LDSCHED STRONG XSCALE | |
629 base 5TE | |
630 isa ARMv5te xscale iwmmxt iwmmxt2 | |
631 end arch iwmmxt2 | |
632 | |
633 # CPU entries | |
634 # format: | |
635 # begin cpu <name> | |
636 # [cname <c-compatible-name>] | |
637 # [tune for <cpu-name>] | |
638 # [tune flags <list>] | |
639 # architecture <name> | |
640 # [fpu <name>] | |
641 # [isa <additional-isa-flags-list>] | |
642 # [option <name> add|remove <isa-list>]* | |
643 # [optalias <name> <optname>]* | |
644 # [costs <name>] | |
645 # end cpu <name> | |
646 # | |
647 # If omitted, cname is formed from transforming the cpuname to convert | |
648 # non-valid punctuation characters to '_'. | |
649 # If specified, tune for specifies a CPU target to use for tuning this core. | |
650 # isa flags are appended to those defined by the architecture. | |
651 # Each add option must have a distinct feature set and each remove | |
652 # option must similarly have a distinct feature set. Option aliases can be | |
653 # added with the optalias statement | |
654 | |
655 # V2/V2A Architecture Processors | |
656 begin cpu arm2 | |
657 tune flags CO_PROC NO_MODE32 | |
658 architecture armv2 | |
659 costs slowmul | |
660 end cpu arm2 | |
661 | |
662 begin cpu arm250 | |
663 tune flags CO_PROC NO_MODE32 | |
664 architecture armv2 | |
665 costs slowmul | |
666 end cpu arm250 | |
667 | |
668 begin cpu arm3 | |
669 tune flags CO_PROC NO_MODE32 | |
670 architecture armv2 | |
671 costs slowmul | |
672 end cpu arm3 | |
673 | |
674 | |
675 # V3 Architecture Processors | |
676 begin cpu arm6 | |
677 tune flags CO_PROC | |
678 architecture armv3 | |
679 costs slowmul | |
680 end cpu arm6 | |
681 | |
682 begin cpu arm60 | |
683 tune flags CO_PROC | |
684 architecture armv3 | |
685 costs slowmul | |
686 end cpu arm60 | |
687 | |
688 begin cpu arm600 | |
689 tune flags CO_PROC WBUF | |
690 architecture armv3 | |
691 costs slowmul | |
692 end cpu arm600 | |
693 | |
694 begin cpu arm610 | |
695 tune flags WBUF | |
696 architecture armv3 | |
697 costs slowmul | |
698 end cpu arm610 | |
699 | |
700 begin cpu arm620 | |
701 tune flags CO_PROC WBUF | |
702 architecture armv3 | |
703 costs slowmul | |
704 end cpu arm620 | |
705 | |
706 begin cpu arm7 | |
707 tune flags CO_PROC | |
708 architecture armv3 | |
709 costs slowmul | |
710 end cpu arm7 | |
711 | |
712 begin cpu arm7d | |
713 tune flags CO_PROC | |
714 architecture armv3 | |
715 costs slowmul | |
716 end cpu arm7d | |
717 | |
718 begin cpu arm7di | |
719 tune flags CO_PROC | |
720 architecture armv3 | |
721 costs slowmul | |
722 end cpu arm7di | |
723 | |
724 begin cpu arm70 | |
725 tune flags CO_PROC | |
726 architecture armv3 | |
727 costs slowmul | |
728 end cpu arm70 | |
729 | |
730 begin cpu arm700 | |
731 tune flags CO_PROC WBUF | |
732 architecture armv3 | |
733 costs slowmul | |
734 end cpu arm700 | |
735 | |
736 begin cpu arm700i | |
737 tune flags CO_PROC WBUF | |
738 architecture armv3 | |
739 costs slowmul | |
740 end cpu arm700i | |
741 | |
742 begin cpu arm710 | |
743 tune flags WBUF | |
744 architecture armv3 | |
745 costs slowmul | |
746 end cpu arm710 | |
747 | |
748 begin cpu arm720 | |
749 tune flags WBUF | |
750 architecture armv3 | |
751 costs slowmul | |
752 end cpu arm720 | |
753 | |
754 begin cpu arm710c | |
755 tune flags WBUF | |
756 architecture armv3 | |
757 costs slowmul | |
758 end cpu arm710c | |
759 | |
760 begin cpu arm7100 | |
761 tune flags WBUF | |
762 architecture armv3 | |
763 costs slowmul | |
764 end cpu arm7100 | |
765 | |
766 begin cpu arm7500 | |
767 tune flags WBUF | |
768 architecture armv3 | |
769 costs slowmul | |
770 end cpu arm7500 | |
771 | |
772 # Doesn't have an external co-proc, but does have embedded FPA | |
773 # (the FPA part is no-longer supported). | |
774 begin cpu arm7500fe | |
775 tune flags CO_PROC WBUF | |
776 architecture armv3 | |
777 costs slowmul | |
778 end cpu arm7500fe | |
779 | |
780 | |
781 # V3M Architecture Processors | |
782 # arm7m doesn't exist on its own, but only with "D", (and "I"), but | |
783 # those don't alter the code, so arm7m is sometimes used. | |
784 begin cpu arm7m | |
785 tune flags CO_PROC | |
786 architecture armv3m | |
787 costs fastmul | |
788 end cpu arm7m | |
789 | |
790 begin cpu arm7dm | |
791 tune flags CO_PROC | |
792 architecture armv3m | |
793 costs fastmul | |
794 end cpu arm7dm | |
795 | |
796 begin cpu arm7dmi | |
797 tune flags CO_PROC | |
798 architecture armv3m | |
799 costs fastmul | |
800 end cpu arm7dmi | |
801 | |
802 | |
803 # V4 Architecture Processors | |
804 begin cpu arm8 | |
805 tune flags LDSCHED | |
806 architecture armv4 | |
807 costs fastmul | |
808 end cpu arm8 | |
809 | |
810 begin cpu arm810 | |
811 tune flags LDSCHED | |
812 architecture armv4 | |
813 costs fastmul | |
814 end cpu arm810 | |
815 | |
816 begin cpu strongarm | |
817 tune flags LDSCHED STRONG | |
818 architecture armv4 | |
819 costs strongarm | |
820 end cpu strongarm | |
821 | |
822 begin cpu strongarm110 | |
823 tune flags LDSCHED STRONG | |
824 architecture armv4 | |
825 costs strongarm | |
826 end cpu strongarm110 | |
827 | |
828 begin cpu strongarm1100 | |
829 tune flags LDSCHED STRONG | |
830 architecture armv4 | |
831 costs strongarm | |
832 end cpu strongarm1100 | |
833 | |
834 begin cpu strongarm1110 | |
835 tune flags LDSCHED STRONG | |
836 architecture armv4 | |
837 costs strongarm | |
838 end cpu strongarm1110 | |
839 | |
840 begin cpu fa526 | |
841 tune flags LDSCHED | |
842 architecture armv4 | |
843 costs fastmul | |
844 end cpu fa526 | |
845 | |
846 begin cpu fa626 | |
847 tune flags LDSCHED | |
848 architecture armv4 | |
849 costs fastmul | |
850 end cpu fa626 | |
851 | |
852 | |
853 # V4T Architecture Processors | |
854 begin cpu arm7tdmi | |
855 tune flags CO_PROC | |
856 architecture armv4t | |
857 costs fastmul | |
858 end cpu arm7tdmi | |
859 | |
860 begin cpu arm7tdmi-s | |
861 cname arm7tdmis | |
862 tune flags CO_PROC | |
863 architecture armv4t | |
864 costs fastmul | |
865 end cpu arm7tdmi-s | |
866 | |
867 begin cpu arm710t | |
868 tune flags WBUF | |
869 architecture armv4t | |
870 costs fastmul | |
871 end cpu arm710t | |
872 | |
873 begin cpu arm720t | |
874 tune flags WBUF | |
875 architecture armv4t | |
876 costs fastmul | |
877 end cpu arm720t | |
878 | |
879 begin cpu arm740t | |
880 tune flags WBUF | |
881 architecture armv4t | |
882 costs fastmul | |
883 end cpu arm740t | |
884 | |
885 begin cpu arm9 | |
886 tune flags LDSCHED | |
887 architecture armv4t | |
888 costs fastmul | |
889 end cpu arm9 | |
890 | |
891 begin cpu arm9tdmi | |
892 tune flags LDSCHED | |
893 architecture armv4t | |
894 costs fastmul | |
895 end cpu arm9tdmi | |
896 | |
897 begin cpu arm920 | |
898 tune flags LDSCHED | |
899 architecture armv4t | |
900 costs fastmul | |
901 end cpu arm920 | |
902 | |
903 begin cpu arm920t | |
904 tune flags LDSCHED | |
905 architecture armv4t | |
906 costs fastmul | |
907 end cpu arm920t | |
908 | |
909 begin cpu arm922t | |
910 tune flags LDSCHED | |
911 architecture armv4t | |
912 costs fastmul | |
913 end cpu arm922t | |
914 | |
915 begin cpu arm940t | |
916 tune flags LDSCHED | |
917 architecture armv4t | |
918 costs fastmul | |
919 end cpu arm940t | |
920 | |
921 begin cpu ep9312 | |
922 tune flags LDSCHED | |
923 architecture armv4t | |
924 costs fastmul | |
925 end cpu ep9312 | |
926 | |
927 | |
928 # V5T Architecture Processors | |
929 # These used VFPv1 which isn't supported by GCC | |
930 begin cpu arm10tdmi | |
931 tune flags LDSCHED | |
932 architecture armv5t | |
933 costs fastmul | |
934 end cpu arm10tdmi | |
935 | |
936 begin cpu arm1020t | |
937 tune flags LDSCHED | |
938 architecture armv5t | |
939 costs fastmul | |
940 end cpu arm1020t | |
941 | |
942 | |
943 # V5TE Architecture Processors | |
944 begin cpu arm9e | |
945 tune flags LDSCHED | |
946 architecture armv5te | |
947 fpu vfpv2 | |
948 option nofp remove ALL_FP | |
949 costs 9e | |
950 end cpu arm9e | |
951 | |
952 begin cpu arm946e-s | |
953 cname arm946es | |
954 tune flags LDSCHED | |
955 architecture armv5te | |
956 fpu vfpv2 | |
957 option nofp remove ALL_FP | |
958 costs 9e | |
959 end cpu arm946e-s | |
960 | |
961 begin cpu arm966e-s | |
962 cname arm966es | |
963 tune flags LDSCHED | |
964 architecture armv5te | |
965 fpu vfpv2 | |
966 option nofp remove ALL_FP | |
967 costs 9e | |
968 end cpu arm966e-s | |
969 | |
970 begin cpu arm968e-s | |
971 cname arm968es | |
972 tune flags LDSCHED | |
973 architecture armv5te | |
974 fpu vfpv2 | |
975 option nofp remove ALL_FP | |
976 costs 9e | |
977 end cpu arm968e-s | |
978 | |
979 begin cpu arm10e | |
980 tune flags LDSCHED | |
981 architecture armv5te | |
982 fpu vfpv2 | |
983 option nofp remove ALL_FP | |
984 costs fastmul | |
985 end cpu arm10e | |
986 | |
987 begin cpu arm1020e | |
988 tune flags LDSCHED | |
989 architecture armv5te | |
990 fpu vfpv2 | |
991 option nofp remove ALL_FP | |
992 costs fastmul | |
993 end cpu arm1020e | |
994 | |
995 begin cpu arm1022e | |
996 tune flags LDSCHED | |
997 architecture armv5te | |
998 fpu vfpv2 | |
999 option nofp remove ALL_FP | |
1000 costs fastmul | |
1001 end cpu arm1022e | |
1002 | |
1003 begin cpu xscale | |
1004 tune flags LDSCHED XSCALE | |
1005 architecture armv5te | |
1006 isa xscale | |
1007 costs xscale | |
1008 end cpu xscale | |
1009 | |
1010 begin cpu iwmmxt | |
1011 tune flags LDSCHED XSCALE | |
1012 architecture iwmmxt | |
1013 costs xscale | |
1014 end cpu iwmmxt | |
1015 | |
1016 begin cpu iwmmxt2 | |
1017 tune flags LDSCHED XSCALE | |
1018 architecture iwmmxt2 | |
1019 costs xscale | |
1020 end cpu iwmmxt2 | |
1021 | |
1022 begin cpu fa606te | |
1023 tune flags LDSCHED | |
1024 architecture armv5te | |
1025 costs 9e | |
1026 end cpu fa606te | |
1027 | |
1028 begin cpu fa626te | |
1029 tune flags LDSCHED | |
1030 architecture armv5te | |
1031 costs 9e | |
1032 end cpu fa626te | |
1033 | |
1034 begin cpu fmp626 | |
1035 tune flags LDSCHED | |
1036 architecture armv5te | |
1037 costs 9e | |
1038 end cpu fmp626 | |
1039 | |
1040 begin cpu fa726te | |
1041 tune flags LDSCHED | |
1042 architecture armv5te | |
1043 costs fa726te | |
1044 end cpu fa726te | |
1045 | |
1046 | |
1047 # V5TEJ Architecture Processors | |
1048 begin cpu arm926ej-s | |
1049 cname arm926ejs | |
1050 tune flags LDSCHED | |
1051 architecture armv5tej | |
1052 fpu vfpv2 | |
1053 option nofp remove ALL_FP | |
1054 costs 9e | |
1055 end cpu arm926ej-s | |
1056 | |
1057 begin cpu arm1026ej-s | |
1058 cname arm1026ejs | |
1059 tune flags LDSCHED | |
1060 architecture armv5tej | |
1061 fpu vfpv2 | |
1062 option nofp remove ALL_FP | |
1063 costs 9e | |
1064 end cpu arm1026ej-s | |
1065 | |
1066 | |
1067 # V6 Architecture Processors | |
1068 begin cpu arm1136j-s | |
1069 cname arm1136js | |
1070 tune flags LDSCHED | |
1071 architecture armv6j | |
1072 costs 9e | |
1073 end cpu arm1136j-s | |
1074 | |
1075 begin cpu arm1136jf-s | |
1076 cname arm1136jfs | |
1077 tune flags LDSCHED | |
1078 architecture armv6j | |
1079 fpu vfpv2 | |
1080 costs 9e | |
1081 end cpu arm1136jf-s | |
1082 | |
1083 begin cpu arm1176jz-s | |
1084 cname arm1176jzs | |
1085 tune flags LDSCHED | |
1086 architecture armv6kz | |
1087 costs 9e | |
1088 end cpu arm1176jz-s | |
1089 | |
1090 begin cpu arm1176jzf-s | |
1091 cname arm1176jzfs | |
1092 tune flags LDSCHED | |
1093 architecture armv6kz | |
1094 fpu vfpv2 | |
1095 costs 9e | |
1096 end cpu arm1176jzf-s | |
1097 | |
1098 begin cpu mpcorenovfp | |
1099 tune flags LDSCHED | |
1100 architecture armv6k | |
1101 costs 9e | |
1102 end cpu mpcorenovfp | |
1103 | |
1104 begin cpu mpcore | |
1105 tune flags LDSCHED | |
1106 architecture armv6k | |
1107 fpu vfpv2 | |
1108 costs 9e | |
1109 end cpu mpcore | |
1110 | |
1111 begin cpu arm1156t2-s | |
1112 cname arm1156t2s | |
1113 tune flags LDSCHED | |
1114 architecture armv6t2 | |
1115 costs v6t2 | |
1116 end cpu arm1156t2-s | |
1117 | |
1118 begin cpu arm1156t2f-s | |
1119 cname arm1156t2fs | |
1120 tune flags LDSCHED | |
1121 architecture armv6t2 | |
1122 fpu vfpv2 | |
1123 costs v6t2 | |
1124 end cpu arm1156t2f-s | |
1125 | |
1126 | |
1127 # V6M Architecture Processors | |
1128 begin cpu cortex-m1 | |
1129 cname cortexm1 | |
1130 tune flags LDSCHED | |
1131 architecture armv6-m | |
1132 costs v6m | |
1133 end cpu cortex-m1 | |
1134 | |
1135 begin cpu cortex-m0 | |
1136 cname cortexm0 | |
1137 tune flags LDSCHED | |
1138 architecture armv6-m | |
1139 costs v6m | |
1140 end cpu cortex-m0 | |
1141 | |
1142 begin cpu cortex-m0plus | |
1143 cname cortexm0plus | |
1144 tune flags LDSCHED | |
1145 architecture armv6-m | |
1146 costs v6m | |
1147 end cpu cortex-m0plus | |
1148 | |
1149 | |
1150 # V6M Architecture Processors for small-multiply implementations. | |
1151 begin cpu cortex-m1.small-multiply | |
1152 cname cortexm1smallmultiply | |
1153 tune for cortex-m1 | |
1154 tune flags LDSCHED SMALLMUL | |
1155 architecture armv6-m | |
1156 costs v6m | |
1157 end cpu cortex-m1.small-multiply | |
1158 | |
1159 begin cpu cortex-m0.small-multiply | |
1160 cname cortexm0smallmultiply | |
1161 tune for cortex-m0 | |
1162 tune flags LDSCHED SMALLMUL | |
1163 architecture armv6-m | |
1164 costs v6m | |
1165 end cpu cortex-m0.small-multiply | |
1166 | |
1167 begin cpu cortex-m0plus.small-multiply | |
1168 cname cortexm0plussmallmultiply | |
1169 tune for cortex-m0plus | |
1170 tune flags LDSCHED SMALLMUL | |
1171 architecture armv6-m | |
1172 costs v6m | |
1173 end cpu cortex-m0plus.small-multiply | |
1174 | |
1175 | |
1176 # V7 Architecture Processors | |
1177 begin cpu generic-armv7-a | |
1178 cname genericv7a | |
1179 tune flags LDSCHED | |
1180 architecture armv7-a | |
1181 fpu vfpv3-d16 | |
1182 option vfpv3-d16 add VFPv3 FP_DBL | |
1183 option vfpv3 add VFPv3 FP_D32 | |
1184 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv | |
1185 option vfpv3-fp16 add VFPv3 FP_D32 fp16conv | |
1186 option vfpv4-d16 add VFPv4 FP_DBL | |
1187 option vfpv4 add VFPv4 FP_D32 | |
1188 option simd add VFPv3 NEON | |
1189 optalias neon simd | |
1190 optalias neon-vfpv3 simd | |
1191 option neon-fp16 add VFPv3 NEON fp16conv | |
1192 option neon-vfpv4 add VFPv4 NEON | |
1193 option nosimd remove ALL_SIMD | |
1194 option nofp remove ALL_FP | |
1195 costs cortex | |
1196 end cpu generic-armv7-a | |
1197 | |
1198 begin cpu cortex-a5 | |
1199 cname cortexa5 | |
1200 tune flags LDSCHED | |
1201 architecture armv7-a | |
1202 fpu neon-fp16 | |
1203 option nosimd remove ALL_SIMD | |
1204 option nofp remove ALL_FP | |
1205 costs cortex_a5 | |
1206 end cpu cortex-a5 | |
1207 | |
1208 begin cpu cortex-a7 | |
1209 cname cortexa7 | |
1210 tune flags LDSCHED | |
1211 architecture armv7ve | |
1212 fpu neon-vfpv4 | |
1213 option nosimd remove ALL_SIMD | |
1214 option nofp remove ALL_FP | |
1215 costs cortex_a7 | |
1216 end cpu cortex-a7 | |
1217 | |
1218 begin cpu cortex-a8 | |
1219 cname cortexa8 | |
1220 tune flags LDSCHED | |
1221 architecture armv7-a | |
1222 fpu neon-vfpv3 | |
1223 option nofp remove ALL_FP | |
1224 costs cortex_a8 | |
1225 end cpu cortex-a8 | |
1226 | |
1227 begin cpu cortex-a9 | |
1228 cname cortexa9 | |
1229 tune flags LDSCHED | |
1230 architecture armv7-a | |
1231 fpu neon-fp16 | |
1232 option nosimd remove ALL_SIMD | |
1233 option nofp remove ALL_FP | |
1234 costs cortex_a9 | |
1235 end cpu cortex-a9 | |
1236 | |
1237 begin cpu cortex-a12 | |
1238 cname cortexa12 | |
1239 tune for cortex-a17 | |
1240 tune flags LDSCHED | |
1241 architecture armv7ve | |
1242 fpu neon-vfpv4 | |
1243 option nofp remove ALL_FP | |
1244 costs cortex_a12 | |
1245 end cpu cortex-a12 | |
1246 | |
1247 begin cpu cortex-a15 | |
1248 cname cortexa15 | |
1249 tune flags LDSCHED | |
1250 architecture armv7ve | |
1251 fpu neon-vfpv4 | |
1252 option nofp remove ALL_FP | |
1253 costs cortex_a15 | |
1254 end cpu cortex-a15 | |
1255 | |
1256 begin cpu cortex-a17 | |
1257 cname cortexa17 | |
1258 tune flags LDSCHED | |
1259 architecture armv7ve | |
1260 fpu neon-vfpv4 | |
1261 option nofp remove ALL_FP | |
1262 costs cortex_a12 | |
1263 end cpu cortex-a17 | |
1264 | |
1265 begin cpu cortex-r4 | |
1266 cname cortexr4 | |
1267 tune flags LDSCHED | |
1268 architecture armv7-r | |
1269 costs cortex | |
1270 end cpu cortex-r4 | |
1271 | |
1272 begin cpu cortex-r4f | |
1273 cname cortexr4f | |
1274 tune flags LDSCHED | |
1275 architecture armv7-r | |
1276 fpu vfpv3-d16 | |
1277 costs cortex | |
1278 end cpu cortex-r4f | |
1279 | |
1280 begin cpu cortex-r5 | |
1281 cname cortexr5 | |
1282 tune flags LDSCHED | |
1283 architecture armv7-r+idiv | |
1284 fpu vfpv3-d16 | |
1285 option nofp.dp remove FP_DBL | |
1286 option nofp remove ALL_FP | |
1287 costs cortex | |
1288 end cpu cortex-r5 | |
1289 | |
1290 begin cpu cortex-r7 | |
1291 cname cortexr7 | |
1292 tune flags LDSCHED | |
1293 architecture armv7-r+idiv | |
1294 fpu vfpv3-d16 | |
1295 option nofp remove ALL_FP | |
1296 costs cortex | |
1297 end cpu cortex-r7 | |
1298 | |
1299 begin cpu cortex-r8 | |
1300 cname cortexr8 | |
1301 tune for cortex-r7 | |
1302 tune flags LDSCHED | |
1303 architecture armv7-r+idiv | |
1304 fpu vfpv3-d16 | |
1305 option nofp remove ALL_FP | |
1306 costs cortex | |
1307 end cpu cortex-r8 | |
1308 | |
1309 begin cpu cortex-m7 | |
1310 cname cortexm7 | |
1311 tune flags LDSCHED | |
1312 architecture armv7e-m | |
1313 isa quirk_no_volatile_ce | |
1314 fpu fpv5-d16 | |
1315 option nofp.dp remove FP_DBL | |
1316 option nofp remove ALL_FP | |
1317 costs cortex_m7 | |
1318 end cpu cortex-m7 | |
1319 | |
1320 begin cpu cortex-m4 | |
1321 cname cortexm4 | |
1322 tune flags LDSCHED | |
1323 architecture armv7e-m | |
1324 fpu fpv4-sp-d16 | |
1325 option nofp remove ALL_FP | |
1326 costs v7m | |
1327 end cpu cortex-m4 | |
1328 | |
1329 begin cpu cortex-m3 | |
1330 cname cortexm3 | |
1331 tune flags LDSCHED | |
1332 architecture armv7-m | |
1333 isa quirk_cm3_ldrd | |
1334 costs v7m | |
1335 end cpu cortex-m3 | |
1336 | |
1337 begin cpu marvell-pj4 | |
1338 tune flags LDSCHED | |
1339 architecture armv7-a | |
1340 costs marvell_pj4 | |
1341 end cpu marvell-pj4 | |
1342 | |
1343 | |
1344 # V7 big.LITTLE implementations | |
1345 begin cpu cortex-a15.cortex-a7 | |
1346 cname cortexa15cortexa7 | |
1347 tune for cortex-a7 | |
1348 tune flags LDSCHED | |
1349 architecture armv7ve | |
1350 fpu neon-vfpv4 | |
1351 option nofp remove ALL_FP | |
1352 costs cortex_a15 | |
1353 end cpu cortex-a15.cortex-a7 | |
1354 | |
1355 begin cpu cortex-a17.cortex-a7 | |
1356 cname cortexa17cortexa7 | |
1357 tune for cortex-a7 | |
1358 tune flags LDSCHED | |
1359 architecture armv7ve | |
1360 fpu neon-vfpv4 | |
1361 option nofp remove ALL_FP | |
1362 costs cortex_a12 | |
1363 end cpu cortex-a17.cortex-a7 | |
1364 | |
1365 | |
1366 # V8 A-profile Architecture Processors | |
1367 begin cpu cortex-a32 | |
1368 cname cortexa32 | |
1369 tune for cortex-a53 | |
1370 tune flags LDSCHED | |
1371 architecture armv8-a+crc | |
1372 fpu neon-fp-armv8 | |
1373 option crypto add FP_ARMv8 CRYPTO | |
1374 option nofp remove ALL_FP | |
1375 costs cortex_a35 | |
1376 end cpu cortex-a32 | |
1377 | |
1378 begin cpu cortex-a35 | |
1379 cname cortexa35 | |
1380 tune for cortex-a53 | |
1381 tune flags LDSCHED | |
1382 architecture armv8-a+crc | |
1383 fpu neon-fp-armv8 | |
1384 option crypto add FP_ARMv8 CRYPTO | |
1385 option nofp remove ALL_FP | |
1386 costs cortex_a35 | |
1387 end cpu cortex-a35 | |
1388 | |
1389 begin cpu cortex-a53 | |
1390 cname cortexa53 | |
1391 tune flags LDSCHED | |
1392 architecture armv8-a+crc | |
1393 fpu neon-fp-armv8 | |
1394 option crypto add FP_ARMv8 CRYPTO | |
1395 option nofp remove ALL_FP | |
1396 costs cortex_a53 | |
1397 end cpu cortex-a53 | |
1398 | |
1399 begin cpu cortex-a57 | |
1400 cname cortexa57 | |
1401 tune flags LDSCHED | |
1402 architecture armv8-a+crc | |
1403 fpu neon-fp-armv8 | |
1404 option crypto add FP_ARMv8 CRYPTO | |
1405 costs cortex_a57 | |
1406 end cpu cortex-a57 | |
1407 | |
1408 begin cpu cortex-a72 | |
1409 cname cortexa72 | |
1410 tune for cortex-a57 | |
1411 tune flags LDSCHED | |
1412 architecture armv8-a+crc | |
1413 fpu neon-fp-armv8 | |
1414 option crypto add FP_ARMv8 CRYPTO | |
1415 costs cortex_a57 | |
1416 end cpu cortex-a72 | |
1417 | |
1418 begin cpu cortex-a73 | |
1419 cname cortexa73 | |
1420 tune for cortex-a57 | |
1421 tune flags LDSCHED | |
1422 architecture armv8-a+crc | |
1423 fpu neon-fp-armv8 | |
1424 option crypto add FP_ARMv8 CRYPTO | |
1425 costs cortex_a73 | |
1426 end cpu cortex-a73 | |
1427 | |
1428 begin cpu exynos-m1 | |
1429 cname exynosm1 | |
1430 tune flags LDSCHED | |
1431 architecture armv8-a+crc | |
1432 fpu neon-fp-armv8 | |
1433 option crypto add FP_ARMv8 CRYPTO | |
1434 costs exynosm1 | |
1435 end cpu exynos-m1 | |
1436 | |
1437 begin cpu xgene1 | |
1438 tune flags LDSCHED | |
1439 architecture armv8-a | |
1440 fpu neon-fp-armv8 | |
1441 option crypto add FP_ARMv8 CRYPTO | |
1442 costs xgene1 | |
1443 end cpu xgene1 | |
1444 | |
1445 # V8 A-profile big.LITTLE implementations | |
1446 begin cpu cortex-a57.cortex-a53 | |
1447 cname cortexa57cortexa53 | |
1448 tune for cortex-a53 | |
1449 tune flags LDSCHED | |
1450 architecture armv8-a+crc | |
1451 fpu neon-fp-armv8 | |
1452 option crypto add FP_ARMv8 CRYPTO | |
1453 costs cortex_a57 | |
1454 end cpu cortex-a57.cortex-a53 | |
1455 | |
1456 begin cpu cortex-a72.cortex-a53 | |
1457 cname cortexa72cortexa53 | |
1458 tune for cortex-a53 | |
1459 tune flags LDSCHED | |
1460 architecture armv8-a+crc | |
1461 fpu neon-fp-armv8 | |
1462 option crypto add FP_ARMv8 CRYPTO | |
1463 costs cortex_a57 | |
1464 end cpu cortex-a72.cortex-a53 | |
1465 | |
1466 begin cpu cortex-a73.cortex-a35 | |
1467 cname cortexa73cortexa35 | |
1468 tune for cortex-a53 | |
1469 tune flags LDSCHED | |
1470 architecture armv8-a+crc | |
1471 fpu neon-fp-armv8 | |
1472 option crypto add FP_ARMv8 CRYPTO | |
1473 costs cortex_a73 | |
1474 end cpu cortex-a73.cortex-a35 | |
1475 | |
1476 begin cpu cortex-a73.cortex-a53 | |
1477 cname cortexa73cortexa53 | |
1478 tune for cortex-a53 | |
1479 tune flags LDSCHED | |
1480 architecture armv8-a+crc | |
1481 fpu neon-fp-armv8 | |
1482 option crypto add FP_ARMv8 CRYPTO | |
1483 costs cortex_a73 | |
1484 end cpu cortex-a73.cortex-a53 | |
1485 | |
1486 | |
1487 # ARMv8.2 A-profile Architecture Processors | |
1488 begin cpu cortex-a55 | |
1489 cname cortexa55 | |
1490 tune for cortex-a53 | |
1491 tune flags LDSCHED | |
1492 architecture armv8.2-a+fp16+dotprod | |
1493 fpu neon-fp-armv8 | |
1494 option crypto add FP_ARMv8 CRYPTO | |
1495 option nofp remove ALL_FP | |
1496 costs cortex_a53 | |
1497 end cpu cortex-a55 | |
1498 | |
1499 begin cpu cortex-a75 | |
1500 cname cortexa75 | |
1501 tune for cortex-a57 | |
1502 tune flags LDSCHED | |
1503 architecture armv8.2-a+fp16+dotprod | |
1504 fpu neon-fp-armv8 | |
1505 option crypto add FP_ARMv8 CRYPTO | |
1506 costs cortex_a73 | |
1507 end cpu cortex-a75 | |
1508 | |
1509 | |
1510 # ARMv8.2 A-profile ARM DynamIQ big.LITTLE implementations | |
1511 begin cpu cortex-a75.cortex-a55 | |
1512 cname cortexa75cortexa55 | |
1513 tune for cortex-a53 | |
1514 tune flags LDSCHED | |
1515 architecture armv8.2-a+fp16+dotprod | |
1516 fpu neon-fp-armv8 | |
1517 option crypto add FP_ARMv8 CRYPTO | |
1518 costs cortex_a73 | |
1519 end cpu cortex-a75.cortex-a55 | |
1520 | |
1521 # V8 M-profile implementations. | |
1522 begin cpu cortex-m23 | |
1523 cname cortexm23 | |
1524 tune flags LDSCHED | |
1525 architecture armv8-m.base | |
1526 costs v6m | |
1527 end cpu cortex-m23 | |
1528 | |
1529 begin cpu cortex-m33 | |
1530 cname cortexm33 | |
1531 tune flags LDSCHED | |
1532 architecture armv8-m.main+dsp | |
1533 fpu fpv5-sp-d16 | |
1534 option nofp remove ALL_FP | |
1535 option nodsp remove armv7em | |
1536 costs v7m | |
1537 end cpu cortex-m33 | |
1538 | |
1539 # V8 R-profile implementations. | |
1540 begin cpu cortex-r52 | |
1541 cname cortexr52 | |
1542 tune flags LDSCHED | |
1543 architecture armv8-r+crc+simd | |
1544 fpu neon-fp-armv8 | |
1545 option nofp.dp remove FP_DBL ALL_SIMD | |
1546 costs cortex | |
1547 end cpu cortex-r52 | |
1548 | |
1549 # FPU entries | |
1550 # format: | |
1551 # begin fpu <name> | |
1552 # isa <isa-flags-list> | |
1553 # end fpu <name> | |
1554 | |
1555 begin fpu vfp | |
1556 isa VFPv2 FP_DBL | |
1557 end fpu vfp | |
1558 | |
1559 begin fpu vfpv2 | |
1560 isa VFPv2 FP_DBL | |
1561 end fpu vfpv2 | |
1562 | |
1563 begin fpu vfpv3 | |
1564 isa VFPv3 FP_D32 | |
1565 end fpu vfpv3 | |
1566 | |
1567 begin fpu vfpv3-fp16 | |
1568 isa VFPv3 FP_D32 fp16conv | |
1569 end fpu vfpv3-fp16 | |
1570 | |
1571 begin fpu vfpv3-d16 | |
1572 isa VFPv3 FP_DBL | |
1573 end fpu vfpv3-d16 | |
1574 | |
1575 begin fpu vfpv3-d16-fp16 | |
1576 isa VFPv3 FP_DBL fp16conv | |
1577 end fpu vfpv3-d16-fp16 | |
1578 | |
1579 begin fpu vfpv3xd | |
1580 isa VFPv3 | |
1581 end fpu vfpv3xd | |
1582 | |
1583 begin fpu vfpv3xd-fp16 | |
1584 isa VFPv3 fp16conv | |
1585 end fpu vfpv3xd-fp16 | |
1586 | |
1587 begin fpu neon | |
1588 isa VFPv3 NEON | |
1589 end fpu neon | |
1590 | |
1591 begin fpu neon-vfpv3 | |
1592 isa VFPv3 NEON | |
1593 end fpu neon-vfpv3 | |
1594 | |
1595 begin fpu neon-fp16 | |
1596 isa VFPv3 NEON fp16conv | |
1597 end fpu neon-fp16 | |
1598 | |
1599 begin fpu vfpv4 | |
1600 isa VFPv4 FP_D32 | |
1601 end fpu vfpv4 | |
1602 | |
1603 begin fpu neon-vfpv4 | |
1604 isa VFPv4 NEON | |
1605 end fpu neon-vfpv4 | |
1606 | |
1607 begin fpu vfpv4-d16 | |
1608 isa VFPv4 FP_DBL | |
1609 end fpu vfpv4-d16 | |
1610 | |
1611 begin fpu fpv4-sp-d16 | |
1612 isa VFPv4 | |
1613 end fpu fpv4-sp-d16 | |
1614 | |
1615 begin fpu fpv5-sp-d16 | |
1616 isa FPv5 | |
1617 end fpu fpv5-sp-d16 | |
1618 | |
1619 begin fpu fpv5-d16 | |
1620 isa FPv5 FP_DBL | |
1621 end fpu fpv5-d16 | |
1622 | |
1623 begin fpu fp-armv8 | |
1624 isa FP_ARMv8 | |
1625 end fpu fp-armv8 | |
1626 | |
1627 begin fpu neon-fp-armv8 | |
1628 isa FP_ARMv8 NEON | |
1629 end fpu neon-fp-armv8 | |
1630 | |
1631 begin fpu crypto-neon-fp-armv8 | |
1632 isa FP_ARMv8 CRYPTO | |
1633 end fpu crypto-neon-fp-armv8 | |
1634 | |
1635 # Compatibility aliases. | |
1636 begin fpu vfp3 | |
1637 isa VFPv3 FP_D32 | |
1638 end fpu vfp3 |