diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2017-06-16 21:06:36 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2017-06-16 21:06:36 +0000 |
commit | ffc126904bb2352b55e987a4a8f0c614a84afd79 (patch) | |
tree | 3082d5d75d3847de51de72447c8f1c1a21ff7d92 | |
parent | be5c4e06871958f2cbd7f091b6b123fb5ee94151 (diff) | |
download | gcc-ffc126904bb2352b55e987a4a8f0c614a84afd79.zip gcc-ffc126904bb2352b55e987a4a8f0c614a84afd79.tar.gz gcc-ffc126904bb2352b55e987a4a8f0c614a84afd79.tar.bz2 |
[arm] Add a few missing architecture extension options.
Reviewing the list of options for the purposes of writing the
documentation revealed that a small number of options were missing.
Mostly these are aliases for existing options, but in a couple of
cases we lacked the ability to disable certain other options.
* config/arm/arm-cpus.in (armv7): Add extension +nofp.
(armv7-r): Add aliases vfpv3xd and vfpv3-d16.
(armv8-m.main): Add option +nodsp.
* config/arm/arm-cpu-cdata.h: Regenerated.
From-SVN: r249306
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/arm/arm-cpu-cdata.h | 24 | ||||
-rw-r--r-- | gcc/config/arm/arm-cpus.in | 6 |
3 files changed, 37 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3424581..88b1734 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2017-06-16 Richard Earnshaw <rearnsha@arm.com> + * config/arm/arm-cpus.in (armv7): Add extension +nofp. + (armv7-r): Add aliases vfpv3xd and vfpv3-d16. + (armv8-m.main): Add option +nodsp. + * config/arm/arm-cpu-cdata.h: Regenerated. + +2017-06-16 Richard Earnshaw <rearnsha@arm.com> + * config/arm/t-fuchsia: New file. * config.gcc (arm*-*-fuchsia*): Use it. diff --git a/gcc/config/arm/arm-cpu-cdata.h b/gcc/config/arm/arm-cpu-cdata.h index 5034dbb..8406fa0 100644 --- a/gcc/config/arm/arm-cpu-cdata.h +++ b/gcc/config/arm/arm-cpu-cdata.h @@ -1814,6 +1814,10 @@ static const struct cpu_arch_extension arch_opttab_armv7[] = { { ISA_VFPv3,ISA_FP_DBL, isa_nobit } }, { + "nofp", true, false, + { ISA_ALL_FP, isa_nobit } + }, + { "vfpv3-d16", false, true, { ISA_VFPv3,ISA_FP_DBL, isa_nobit } }, @@ -1961,6 +1965,14 @@ static const struct cpu_arch_extension arch_opttab_armv7_r[] = { "noidiv", true, false, { isa_bit_adiv, isa_nobit } }, + { + "vfpv3xd", false, true, + { ISA_VFPv3, isa_nobit } + }, + { + "vfpv3-d16", false, true, + { ISA_VFPv3,ISA_FP_DBL, isa_nobit } + }, { NULL, false, false, {isa_nobit}} }; @@ -2025,6 +2037,14 @@ static const struct cpu_arch_extension arch_opttab_armv8_1_a[] = { "nofp", true, false, { ISA_ALL_FP, isa_nobit } }, + { + "vfpv4-sp-d16", false, true, + { ISA_VFPv4, isa_nobit } + }, + { + "fpv5-d16", false, true, + { ISA_FPv5,ISA_FP_DBL, isa_nobit } + }, { NULL, false, false, {isa_nobit}} }; @@ -2069,6 +2089,10 @@ static const struct cpu_arch_extension arch_opttab_armv8_m_main[] = { "nofp", true, false, { ISA_ALL_FP, isa_nobit } }, + { + "nodsp", true, false, + { isa_bit_ARMv7em, isa_nobit } + }, { NULL, false, false, {isa_nobit}} }; diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in index 14e49ec..43f4ebc 100644 --- a/gcc/config/arm/arm-cpus.in +++ b/gcc/config/arm/arm-cpus.in @@ -228,6 +228,7 @@ begin arch armv7 # fp => VFPv3-d16 (only useful for the A+R profile subset). option fp add VFPv3 FP_DBL optalias vfpv3-d16 fp + option nofp remove ALL_FP end arch armv7 begin arch armv7-a @@ -281,7 +282,9 @@ begin arch armv7-r isa ARMv7r # ARMv7-r uses VFPv3-d16 option fp.sp add VFPv3 + optalias vfpv3xd fp.sp option fp add VFPv3 FP_DBL + optalias vfpv3-d16 fp option idiv add bit_adiv option nofp remove ALL_FP option noidiv remove bit_adiv @@ -303,8 +306,10 @@ begin arch armv7e-m isa ARMv7em # fp => VFPv4-sp-d16; fpv5 => FPv5-sp-d16; fp.dp => FPv5-d16 option fp add VFPv4 + optalias vfpv4-sp-d16 fp option fpv5 add FPv5 option fp.dp add FPv5 FP_DBL + optalias fpv5-d16 fp.dp option nofp remove ALL_FP end arch armv7e-m @@ -359,6 +364,7 @@ begin arch armv8-m.main option fp add FPv5 option fp.dp add FPv5 FP_DBL option nofp remove ALL_FP + option nodsp remove bit_ARMv7em end arch armv8-m.main begin arch iwmmxt |