[arm] Put CPU's FPU capabilities directly in the ISA specification
As part of the transition from the original support for named FPUs to general FPU properties I defined an entry in the CPU definitions in arm-cpus.in to use a named FPU. However, that has now outlived its usefulness and increasingly we are likely to find that newer cores do not fit the legacy FPU names very well. Furthermore it is now possible to encode all the FPU capatilities directly in the ISA definitions, often as simply as using +fp or +simd. So this patch removes the fpu field from the "define cpu" entries and instead encodes the same information in the isa field. This also alows us to remove a bit of now-dead code from parsecpu.awk. * config/arm/arm-cpus.in: Move information from fpu field of each cpu definition to the isa field. * config/arm/parsecpu.awk (fpu): Delete match rule. (gen_comm_data): Don't add bits from the CPU's FPU entry. From-SVN: r262556
This commit is contained in:
parent
305130b92e
commit
dff2abcbee
@ -1,3 +1,10 @@
|
||||
2018-07-11 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* config/arm/arm-cpus.in: Move information from fpu field of each
|
||||
cpu definition to the isa field.
|
||||
* config/arm/parsecpu.awk (fpu): Delete match rule.
|
||||
(gen_comm_data): Don't add bits from the CPU's FPU entry.
|
||||
|
||||
2018-07-11 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR debug/86457
|
||||
|
||||
@ -620,7 +620,6 @@ end arch iwmmxt2
|
||||
# [tune for <cpu-name>]
|
||||
# [tune flags <list>]
|
||||
# architecture <name>
|
||||
# [fpu <name>]
|
||||
# [isa <additional-isa-flags-list>]
|
||||
# [option <name> add|remove <isa-list>]*
|
||||
# [optalias <name> <optname>]*
|
||||
@ -633,7 +632,7 @@ end arch iwmmxt2
|
||||
# isa flags are appended to those defined by the architecture.
|
||||
# Each add option must have a distinct feature set and each remove
|
||||
# option must similarly have a distinct feature set. Option aliases can be
|
||||
# added with the optalias statement
|
||||
# added with the optalias statement.
|
||||
|
||||
# V4 Architecture Processors
|
||||
begin cpu arm8
|
||||
@ -778,8 +777,7 @@ end cpu arm1020t
|
||||
# V5TE Architecture Processors
|
||||
begin cpu arm9e
|
||||
tune flags LDSCHED
|
||||
architecture armv5te
|
||||
fpu vfpv2
|
||||
architecture armv5te+fp
|
||||
option nofp remove ALL_FP
|
||||
costs 9e
|
||||
end cpu arm9e
|
||||
@ -787,8 +785,7 @@ end cpu arm9e
|
||||
begin cpu arm946e-s
|
||||
cname arm946es
|
||||
tune flags LDSCHED
|
||||
architecture armv5te
|
||||
fpu vfpv2
|
||||
architecture armv5te+fp
|
||||
option nofp remove ALL_FP
|
||||
costs 9e
|
||||
end cpu arm946e-s
|
||||
@ -796,8 +793,7 @@ end cpu arm946e-s
|
||||
begin cpu arm966e-s
|
||||
cname arm966es
|
||||
tune flags LDSCHED
|
||||
architecture armv5te
|
||||
fpu vfpv2
|
||||
architecture armv5te+fp
|
||||
option nofp remove ALL_FP
|
||||
costs 9e
|
||||
end cpu arm966e-s
|
||||
@ -805,32 +801,28 @@ end cpu arm966e-s
|
||||
begin cpu arm968e-s
|
||||
cname arm968es
|
||||
tune flags LDSCHED
|
||||
architecture armv5te
|
||||
fpu vfpv2
|
||||
architecture armv5te+fp
|
||||
option nofp remove ALL_FP
|
||||
costs 9e
|
||||
end cpu arm968e-s
|
||||
|
||||
begin cpu arm10e
|
||||
tune flags LDSCHED
|
||||
architecture armv5te
|
||||
fpu vfpv2
|
||||
architecture armv5te+fp
|
||||
option nofp remove ALL_FP
|
||||
costs fastmul
|
||||
end cpu arm10e
|
||||
|
||||
begin cpu arm1020e
|
||||
tune flags LDSCHED
|
||||
architecture armv5te
|
||||
fpu vfpv2
|
||||
architecture armv5te+fp
|
||||
option nofp remove ALL_FP
|
||||
costs fastmul
|
||||
end cpu arm1020e
|
||||
|
||||
begin cpu arm1022e
|
||||
tune flags LDSCHED
|
||||
architecture armv5te
|
||||
fpu vfpv2
|
||||
architecture armv5te+fp
|
||||
option nofp remove ALL_FP
|
||||
costs fastmul
|
||||
end cpu arm1022e
|
||||
@ -883,8 +875,7 @@ end cpu fa726te
|
||||
begin cpu arm926ej-s
|
||||
cname arm926ejs
|
||||
tune flags LDSCHED
|
||||
architecture armv5tej
|
||||
fpu vfpv2
|
||||
architecture armv5tej+fp
|
||||
option nofp remove ALL_FP
|
||||
costs 9e
|
||||
end cpu arm926ej-s
|
||||
@ -892,8 +883,7 @@ end cpu arm926ej-s
|
||||
begin cpu arm1026ej-s
|
||||
cname arm1026ejs
|
||||
tune flags LDSCHED
|
||||
architecture armv5tej
|
||||
fpu vfpv2
|
||||
architecture armv5tej+fp
|
||||
option nofp remove ALL_FP
|
||||
costs 9e
|
||||
end cpu arm1026ej-s
|
||||
@ -910,8 +900,7 @@ end cpu arm1136j-s
|
||||
begin cpu arm1136jf-s
|
||||
cname arm1136jfs
|
||||
tune flags LDSCHED
|
||||
architecture armv6j
|
||||
fpu vfpv2
|
||||
architecture armv6j+fp
|
||||
costs 9e
|
||||
end cpu arm1136jf-s
|
||||
|
||||
@ -925,8 +914,7 @@ end cpu arm1176jz-s
|
||||
begin cpu arm1176jzf-s
|
||||
cname arm1176jzfs
|
||||
tune flags LDSCHED
|
||||
architecture armv6kz
|
||||
fpu vfpv2
|
||||
architecture armv6kz+fp
|
||||
costs 9e
|
||||
end cpu arm1176jzf-s
|
||||
|
||||
@ -938,8 +926,7 @@ end cpu mpcorenovfp
|
||||
|
||||
begin cpu mpcore
|
||||
tune flags LDSCHED
|
||||
architecture armv6k
|
||||
fpu vfpv2
|
||||
architecture armv6k+fp
|
||||
costs 9e
|
||||
end cpu mpcore
|
||||
|
||||
@ -953,8 +940,7 @@ end cpu arm1156t2-s
|
||||
begin cpu arm1156t2f-s
|
||||
cname arm1156t2fs
|
||||
tune flags LDSCHED
|
||||
architecture armv6t2
|
||||
fpu vfpv2
|
||||
architecture armv6t2+fp
|
||||
costs v6t2
|
||||
end cpu arm1156t2f-s
|
||||
|
||||
@ -1012,8 +998,7 @@ end cpu cortex-m0plus.small-multiply
|
||||
begin cpu generic-armv7-a
|
||||
cname genericv7a
|
||||
tune flags LDSCHED
|
||||
architecture armv7-a
|
||||
fpu vfpv3-d16
|
||||
architecture armv7-a+fp
|
||||
option vfpv3-d16 add VFPv3 FP_DBL
|
||||
option vfpv3 add VFPv3 FP_D32
|
||||
option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
|
||||
@ -1033,8 +1018,7 @@ end cpu generic-armv7-a
|
||||
begin cpu cortex-a5
|
||||
cname cortexa5
|
||||
tune flags LDSCHED
|
||||
architecture armv7-a
|
||||
fpu neon-fp16
|
||||
architecture armv7-a+neon-fp16
|
||||
option nosimd remove ALL_SIMD
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a5
|
||||
@ -1043,8 +1027,7 @@ end cpu cortex-a5
|
||||
begin cpu cortex-a7
|
||||
cname cortexa7
|
||||
tune flags LDSCHED
|
||||
architecture armv7ve
|
||||
fpu neon-vfpv4
|
||||
architecture armv7ve+simd
|
||||
option nosimd remove ALL_SIMD
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a7
|
||||
@ -1053,8 +1036,7 @@ end cpu cortex-a7
|
||||
begin cpu cortex-a8
|
||||
cname cortexa8
|
||||
tune flags LDSCHED
|
||||
architecture armv7-a
|
||||
fpu neon-vfpv3
|
||||
architecture armv7-a+simd
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a8
|
||||
end cpu cortex-a8
|
||||
@ -1062,8 +1044,7 @@ end cpu cortex-a8
|
||||
begin cpu cortex-a9
|
||||
cname cortexa9
|
||||
tune flags LDSCHED
|
||||
architecture armv7-a
|
||||
fpu neon-fp16
|
||||
architecture armv7-a+neon-fp16
|
||||
option nosimd remove ALL_SIMD
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a9
|
||||
@ -1073,8 +1054,7 @@ begin cpu cortex-a12
|
||||
cname cortexa12
|
||||
tune for cortex-a17
|
||||
tune flags LDSCHED
|
||||
architecture armv7ve
|
||||
fpu neon-vfpv4
|
||||
architecture armv7ve+simd
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a12
|
||||
end cpu cortex-a12
|
||||
@ -1082,8 +1062,7 @@ end cpu cortex-a12
|
||||
begin cpu cortex-a15
|
||||
cname cortexa15
|
||||
tune flags LDSCHED
|
||||
architecture armv7ve
|
||||
fpu neon-vfpv4
|
||||
architecture armv7ve+simd
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a15
|
||||
end cpu cortex-a15
|
||||
@ -1091,8 +1070,7 @@ end cpu cortex-a15
|
||||
begin cpu cortex-a17
|
||||
cname cortexa17
|
||||
tune flags LDSCHED
|
||||
architecture armv7ve
|
||||
fpu neon-vfpv4
|
||||
architecture armv7ve+simd
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a12
|
||||
end cpu cortex-a17
|
||||
@ -1107,16 +1085,14 @@ end cpu cortex-r4
|
||||
begin cpu cortex-r4f
|
||||
cname cortexr4f
|
||||
tune flags LDSCHED
|
||||
architecture armv7-r
|
||||
fpu vfpv3-d16
|
||||
architecture armv7-r+fp
|
||||
costs cortex
|
||||
end cpu cortex-r4f
|
||||
|
||||
begin cpu cortex-r5
|
||||
cname cortexr5
|
||||
tune flags LDSCHED
|
||||
architecture armv7-r+idiv
|
||||
fpu vfpv3-d16
|
||||
architecture armv7-r+idiv+fp
|
||||
option nofp.dp remove FP_DBL
|
||||
option nofp remove ALL_FP
|
||||
costs cortex
|
||||
@ -1125,8 +1101,7 @@ end cpu cortex-r5
|
||||
begin cpu cortex-r7
|
||||
cname cortexr7
|
||||
tune flags LDSCHED
|
||||
architecture armv7-r+idiv
|
||||
fpu vfpv3-d16
|
||||
architecture armv7-r+idiv+fp
|
||||
option nofp remove ALL_FP
|
||||
costs cortex
|
||||
end cpu cortex-r7
|
||||
@ -1135,8 +1110,7 @@ begin cpu cortex-r8
|
||||
cname cortexr8
|
||||
tune for cortex-r7
|
||||
tune flags LDSCHED
|
||||
architecture armv7-r+idiv
|
||||
fpu vfpv3-d16
|
||||
architecture armv7-r+idiv+fp
|
||||
option nofp remove ALL_FP
|
||||
costs cortex
|
||||
end cpu cortex-r8
|
||||
@ -1144,9 +1118,8 @@ end cpu cortex-r8
|
||||
begin cpu cortex-m7
|
||||
cname cortexm7
|
||||
tune flags LDSCHED
|
||||
architecture armv7e-m
|
||||
architecture armv7e-m+fp.dp
|
||||
isa quirk_no_volatile_ce
|
||||
fpu fpv5-d16
|
||||
option nofp.dp remove FP_DBL
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_m7
|
||||
@ -1155,8 +1128,7 @@ end cpu cortex-m7
|
||||
begin cpu cortex-m4
|
||||
cname cortexm4
|
||||
tune flags LDSCHED
|
||||
architecture armv7e-m
|
||||
fpu fpv4-sp-d16
|
||||
architecture armv7e-m+fp
|
||||
option nofp remove ALL_FP
|
||||
costs v7m
|
||||
end cpu cortex-m4
|
||||
@ -1181,8 +1153,7 @@ begin cpu cortex-a15.cortex-a7
|
||||
cname cortexa15cortexa7
|
||||
tune for cortex-a7
|
||||
tune flags LDSCHED
|
||||
architecture armv7ve
|
||||
fpu neon-vfpv4
|
||||
architecture armv7ve+simd
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a15
|
||||
end cpu cortex-a15.cortex-a7
|
||||
@ -1191,8 +1162,7 @@ begin cpu cortex-a17.cortex-a7
|
||||
cname cortexa17cortexa7
|
||||
tune for cortex-a7
|
||||
tune flags LDSCHED
|
||||
architecture armv7ve
|
||||
fpu neon-vfpv4
|
||||
architecture armv7ve+simd
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a12
|
||||
end cpu cortex-a17.cortex-a7
|
||||
@ -1203,8 +1173,7 @@ begin cpu cortex-a32
|
||||
cname cortexa32
|
||||
tune for cortex-a53
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a+crc
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+crc+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a35
|
||||
@ -1214,8 +1183,7 @@ begin cpu cortex-a35
|
||||
cname cortexa35
|
||||
tune for cortex-a53
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a+crc
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+crc+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a35
|
||||
@ -1224,8 +1192,7 @@ end cpu cortex-a35
|
||||
begin cpu cortex-a53
|
||||
cname cortexa53
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a+crc
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+crc+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a53
|
||||
@ -1234,8 +1201,7 @@ end cpu cortex-a53
|
||||
begin cpu cortex-a57
|
||||
cname cortexa57
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a+crc
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+crc+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs cortex_a57
|
||||
end cpu cortex-a57
|
||||
@ -1244,8 +1210,7 @@ begin cpu cortex-a72
|
||||
cname cortexa72
|
||||
tune for cortex-a57
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a+crc
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+crc+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs cortex_a57
|
||||
end cpu cortex-a72
|
||||
@ -1254,8 +1219,7 @@ begin cpu cortex-a73
|
||||
cname cortexa73
|
||||
tune for cortex-a57
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a+crc
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+crc+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs cortex_a73
|
||||
end cpu cortex-a73
|
||||
@ -1263,16 +1227,14 @@ end cpu cortex-a73
|
||||
begin cpu exynos-m1
|
||||
cname exynosm1
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a+crc
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+crc+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs exynosm1
|
||||
end cpu exynos-m1
|
||||
|
||||
begin cpu xgene1
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs xgene1
|
||||
end cpu xgene1
|
||||
@ -1282,8 +1244,7 @@ begin cpu cortex-a57.cortex-a53
|
||||
cname cortexa57cortexa53
|
||||
tune for cortex-a53
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a+crc
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+crc+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs cortex_a57
|
||||
end cpu cortex-a57.cortex-a53
|
||||
@ -1292,8 +1253,7 @@ begin cpu cortex-a72.cortex-a53
|
||||
cname cortexa72cortexa53
|
||||
tune for cortex-a53
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a+crc
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+crc+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs cortex_a57
|
||||
end cpu cortex-a72.cortex-a53
|
||||
@ -1302,8 +1262,7 @@ begin cpu cortex-a73.cortex-a35
|
||||
cname cortexa73cortexa35
|
||||
tune for cortex-a53
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a+crc
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+crc+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs cortex_a73
|
||||
end cpu cortex-a73.cortex-a35
|
||||
@ -1312,8 +1271,7 @@ begin cpu cortex-a73.cortex-a53
|
||||
cname cortexa73cortexa53
|
||||
tune for cortex-a53
|
||||
tune flags LDSCHED
|
||||
architecture armv8-a+crc
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8-a+crc+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs cortex_a73
|
||||
end cpu cortex-a73.cortex-a53
|
||||
@ -1324,8 +1282,7 @@ begin cpu cortex-a55
|
||||
cname cortexa55
|
||||
tune for cortex-a53
|
||||
tune flags LDSCHED
|
||||
architecture armv8.2-a+fp16+dotprod
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8.2-a+fp16+dotprod+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
option nofp remove ALL_FP
|
||||
costs cortex_a53
|
||||
@ -1335,8 +1292,7 @@ begin cpu cortex-a75
|
||||
cname cortexa75
|
||||
tune for cortex-a57
|
||||
tune flags LDSCHED
|
||||
architecture armv8.2-a+fp16+dotprod
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8.2-a+fp16+dotprod+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs cortex_a73
|
||||
end cpu cortex-a75
|
||||
@ -1345,8 +1301,7 @@ begin cpu cortex-a76
|
||||
cname cortexa76
|
||||
tune for cortex-a57
|
||||
tune flags LDSCHED
|
||||
architecture armv8.2-a+fp16+dotprod
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8.2-a+fp16+dotprod+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs cortex_a57
|
||||
end cpu cortex-a76
|
||||
@ -1356,8 +1311,7 @@ begin cpu cortex-a75.cortex-a55
|
||||
cname cortexa75cortexa55
|
||||
tune for cortex-a53
|
||||
tune flags LDSCHED
|
||||
architecture armv8.2-a+fp16+dotprod
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8.2-a+fp16+dotprod+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs cortex_a73
|
||||
end cpu cortex-a75.cortex-a55
|
||||
@ -1366,8 +1320,7 @@ begin cpu cortex-a76.cortex-a55
|
||||
cname cortexa76cortexa55
|
||||
tune for cortex-a53
|
||||
tune flags LDSCHED
|
||||
architecture armv8.2-a+fp16+dotprod
|
||||
fpu neon-fp-armv8
|
||||
architecture armv8.2-a+fp16+dotprod+simd
|
||||
option crypto add FP_ARMv8 CRYPTO
|
||||
costs cortex_a57
|
||||
end cpu cortex-a76.cortex-a55
|
||||
@ -1383,8 +1336,7 @@ end cpu cortex-m23
|
||||
begin cpu cortex-m33
|
||||
cname cortexm33
|
||||
tune flags LDSCHED
|
||||
architecture armv8-m.main+dsp
|
||||
fpu fpv5-sp-d16
|
||||
architecture armv8-m.main+dsp+fp
|
||||
option nofp remove ALL_FP
|
||||
option nodsp remove armv7em
|
||||
costs v7m
|
||||
@ -1395,7 +1347,6 @@ begin cpu cortex-r52
|
||||
cname cortexr52
|
||||
tune flags LDSCHED
|
||||
architecture armv8-r+crc+simd
|
||||
fpu neon-fp-armv8
|
||||
option nofp.dp remove FP_DBL ALL_SIMD
|
||||
costs cortex
|
||||
end cpu cortex-r52
|
||||
|
||||
@ -289,9 +289,6 @@ function gen_comm_data () {
|
||||
}
|
||||
all_isa_bits = all_isa_bits " " arch_opt_isa[feats[1],feats[m]]
|
||||
}
|
||||
if (cpus[n] in cpu_fpu) {
|
||||
all_isa_bits = all_isa_bits " " fpu_isa[cpu_fpu[cpus[n]]]
|
||||
}
|
||||
if (cpus[n] in cpu_isa) {
|
||||
all_isa_bits = all_isa_bits " " cpu_isa[cpus[n]]
|
||||
}
|
||||
@ -662,13 +659,6 @@ BEGIN {
|
||||
parse_ok = 1
|
||||
}
|
||||
|
||||
/^[ ]*fpu / {
|
||||
if (NF != 2) fatal("syntax: fpu <fpu-name>")
|
||||
if (cpu_name == "") fatal("\"fpu\" outside of cpu block")
|
||||
cpu_fpu[cpu_name] = $2
|
||||
parse_ok = 1
|
||||
}
|
||||
|
||||
/^[ ]*isa / {
|
||||
if (NF < 2) fatal("syntax: isa <feature-or-fgroup> [<feature-or-fgroup>]*")
|
||||
flags=""
|
||||
|
||||
Loading…
Reference in New Issue
Block a user