annotate gcc/config/arm/t-aprofile @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 # Copyright (C) 2012-2017 Free Software Foundation, Inc.
kono
parents:
diff changeset
2 #
kono
parents:
diff changeset
3 # This file is part of GCC.
kono
parents:
diff changeset
4 #
kono
parents:
diff changeset
5 # GCC is free software; you can redistribute it and/or modify
kono
parents:
diff changeset
6 # it under the terms of the GNU General Public License as published by
kono
parents:
diff changeset
7 # the Free Software Foundation; either version 3, or (at your option)
kono
parents:
diff changeset
8 # any later version.
kono
parents:
diff changeset
9 #
kono
parents:
diff changeset
10 # GCC is distributed in the hope that it will be useful,
kono
parents:
diff changeset
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
kono
parents:
diff changeset
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
kono
parents:
diff changeset
13 # GNU General Public License for more details.
kono
parents:
diff changeset
14 #
kono
parents:
diff changeset
15 # You should have received a copy of the GNU General Public License
kono
parents:
diff changeset
16 # along with GCC; see the file COPYING3. If not see
kono
parents:
diff changeset
17 # <http://www.gnu.org/licenses/>.
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 # This is a target makefile fragment that attempts to get
kono
parents:
diff changeset
20 # multilibs built for the range of CPU's, FPU's and ABI's that
kono
parents:
diff changeset
21 # are relevant for the A-profile architecture. It should
kono
parents:
diff changeset
22 # not be used in conjunction with another make file fragment and
kono
parents:
diff changeset
23 # assumes --with-arch, --with-cpu, --with-fpu, --with-float, --with-mode
kono
parents:
diff changeset
24 # have their default values during the configure step. We enforce
kono
parents:
diff changeset
25 # this during the top-level configury.
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 # Arch and FPU variants to build libraries with
kono
parents:
diff changeset
28
kono
parents:
diff changeset
29 MULTI_ARCH_OPTS_A = march=armv7-a/march=armv7-a+fp/march=armv7-a+simd/march=armv7ve+simd/march=armv8-a/march=armv8-a+simd
kono
parents:
diff changeset
30 MULTI_ARCH_DIRS_A = v7-a v7-a+fp v7-a+simd v7ve+simd v8-a v8-a+simd
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 # ARMv7-A - build nofp, fp-d16 and SIMD variants
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 MULTILIB_REQUIRED += mthumb/march=armv7-a/mfloat-abi=soft
kono
parents:
diff changeset
35 MULTILIB_REQUIRED += mthumb/march=armv7-a+fp/mfloat-abi=hard
kono
parents:
diff changeset
36 MULTILIB_REQUIRED += mthumb/march=armv7-a+fp/mfloat-abi=softfp
kono
parents:
diff changeset
37 MULTILIB_REQUIRED += mthumb/march=armv7-a+simd/mfloat-abi=hard
kono
parents:
diff changeset
38 MULTILIB_REQUIRED += mthumb/march=armv7-a+simd/mfloat-abi=softfp
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 # ARMv7VE - only build a SIMD (+VFPv4) variant.
kono
parents:
diff changeset
41 MULTILIB_REQUIRED += mthumb/march=armv7ve+simd/mfloat-abi=hard
kono
parents:
diff changeset
42 MULTILIB_REQUIRED += mthumb/march=armv7ve+simd/mfloat-abi=softfp
kono
parents:
diff changeset
43
kono
parents:
diff changeset
44 # ARMv8-A - build nofp and SIMD variants.
kono
parents:
diff changeset
45 MULTILIB_REQUIRED += mthumb/march=armv8-a/mfloat-abi=soft
kono
parents:
diff changeset
46 MULTILIB_REQUIRED += mthumb/march=armv8-a+simd/mfloat-abi=hard
kono
parents:
diff changeset
47 MULTILIB_REQUIRED += mthumb/march=armv8-a+simd/mfloat-abi=softfp
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 # Matches
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 # Arch Matches
kono
parents:
diff changeset
52 # Map all v7-a FP variants to vfpv3-d16 (+fp)
kono
parents:
diff changeset
53 MULTILIB_MATCHES += $(foreach ARCH, $(filter-out +fp, $(v7_a_nosimd_variants)), \
kono
parents:
diff changeset
54 march?armv7-a+fp=march?armv7-a$(ARCH))
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 # Map all v7-a SIMD variants to neon-vfpv3 (+simd)
kono
parents:
diff changeset
57 MULTILIB_MATCHES += $(foreach ARCH, $(filter-out +simd, $(v7_a_simd_variants)), \
kono
parents:
diff changeset
58 march?armv7-a+simd=march?armv7-a$(ARCH))
kono
parents:
diff changeset
59
kono
parents:
diff changeset
60 # Neither FP nor SIMD: map v7ve to v7-a
kono
parents:
diff changeset
61 MULTILIB_MATCHES += march?armv7-a=march?armv7ve
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 # ARMv7ve FP-only variants: map down to v7-a+fp
kono
parents:
diff changeset
64 MULTILIB_MATCHES += $(foreach ARCH, $(v7ve_nosimd_variants), \
kono
parents:
diff changeset
65 march?armv7-a+fp=march?armv7ve$(ARCH))
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 # ARMv7ve with SIMD, but SIMD is less capable than the default - map down to v7-a+simd
kono
parents:
diff changeset
68 MULTILIB_MATCHES += $(foreach ARCH, $(v7ve_vfpv3_simd_variants), \
kono
parents:
diff changeset
69 march?armv7-a+simd=march?armv7ve$(ARCH))
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 # ARMv8 without SIMD: map down to base architecture
kono
parents:
diff changeset
72 MULTILIB_MATCHES += $(foreach ARCH, $(v8_a_nosimd_variants), \
kono
parents:
diff changeset
73 march?armv8-a=march?armv8-a$(ARCH))
kono
parents:
diff changeset
74
kono
parents:
diff changeset
75 # ARMv8 with SIMD: map down to base arch + simd
kono
parents:
diff changeset
76 MULTILIB_MATCHES += march?armv8-a+simd=march?armv8-a+crc+simd \
kono
parents:
diff changeset
77 $(foreach ARCH, $(filter-out +simd, $(v8_a_simd_variants)), \
kono
parents:
diff changeset
78 march?armv8-a+simd=march?armv8-a$(ARCH) \
kono
parents:
diff changeset
79 march?armv8-a+simd=march?armv8-a+crc$(ARCH))
kono
parents:
diff changeset
80
kono
parents:
diff changeset
81 # Baseline v8.1-a: map down to baseline v8-a
kono
parents:
diff changeset
82 MULTILIB_MATCHES += march?armv8-a=march?armv8.1-a
kono
parents:
diff changeset
83
kono
parents:
diff changeset
84 # Map all v8.1-a SIMD variants to v8-a+simd
kono
parents:
diff changeset
85 MULTILIB_MATCHES += $(foreach ARCH, $(v8_1_a_simd_variants), \
kono
parents:
diff changeset
86 march?armv8-a+simd=march?armv8.1-a$(ARCH))
kono
parents:
diff changeset
87
kono
parents:
diff changeset
88 # Baseline v8.2-a: map down to baseline v8-a
kono
parents:
diff changeset
89 MULTILIB_MATCHES += march?armv8-a=march?armv8.2-a
kono
parents:
diff changeset
90
kono
parents:
diff changeset
91 # Map all v8.2-a SIMD variants to v8-a+simd
kono
parents:
diff changeset
92 MULTILIB_MATCHES += $(foreach ARCH, $(v8_2_a_simd_variants), \
kono
parents:
diff changeset
93 march?armv8-a+simd=march?armv8.2-a$(ARCH))
kono
parents:
diff changeset
94
kono
parents:
diff changeset
95 # Use Thumb libraries for everything.
kono
parents:
diff changeset
96
kono
parents:
diff changeset
97 MULTILIB_REUSE += mthumb/march.armv7-a/mfloat-abi.soft=marm/march.armv7-a/mfloat-abi.soft
kono
parents:
diff changeset
98
kono
parents:
diff changeset
99 MULTILIB_REUSE += mthumb/march.armv8-a/mfloat-abi.soft=marm/march.armv8-a/mfloat-abi.soft
kono
parents:
diff changeset
100
kono
parents:
diff changeset
101 MULTILIB_REUSE += $(foreach ABI, hard softfp, \
kono
parents:
diff changeset
102 $(foreach ARCH, armv7-a+fp armv7-a+simd armv7ve+simd armv8-a+simd, \
kono
parents:
diff changeset
103 mthumb/march.$(ARCH)/mfloat-abi.$(ABI)=marm/march.$(ARCH)/mfloat-abi.$(ABI)))
kono
parents:
diff changeset
104
kono
parents:
diff changeset
105 # Softfp but no FP, use the soft-float libraries.
kono
parents:
diff changeset
106 MULTILIB_REUSE += $(foreach MODE, arm thumb, \
kono
parents:
diff changeset
107 $(foreach ARCH, armv7-a armv8-a, \
kono
parents:
diff changeset
108 mthumb/march.$(ARCH)/mfloat-abi.soft=m$(MODE)/march.$(ARCH)/mfloat-abi.softfp))