aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorYvan Roux <yvan.roux@linaro.org>2017-03-03 15:28:04 +0100
committerYvan Roux <yvan.roux@linaro.org>2017-03-14 12:24:22 +0000
commit723bc99f61026f966e088fdcfc77f501879ffb14 (patch)
tree6bc1394b42830caaaa2a108d280ad5f7801d8b66 /gcc
parent1524c36448043be35955f05b366f1c74ce2e3546 (diff)
gcc/
Backport from trunk r242491. 2016-11-16 Richard Earnshaw <rearnsha@arm.com> * arm/arm-fpus.def (vfpv2): New FPU, currently an alias for 'vfp'. (neon-vfpv3): New FPU, currently an alias for 'neon'. * arm/arm-tables.opt: Regenerated. * arm/t-aprofile (MULTILIB_REUSE): Add reuse rules for vfpv2 and neon-vfpv3. * doc/invoke.texi (ARM: -mfpu): Document new options. Note that 'vfp' and 'neon' are aliases for specific implementations. Change-Id: I3c49607bc71b26fe547eb8c5e22c7f65a79e0f51
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/arm/arm-fpus.def2
-rw-r--r--gcc/config/arm/arm-tables.opt42
-rw-r--r--gcc/config/arm/t-aprofile2
-rw-r--r--gcc/doc/invoke.texi6
4 files changed, 32 insertions, 20 deletions
diff --git a/gcc/config/arm/arm-fpus.def b/gcc/config/arm/arm-fpus.def
index e0c43651d93..04b2ef140c4 100644
--- a/gcc/config/arm/arm-fpus.def
+++ b/gcc/config/arm/arm-fpus.def
@@ -26,6 +26,7 @@
genopt.sh assumes no whitespace up to the first "," in each entry. */
ARM_FPU("vfp", 2, VFP_REG_D16, FPU_FL_NONE)
+ARM_FPU("vfpv2", 2, VFP_REG_D16, FPU_FL_NONE)
ARM_FPU("vfpv3", 3, VFP_REG_D32, FPU_FL_NONE)
ARM_FPU("vfpv3-fp16", 3, VFP_REG_D32, FPU_FL_FP16)
ARM_FPU("vfpv3-d16", 3, VFP_REG_D16, FPU_FL_NONE)
@@ -33,6 +34,7 @@ ARM_FPU("vfpv3-d16-fp16", 3, VFP_REG_D16, FPU_FL_FP16)
ARM_FPU("vfpv3xd", 3, VFP_REG_SINGLE, FPU_FL_NONE)
ARM_FPU("vfpv3xd-fp16", 3, VFP_REG_SINGLE, FPU_FL_FP16)
ARM_FPU("neon", 3, VFP_REG_D32, FPU_FL_NEON)
+ARM_FPU("neon-vfpv3", 3, VFP_REG_D32, FPU_FL_NEON)
ARM_FPU("neon-fp16", 3, VFP_REG_D32, FPU_FL_NEON | FPU_FL_FP16)
ARM_FPU("vfpv4", 4, VFP_REG_D32, FPU_FL_FP16)
ARM_FPU("vfpv4-d16", 4, VFP_REG_D16, FPU_FL_FP16)
diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt
index f7886b94be7..06112cbb070 100644
--- a/gcc/config/arm/arm-tables.opt
+++ b/gcc/config/arm/arm-tables.opt
@@ -471,56 +471,62 @@ EnumValue
Enum(arm_fpu) String(vfp) Value(0)
EnumValue
-Enum(arm_fpu) String(vfpv3) Value(1)
+Enum(arm_fpu) String(vfpv2) Value(1)
EnumValue
-Enum(arm_fpu) String(vfpv3-fp16) Value(2)
+Enum(arm_fpu) String(vfpv3) Value(2)
EnumValue
-Enum(arm_fpu) String(vfpv3-d16) Value(3)
+Enum(arm_fpu) String(vfpv3-fp16) Value(3)
EnumValue
-Enum(arm_fpu) String(vfpv3-d16-fp16) Value(4)
+Enum(arm_fpu) String(vfpv3-d16) Value(4)
EnumValue
-Enum(arm_fpu) String(vfpv3xd) Value(5)
+Enum(arm_fpu) String(vfpv3-d16-fp16) Value(5)
EnumValue
-Enum(arm_fpu) String(vfpv3xd-fp16) Value(6)
+Enum(arm_fpu) String(vfpv3xd) Value(6)
EnumValue
-Enum(arm_fpu) String(neon) Value(7)
+Enum(arm_fpu) String(vfpv3xd-fp16) Value(7)
EnumValue
-Enum(arm_fpu) String(neon-fp16) Value(8)
+Enum(arm_fpu) String(neon) Value(8)
EnumValue
-Enum(arm_fpu) String(vfpv4) Value(9)
+Enum(arm_fpu) String(neon-vfpv3) Value(9)
EnumValue
-Enum(arm_fpu) String(vfpv4-d16) Value(10)
+Enum(arm_fpu) String(neon-fp16) Value(10)
EnumValue
-Enum(arm_fpu) String(fpv4-sp-d16) Value(11)
+Enum(arm_fpu) String(vfpv4) Value(11)
EnumValue
-Enum(arm_fpu) String(fpv5-sp-d16) Value(12)
+Enum(arm_fpu) String(vfpv4-d16) Value(12)
EnumValue
-Enum(arm_fpu) String(fpv5-d16) Value(13)
+Enum(arm_fpu) String(fpv4-sp-d16) Value(13)
EnumValue
-Enum(arm_fpu) String(neon-vfpv4) Value(14)
+Enum(arm_fpu) String(fpv5-sp-d16) Value(14)
EnumValue
-Enum(arm_fpu) String(fp-armv8) Value(15)
+Enum(arm_fpu) String(fpv5-d16) Value(15)
EnumValue
-Enum(arm_fpu) String(neon-fp-armv8) Value(16)
+Enum(arm_fpu) String(neon-vfpv4) Value(16)
EnumValue
-Enum(arm_fpu) String(crypto-neon-fp-armv8) Value(17)
+Enum(arm_fpu) String(fp-armv8) Value(17)
EnumValue
-Enum(arm_fpu) String(vfp3) Value(18)
+Enum(arm_fpu) String(neon-fp-armv8) Value(18)
+
+EnumValue
+Enum(arm_fpu) String(crypto-neon-fp-armv8) Value(19)
+
+EnumValue
+Enum(arm_fpu) String(vfp3) Value(20)
diff --git a/gcc/config/arm/t-aprofile b/gcc/config/arm/t-aprofile
index f852ecd0401..7c5b10b7599 100644
--- a/gcc/config/arm/t-aprofile
+++ b/gcc/config/arm/t-aprofile
@@ -111,6 +111,8 @@ MULTILIB_MATCHES += mfpu?vfpv4-d16=mfpu?vfpv4
MULTILIB_MATCHES += mfpu?vfpv4-d16=mfpu?fpv5-d16
MULTILIB_MATCHES += mfpu?vfpv4-d16=mfpu?fp-armv8
MULTILIB_MATCHES += mfpu?neon-fp-armv8=mfpu?crypto-neon-fp-armv8
+MULTILIB_MATCHES += mfpu?vfp=mfpu?vfpv2
+MULTILIB_MATCHES += mfpu?neon=mfpu?neon-vfpv3
# Map all requests for vfpv3 with a later CPU to vfpv3-d16 v7-a.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index cb757a16da5..0aa82a3b046 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -14127,12 +14127,14 @@ is unsuccessful the option has no effect.
@item -mfpu=@var{name}
@opindex mfpu
This specifies what floating-point hardware (or hardware emulation) is
-available on the target. Permissible names are: @samp{vfp}, @samp{vfpv3},
+available on the target. Permissible names are: @samp{vfpv2}, @samp{vfpv3},
@samp{vfpv3-fp16}, @samp{vfpv3-d16}, @samp{vfpv3-d16-fp16}, @samp{vfpv3xd},
-@samp{vfpv3xd-fp16}, @samp{neon}, @samp{neon-fp16}, @samp{vfpv4},
+@samp{vfpv3xd-fp16}, @samp{neon-vfpv3}, @samp{neon-fp16}, @samp{vfpv4},
@samp{vfpv4-d16}, @samp{fpv4-sp-d16}, @samp{neon-vfpv4},
@samp{fpv5-d16}, @samp{fpv5-sp-d16},
@samp{fp-armv8}, @samp{neon-fp-armv8} and @samp{crypto-neon-fp-armv8}.
+Note that @samp{neon} is an alias for @samp{neon-vfpv3} and @samp{vfp}
+is an alias for @samp{vfpv2}.
If @option{-msoft-float} is specified this specifies the format of
floating-point values.