]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/arm/t-aprofile
Add missing v8a cpus to the t-aprofile file.
[thirdparty/gcc.git] / gcc / config / arm / t-aprofile
1 # Copyright (C) 2012-2015 Free Software Foundation, Inc.
2 #
3 # This file is part of GCC.
4 #
5 # GCC is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3, or (at your option)
8 # any later version.
9 #
10 # GCC is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with GCC; see the file COPYING3. If not see
17 # <http://www.gnu.org/licenses/>.
18
19 # This is a target makefile fragment that attempts to get
20 # multilibs built for the range of CPU's, FPU's and ABI's that
21 # are relevant for the A-profile architecture. It should
22 # not be used in conjunction with another make file fragment and
23 # assumes --with-arch, --with-cpu, --with-fpu, --with-float, --with-mode
24 # have their default values during the configure step. We enforce
25 # this during the top-level configury.
26
27 MULTILIB_OPTIONS =
28 MULTILIB_DIRNAMES =
29 MULTILIB_EXCEPTIONS =
30 MULTILIB_MATCHES =
31 MULTILIB_REUSE =
32
33 # We have the following hierachy:
34 # ISA: A32 (.) or T32 (thumb)
35 # Architecture: ARMv7-A (v7-a), ARMv7VE (v7ve), or ARMv8-A (v8-a).
36 # FPU: VFPv3-D16 (fpv3), NEONv1 (simdv1), VFPv4-D16 (fpv4),
37 # NEON-VFPV4 (simdvfpv4), NEON for ARMv8 (simdv8), or None (.).
38 # Float-abi: Soft (.), softfp (softfp), or hard (hardfp).
39
40 MULTILIB_OPTIONS += mthumb
41 MULTILIB_DIRNAMES += thumb
42
43 MULTILIB_OPTIONS += march=armv7-a/march=armv7ve/march=armv8-a
44 MULTILIB_DIRNAMES += v7-a v7ve v8-a
45
46 MULTILIB_OPTIONS += mfpu=vfpv3-d16/mfpu=neon/mfpu=vfpv4-d16/mfpu=neon-vfpv4/mfpu=neon-fp-armv8
47 MULTILIB_DIRNAMES += fpv3 simdv1 fpv4 simdvfpv4 simdv8
48
49 MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard
50 MULTILIB_DIRNAMES += softfp hard
51
52 # We don't build no-float libraries with an FPU.
53 MULTILIB_EXCEPTIONS += *mfpu=vfpv3-d16
54 MULTILIB_EXCEPTIONS += *mfpu=neon
55 MULTILIB_EXCEPTIONS += *mfpu=vfpv4-d16
56 MULTILIB_EXCEPTIONS += *mfpu=neon-vfpv4
57 MULTILIB_EXCEPTIONS += *mfpu=neon-fp-armv8
58
59 # We don't build libraries requiring an FPU at the CPU/Arch/ISA level.
60 MULTILIB_EXCEPTIONS += mfloat-abi=*
61 MULTILIB_EXCEPTIONS += mfpu=*
62 MULTILIB_EXCEPTIONS += mthumb/mfloat-abi=*
63 MULTILIB_EXCEPTIONS += mthumb/mfpu=*
64 MULTILIB_EXCEPTIONS += *march=armv7-a/mfloat-abi=*
65 MULTILIB_EXCEPTIONS += *march=armv7ve/mfloat-abi=*
66 MULTILIB_EXCEPTIONS += *march=armv8-a/mfloat-abi=*
67
68 # Ensure the correct FPU variants apply to the correct base architectures.
69 MULTILIB_EXCEPTIONS += *march=armv7ve/*mfpu=vfpv3-d16*
70 MULTILIB_EXCEPTIONS += *march=armv7ve/*mfpu=neon/*
71 MULTILIB_EXCEPTIONS += *march=armv8-a/*mfpu=vfpv3-d16*
72 MULTILIB_EXCEPTIONS += *march=armv8-a/*mfpu=neon/*
73 MULTILIB_EXCEPTIONS += *march=armv7-a/*mfpu=vfpv4-d16*
74 MULTILIB_EXCEPTIONS += *march=armv7-a/*mfpu=neon-vfpv4*
75 MULTILIB_EXCEPTIONS += *march=armv8-a/*mfpu=vfpv4-d16*
76 MULTILIB_EXCEPTIONS += *march=armv8-a/*mfpu=neon-vfpv4*
77 MULTILIB_EXCEPTIONS += *march=armv7-a/*mfpu=neon-fp-armv8*
78 MULTILIB_EXCEPTIONS += *march=armv7ve/*mfpu=neon-fp-armv8*
79
80 # CPU Matches
81 MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a8
82 MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a9
83 MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a5
84 MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a15
85 MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a12
86 MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a17
87 MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a15.cortex-a7
88 MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a17.cortex-a7
89 MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a53
90 MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a57
91 MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a57.cortex-a53
92 MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a72
93 MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a72.cortex-a53
94 MULTILIB_MATCHES += march?armv8-a=mcpu?exynos-m1
95 MULTILIB_MATCHES += march?armv8-a=mcpu?qdf24xx
96 MULTILIB_MATCHES += march?armv8-a=mcpu?xgene1
97
98 # Arch Matches
99 MULTILIB_MATCHES += march?armv8-a=march?armv8-a+crc
100
101 # FPU matches
102 MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3
103 MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-fp16
104 MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-fp16-d16
105 MULTILIB_MATCHES += mfpu?vfpv4-d16=mfpu?vfpv4
106 MULTILIB_MATCHES += mfpu?neon-fp-armv8=mfpu?crypto-neon-fp-armv8
107
108
109 # Map all requests for vfpv3 with a later CPU to vfpv3-d16 v7-a.
110 # So if new CPUs are added above at the newer architecture levels,
111 # do something to map them below here.
112 # We take the approach of mapping down to v7-a regardless of what
113 # the fp option is if the integer architecture brings things down.
114 # This applies to any similar combination at the v7ve and v8-a arch
115 # levels.
116
117 MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.hard
118 MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.softfp
119 MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.hard
120 MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.softfp
121 MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.hard
122 MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.softfp
123 MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=march.armv7-a/mfpu.fp-armv8/mfloat-abi.hard
124 MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=march.armv7-a/mfpu.fp-armv8/mfloat-abi.softfp
125 MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=march.armv7-a/mfpu.vfpv4/mfloat-abi.hard
126 MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=march.armv7-a/mfpu.vfpv4/mfloat-abi.softfp
127
128
129 MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv7ve/mfpu.neon/mfloat-abi.hard
130 MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv7ve/mfpu.neon/mfloat-abi.softfp
131 MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv8-a/mfpu.neon/mfloat-abi.hard
132 MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv8-a/mfpu.neon/mfloat-abi.softfp
133 MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.hard
134 MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.softfp
135 MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.hard
136 MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.softfp
137
138
139 MULTILIB_REUSE += march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.hard=march.armv7ve/mfpu.fp-armv8/mfloat-abi.hard
140 MULTILIB_REUSE += march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.softfp=march.armv7ve/mfpu.fp-armv8/mfloat-abi.softfp
141 MULTILIB_REUSE += march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.hard=march.armv8-a/mfpu.vfpv4/mfloat-abi.hard
142 MULTILIB_REUSE += march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.softfp=march.armv8-a/mfpu.vfpv4/mfloat-abi.softfp
143 MULTILIB_REUSE += march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.hard=march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.hard
144 MULTILIB_REUSE += march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.softfp=march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.softfp
145
146
147 MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.hard
148 MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.softfp
149 MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.hard
150 MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.softfp
151
152
153
154 # And again for mthumb.
155
156 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=mthumb/march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.hard
157 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=mthumb/march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.softfp
158 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.hard
159 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.softfp
160 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=mthumb/march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.hard
161 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=mthumb/march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.softfp
162 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=mthumb/march.armv7-a/mfpu.fp-armv8/mfloat-abi.hard
163 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=mthumb/march.armv7-a/mfpu.fp-armv8/mfloat-abi.softfp
164 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=mthumb/march.armv7-a/mfpu.vfpv4/mfloat-abi.hard
165 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=mthumb/march.armv7-a/mfpu.vfpv4/mfloat-abi.softfp
166
167
168 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv7ve/mfpu.neon/mfloat-abi.hard
169 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv7ve/mfpu.neon/mfloat-abi.softfp
170 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.neon/mfloat-abi.hard
171 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.neon/mfloat-abi.softfp
172 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.hard
173 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.softfp
174 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.hard
175 MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.softfp
176
177
178 MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.hard=mthumb/march.armv7ve/mfpu.fp-armv8/mfloat-abi.hard
179 MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.softfp=mthumb/march.armv7ve/mfpu.fp-armv8/mfloat-abi.softfp
180 MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.vfpv4/mfloat-abi.hard
181 MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.vfpv4/mfloat-abi.softfp
182 MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.hard
183 MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.softfp
184
185
186 MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.hard
187 MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.softfp
188 MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=mthumb/march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.hard
189 MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=mthumb/march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.softfp