]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/arm/t-aprofile
[arm] Make 'auto' the default FPU selection option.
[thirdparty/gcc.git] / gcc / config / arm / t-aprofile
CommitLineData
cbe34bb5 1# Copyright (C) 2012-2017 Free Software Foundation, Inc.
c9acb877
MGD
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
2f738ca5 27# Arch and FPU variants to build libraries with
c9acb877 28
2f738ca5
TP
29MULTI_ARCH_OPTS_A = march=armv7-a/march=armv7ve/march=armv8-a
30MULTI_ARCH_DIRS_A = v7-a v7ve v8-a
c9acb877 31
2f738ca5
TP
32MULTI_FPU_OPTS_A = mfpu=vfpv3-d16/mfpu=neon/mfpu=vfpv4-d16/mfpu=neon-vfpv4/mfpu=neon-fp-armv8
33MULTI_FPU_DIRS_A = fpv3 simdv1 fpv4 simdvfpv4 simdv8
c9acb877 34
c9acb877 35
03c9d859
TP
36# Option combinations to build library with
37
38# Default CPU/Arch (ARM is implicitly included because it uses the default
39# multilib)
40MULTILIB_REQUIRED += mthumb
41
42# ARMv7-A
43MULTILIB_REQUIRED += *march=armv7-a
44MULTILIB_REQUIRED += *march=armv7-a/mfpu=vfpv3-d16/mfloat-abi=*
45MULTILIB_REQUIRED += *march=armv7-a/mfpu=neon/mfloat-abi=*
46
47# ARMv7VE
48MULTILIB_REQUIRED += *march=armv7ve
49MULTILIB_REQUIRED += *march=armv7ve/mfpu=vfpv4-d16/mfloat-abi=*
50MULTILIB_REQUIRED += *march=armv7ve/mfpu=neon-vfpv4/mfloat-abi=*
51
52# ARMv8-A
53MULTILIB_REQUIRED += *march=armv8-a
54MULTILIB_REQUIRED += *march=armv8-a/mfpu=neon-fp-armv8/mfloat-abi=*
c9acb877 55
c9acb877 56
2f738ca5
TP
57# Matches
58
c9acb877 59# CPU Matches
2f738ca5
TP
60MULTILIB_MATCHES += march?armv7-a=mcpu?marvell-pj4
61MULTILIB_MATCHES += march?armv7-a=mcpu?generic-armv7-a
c9acb877
MGD
62MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a8
63MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a9
64MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a5
0ba81bbe 65MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a7
7ac84c02
RR
66MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a15
67MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a12
6c7e4a18 68MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a17
eb6006ad 69MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a15.cortex-a7
0f4fe895 70MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a17.cortex-a7
debc68ed 71MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a32
971f13d7 72MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a35
c9acb877 73MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a53
0d78a2d4
JG
74MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a57
75MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a57.cortex-a53
4f2ab1e6
MW
76MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a72
77MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a72.cortex-a53
f9405b63
KT
78MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a73
79MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a73.cortex-a35
80MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a73.cortex-a53
6480dc9d 81MULTILIB_MATCHES += march?armv8-a=mcpu?exynos-m1
6480dc9d 82MULTILIB_MATCHES += march?armv8-a=mcpu?xgene1
c9acb877 83
abd5932e
RR
84# Arch Matches
85MULTILIB_MATCHES += march?armv8-a=march?armv8-a+crc
df174ca3
MW
86MULTILIB_MATCHES += march?armv8-a=march?armv8.1-a
87MULTILIB_MATCHES += march?armv8-a=march?armv8.1-a+crc
4040b89a
MW
88MULTILIB_MATCHES += march?armv8-a=march?armv8.2-a
89MULTILIB_MATCHES += march?armv8-a=march?armv8.2-a+fp16
abd5932e 90
c9acb877
MGD
91# FPU matches
92MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3
93MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-fp16
0ba81bbe
TP
94MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-d16-fp16
95MULTILIB_MATCHES += mfpu?neon=mfpu?neon-fp16
c9acb877 96MULTILIB_MATCHES += mfpu?vfpv4-d16=mfpu?vfpv4
0ba81bbe
TP
97MULTILIB_MATCHES += mfpu?vfpv4-d16=mfpu?fpv5-d16
98MULTILIB_MATCHES += mfpu?vfpv4-d16=mfpu?fp-armv8
c9acb877 99MULTILIB_MATCHES += mfpu?neon-fp-armv8=mfpu?crypto-neon-fp-armv8
0c012e9b
RE
100MULTILIB_MATCHES += mfpu?vfp=mfpu?vfpv2
101MULTILIB_MATCHES += mfpu?neon=mfpu?neon-vfpv3
c9acb877
MGD
102
103
104# Map all requests for vfpv3 with a later CPU to vfpv3-d16 v7-a.
105# So if new CPUs are added above at the newer architecture levels,
106# do something to map them below here.
107# We take the approach of mapping down to v7-a regardless of what
108# the fp option is if the integer architecture brings things down.
109# This applies to any similar combination at the v7ve and v8-a arch
110# levels.
111
eb6006ad
RL
112MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.hard
113MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.softfp
c9acb877
MGD
114MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.hard
115MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.softfp
116MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.hard
117MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.softfp
c9acb877
MGD
118
119
eb6006ad
RL
120MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv7ve/mfpu.neon/mfloat-abi.hard
121MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv7ve/mfpu.neon/mfloat-abi.softfp
c9acb877
MGD
122MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv8-a/mfpu.neon/mfloat-abi.hard
123MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv8-a/mfpu.neon/mfloat-abi.softfp
124MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.hard
125MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.softfp
126MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.hard
127MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.softfp
128
129
eb6006ad
RL
130MULTILIB_REUSE += march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.hard=march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.hard
131MULTILIB_REUSE += march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.softfp=march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.softfp
c9acb877
MGD
132
133
eb6006ad
RL
134MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.hard
135MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.softfp
136MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.hard
137MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.softfp
c9acb877
MGD
138
139
140
141# And again for mthumb.
142
eb6006ad
RL
143MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=mthumb/march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.hard
144MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=mthumb/march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.softfp
c9acb877
MGD
145MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.hard
146MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.softfp
147MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=mthumb/march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.hard
148MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=mthumb/march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.softfp
c9acb877
MGD
149
150
eb6006ad
RL
151MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv7ve/mfpu.neon/mfloat-abi.hard
152MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv7ve/mfpu.neon/mfloat-abi.softfp
c9acb877
MGD
153MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.neon/mfloat-abi.hard
154MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.neon/mfloat-abi.softfp
155MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.hard
156MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.softfp
157MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.hard
158MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.softfp
159
160
eb6006ad
RL
161MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.hard
162MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.softfp
c9acb877
MGD
163
164
eb6006ad
RL
165MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.hard
166MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.softfp
167MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=mthumb/march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.hard
168MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=mthumb/march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.softfp