This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH][GAS][ARM] Enable dot product support by default to cores that support it.
- From: Tamar Christina <tamar dot christina at arm dot com>
- To: binutils at sourceware dot org
- Cc: nd at arm dot com, Richard dot Earnshaw at arm dot com, nickc at redhat dot com, ramana dot radhakrishnan at arm dot com
- Date: Mon, 6 Nov 2017 16:56:53 +0000
- Subject: [PATCH][GAS][ARM] Enable dot product support by default to cores that support it.
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Tamar dot Christina at arm dot com;
- Nodisclaimer: True
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
Hi All,
This patch similarly to the AArch64 one enables Dot Product
support by default for the Cortex-A55 and Cortex-A75
which have hardware support for these instructions.
Checked with check-gas and no regressions on arm-none-eabi.
I have not added a test for this as this can't be used as
`-mcpu` and `.cpu` do not use the `fpu` settings from the cpu
and specifying the cpu and fpu turns off the cpu flags.
But this patch is still the correct thing to do.
Ok for Trunk?
Ps. I do not have commit access so if OK can someone apply for me?
Thanks,
Tamar
gas/
2017-11-06 Tamar Christina <tamar.christina@arm.com>
* config/tc-arm.c (arm_cpus):
Change FPU_ARCH_CRYPTO_NEON_VFP_ARMV8
into FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD.
include/
2017-11-06 Tamar Christina <tamar.christina@arm.com>
* opcode/arm.h (FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD):
New macro.
--
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 412102f612f8cd3b4220ab80eba5ef6ad7100302..06ad3c42b49291220848bb0c825e8a9c8d95b5f9 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -25863,7 +25863,7 @@ static const struct arm_cpu_option_table arm_cpus[] =
FPU_ARCH_CRYPTO_NEON_VFP_ARMV8),
ARM_CPU_OPT ("cortex-a55", "Cortex-A55", ARM_ARCH_V8_2A,
ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
- FPU_ARCH_CRYPTO_NEON_VFP_ARMV8),
+ FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD),
ARM_CPU_OPT ("cortex-a57", "Cortex-A57", ARM_ARCH_V8A,
ARM_FEATURE_COPROC (CRC_EXT_ARMV8),
FPU_ARCH_CRYPTO_NEON_VFP_ARMV8),
@@ -25875,7 +25875,7 @@ static const struct arm_cpu_option_table arm_cpus[] =
FPU_ARCH_CRYPTO_NEON_VFP_ARMV8),
ARM_CPU_OPT ("cortex-a75", "Cortex-A75", ARM_ARCH_V8_2A,
ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
- FPU_ARCH_CRYPTO_NEON_VFP_ARMV8),
+ FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD),
ARM_CPU_OPT ("cortex-r4", "Cortex-R4", ARM_ARCH_V7R,
ARM_ARCH_NONE,
FPU_NONE),
diff --git a/include/opcode/arm.h b/include/opcode/arm.h
index e11ac7c40bc3495888fbc502eef070320e30a92a..32b7c036509322d4d02f84e2cae0c877a92a4101 100644
--- a/include/opcode/arm.h
+++ b/include/opcode/arm.h
@@ -227,6 +227,9 @@
| FPU_VFP_ARMV8)
#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8 \
ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8)
+#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD \
+ ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8 | \
+ FPU_NEON_EXT_DOTPROD)
#define ARCH_CRC_ARMV8 ARM_FEATURE_COPROC (CRC_EXT_ARMV8)
#define FPU_ARCH_NEON_VFP_ARMV8_1 \
ARM_FEATURE_COPROC (FPU_NEON_ARMV8 \