[Patch][binutils][arm] Change CRC from fpu feature to archititectural extension
Nathan Chancellor
natechancellor@gmail.com
Thu Nov 21 20:19:00 GMT 2019
On Thu, Nov 21, 2019 at 02:38:01PM +0000, Mihail Ionescu wrote:
> Hi,
>
> This patch changes the CRC extension to use the core feature bits instead
> of the coproc/fpu feature bits.
> CRC is not an fpu feature and it causes issues with the new fpu reset
> patch (f439988037a589de3798f44e7268301adaec21a9). CRC can be set using
> the '.arch_extension' directive, which sets bits in the coproc bitfield. When
> a '.fpu' directive is encountered, the CRC feature bit gets removed and
> there is no way to set it back using '.fpu'.
> With this patch, CRC will be marked in the feature core bits, which prevents
> it from getting removed when setting/changing the fpu options.
>
> gas/ChangeLog:
>
> 2019-11-21 Mihail Ionescu <mihail.ionescu@arm.com>
>
> * config/tc-arm.c (arm_ext_crc): New.
> (crc_ext_armv8): Remove.
> (insns): Rename crc_ext_armv8 to arm_ext_crc.
> (arm_cpus): Replace CRC_EXT_ARMV8 with ARM_EXT2_CRC.
> (armv8a_ext_table, armv8r_ext_table,
> arm_option_extension_value_table): Redefine the crc
> extension in terms of ARM_EXT2_CRC.
> * gas/testsuite/gas/arm/crc-ext.s: New.
> * gas/testsuite/gas/arm/crc-ext.d: New.
>
> include/ChangeLog:
>
> 2019-11-21 Mihail Ionescu <mihail.ionescu@arm.com>
>
> * opcode/arm.h (ARM_EXT2_CRC): New extension feature
> to replace CRC_EXT_ARMV8.
> (CRC_EXT_ARMV8): Remove and mark bit as unused.
> (ARM_ARCH_V8A_CRC, ARM_ARCH_V8_1A, ARM_ARCH_V8_2A,
> ARM_ARCH_V8_3A, ARM_ARCH_V8_4A, ARM_ARCH_V8_5A,
> ARM_ARCH_V8_6A): Redefine using ARM_EXT2_CRC instead of
> CRC_EXT_ARMV8.
>
>
> opcodes/ChangeLog:
>
> 2019-11-21 Mihail Ionescu <mihail.ionescu@arm.com>
>
> * opcodes/arm-dis.c (arm_opcodes, thumb32_opcodes):
> Change the coproc CRC conditions to use the extension
> feature set, second word, based on ARM_EXT2_CRC.
>
>
>
> Tested on arm-elf, arm-linux and arm-*-pe targets.
>
> Is it ok for trunk?
>
> Regards,
> Mihail
Hi Mihail,
Thank you for the quick fix, this resolves the error for me.
Cheers,
Nathan
More information about the Binutils
mailing list