Commit ffc12690 by Richard Earnshaw Committed by Richard Earnshaw

[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
parent be5c4e06
2017-06-16 Richard Earnshaw <rearnsha@arm.com> 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/arm/t-fuchsia: New file.
* config.gcc (arm*-*-fuchsia*): Use it. * config.gcc (arm*-*-fuchsia*): Use it.
......
...@@ -1814,6 +1814,10 @@ static const struct cpu_arch_extension arch_opttab_armv7[] = { ...@@ -1814,6 +1814,10 @@ static const struct cpu_arch_extension arch_opttab_armv7[] = {
{ ISA_VFPv3,ISA_FP_DBL, isa_nobit } { ISA_VFPv3,ISA_FP_DBL, isa_nobit }
}, },
{ {
"nofp", true, false,
{ ISA_ALL_FP, isa_nobit }
},
{
"vfpv3-d16", false, true, "vfpv3-d16", false, true,
{ ISA_VFPv3,ISA_FP_DBL, isa_nobit } { ISA_VFPv3,ISA_FP_DBL, isa_nobit }
}, },
...@@ -1961,6 +1965,14 @@ static const struct cpu_arch_extension arch_opttab_armv7_r[] = { ...@@ -1961,6 +1965,14 @@ static const struct cpu_arch_extension arch_opttab_armv7_r[] = {
"noidiv", true, false, "noidiv", true, false,
{ isa_bit_adiv, isa_nobit } { 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}} { NULL, false, false, {isa_nobit}}
}; };
...@@ -2025,6 +2037,14 @@ static const struct cpu_arch_extension arch_opttab_armv8_1_a[] = { ...@@ -2025,6 +2037,14 @@ static const struct cpu_arch_extension arch_opttab_armv8_1_a[] = {
"nofp", true, false, "nofp", true, false,
{ ISA_ALL_FP, isa_nobit } { 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}} { NULL, false, false, {isa_nobit}}
}; };
...@@ -2069,6 +2089,10 @@ static const struct cpu_arch_extension arch_opttab_armv8_m_main[] = { ...@@ -2069,6 +2089,10 @@ static const struct cpu_arch_extension arch_opttab_armv8_m_main[] = {
"nofp", true, false, "nofp", true, false,
{ ISA_ALL_FP, isa_nobit } { ISA_ALL_FP, isa_nobit }
}, },
{
"nodsp", true, false,
{ isa_bit_ARMv7em, isa_nobit }
},
{ NULL, false, false, {isa_nobit}} { NULL, false, false, {isa_nobit}}
}; };
......
...@@ -228,6 +228,7 @@ begin arch armv7 ...@@ -228,6 +228,7 @@ begin arch armv7
# fp => VFPv3-d16 (only useful for the A+R profile subset). # fp => VFPv3-d16 (only useful for the A+R profile subset).
option fp add VFPv3 FP_DBL option fp add VFPv3 FP_DBL
optalias vfpv3-d16 fp optalias vfpv3-d16 fp
option nofp remove ALL_FP
end arch armv7 end arch armv7
begin arch armv7-a begin arch armv7-a
...@@ -281,7 +282,9 @@ begin arch armv7-r ...@@ -281,7 +282,9 @@ begin arch armv7-r
isa ARMv7r isa ARMv7r
# ARMv7-r uses VFPv3-d16 # ARMv7-r uses VFPv3-d16
option fp.sp add VFPv3 option fp.sp add VFPv3
optalias vfpv3xd fp.sp
option fp add VFPv3 FP_DBL option fp add VFPv3 FP_DBL
optalias vfpv3-d16 fp
option idiv add bit_adiv option idiv add bit_adiv
option nofp remove ALL_FP option nofp remove ALL_FP
option noidiv remove bit_adiv option noidiv remove bit_adiv
...@@ -303,8 +306,10 @@ begin arch armv7e-m ...@@ -303,8 +306,10 @@ begin arch armv7e-m
isa ARMv7em isa ARMv7em
# fp => VFPv4-sp-d16; fpv5 => FPv5-sp-d16; fp.dp => FPv5-d16 # fp => VFPv4-sp-d16; fpv5 => FPv5-sp-d16; fp.dp => FPv5-d16
option fp add VFPv4 option fp add VFPv4
optalias vfpv4-sp-d16 fp
option fpv5 add FPv5 option fpv5 add FPv5
option fp.dp add FPv5 FP_DBL option fp.dp add FPv5 FP_DBL
optalias fpv5-d16 fp.dp
option nofp remove ALL_FP option nofp remove ALL_FP
end arch armv7e-m end arch armv7e-m
...@@ -359,6 +364,7 @@ begin arch armv8-m.main ...@@ -359,6 +364,7 @@ begin arch armv8-m.main
option fp add FPv5 option fp add FPv5
option fp.dp add FPv5 FP_DBL option fp.dp add FPv5 FP_DBL
option nofp remove ALL_FP option nofp remove ALL_FP
option nodsp remove bit_ARMv7em
end arch armv8-m.main end arch armv8-m.main
begin arch iwmmxt begin arch iwmmxt
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment