[arm] Automatically enable CRC instructions on supported ARMv8-A CPUs
Wed Sep 7 16:35:00 GMT 2016
I'd think that leaving CRC implicit in ARM_ARCH_V8A and creating a new
feature that excludes it, say ARM_ARCH_V8A_NO_CRC, would reflect the
specs more closely. But I have no strong feelings about it.
On 09/07/16 11:26, Richard Earnshaw (lists) wrote:
> When assembling for a named CPU we know whether or not that CPU has the
> ARMv8-A CRC extension. However, this was not coded into the assembler,
> requiring the user to explicitly enable this feature. Unfortunately,
> GCC assumes that we know that CRC is present and so files passed through
> by the compiler result in errors during assembly.
> This patch fixes this by introducing a new 'architecture' containing the
> CRC extension and then adjusting all the ARMv8-A cores that have this
> feature (everything bar xgene1) to use the new architecture setting.
> Although I don't have datasheets for all the parts I've enabled this for
> the xgene2, exynos-m1 and qdf24xx parts since all of these have the
> feature enabled already in the AArch64 assembler. If this is not
> correct for AArch32, then please can the relevant maintainers let me know.
> Tested with some simple smoke tests both using -mcpu= and .cpu directives.
> * opcode/arm.h (ARM_ARCH_V8A_CRC): New architecture.
> * config/tc-arm.h (arm_cpus): Use ARM_ARCH_V8A_CRC for all
> ARMv8-A CPUs except xgene1.
More information about the Binutils