]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
arm: Fix parsecpu.awk for aliases [PR113030]
authorAndrew Pinski <quic_apinski@quicinc.com>
Sun, 21 Jan 2024 07:12:31 +0000 (23:12 -0800)
committerAndrew Pinski <quic_apinski@quicinc.com>
Mon, 22 Jan 2024 17:30:42 +0000 (09:30 -0800)
So the problem here is the 2 functions check_cpu and check_arch use
the wrong variable to check if an alias is valid for that cpu/arch.
check_cpu uses cpu_optaliases instead of cpu_opt_alias. cpu_optaliases
is an array of index'ed by the cpuname that contains all of the valid aliases
for that cpu but cpu_opt_alias is an double index array which is index'ed
by cpuname and the alias which provides what is the alias for that option.
Similar thing happens for check_arch and arch_optaliases vs arch_optaliases.

Tested by running:
```
awk -f config/arm/parsecpu.awk -v cmd="chkarch armv7-a+simd" config/arm/arm-cpus.in
awk -f config/arm/parsecpu.awk -v cmd="chkarch armv7-a+neon" config/arm/arm-cpus.in
awk -f config/arm/parsecpu.awk -v cmd="chkarch armv7-a+neon-vfpv3" config/arm/arm-cpus.in
```
And they don't return error back.

gcc/ChangeLog:

PR target/113030
* config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
instead of cpu_optaliases.
(check_arch): Use arch_opt_alias instead of arch_optaliases.

Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
gcc/config/arm/parsecpu.awk

index ddd4f3b440af44a18b11f28fc8f804ba6dffed00..384462bdb5bfa46bbe5a49ddb435f998633b288d 100644 (file)
@@ -529,7 +529,7 @@ function check_cpu (name) {
 
     for (n = 2; n <= exts; n++) {
        if (!((cpu_name, extensions[n]) in cpu_opt_remove)      \
-           && !((cpu_name, extensions[n]) in cpu_optaliases)) {
+           && !((cpu_name, extensions[n]) in cpu_opt_alias)) {
            return "error"
        }
     }
@@ -552,7 +552,7 @@ function check_arch (name) {
 
     for (n = 2; n <= exts; n++) {
        if (!((extensions[1], extensions[n]) in arch_opt_remove)        \
-           && !((extensions[1], extensions[n]) in arch_optaliases)) {
+           && !((extensions[1], extensions[n]) in arch_opt_alias)) {
            return "error"
        }
     }