[arm] Add a few missing architecture extension options.
authorRichard Earnshaw <rearnsha@arm.com>
Fri, 16 Jun 2017 21:06:36 +0000 (21:06 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Fri, 16 Jun 2017 21:06:36 +0000 (21:06 +0000)
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

gcc/ChangeLog
gcc/config/arm/arm-cpu-cdata.h
gcc/config/arm/arm-cpus.in

index 342458179e99896304c77bf508472acc8262dcde..88b17343ec7e2c478e99e4deec59929adbada24b 100644 (file)
@@ -1,3 +1,10 @@
+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.
index 5034dbb720cf9667f43199894e4e648bb39ba5a9..8406fa05423bc9995f1a9091e6ad1a92db816f7e 100644 (file)
@@ -1813,6 +1813,10 @@ static const struct cpu_arch_extension arch_opttab_armv7[] = {
     "fp", false, false,
     { 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}}
 };
 
index 14e49ecead77525e2548f4db92f60f8f9d189558..43f4ebcc5f7d66c80740ba99d5e49514f5f13501 100644 (file)
@@ -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