[PATCH][GAS] arm: add armv9-a architecture to -march

Przemyslaw Wirkus Przemyslaw.Wirkus@arm.com
Mon Oct 4 20:24:34 GMT 2021


Patch is adding `armv9-a` to -march in Arm GAS.

This patch also updates:
	+ New value of Tag_CPU_arch EABI attribute (22) is added, see [0].
	+ Updated missing from code Tag_CPU_arch EABI attributes for
	  "Arm v8.1-A", "Arm v8.2-A" and "Arm v8.3-A" entries, see [0].
	+ New test `armv9-a_arch.d` to demonstrate that (22) is recognised
	  by readelf.
	+ Commit [1] extends arm_feature_set.core array. A follow up change
	  is done to e.g., initialize (with 0s) or other values existing
	  ARM_FEATURE_x macros. New macro ARM_FEATURE_ALL is added set all
	  fields of arm_feature_set.core array.
	+ Various changes are made to align asserts with new V9 arch.
	+ Updated how we combine archs 'v4t_plus_v6_m' as this mechanism
	must handle new Armv9 as well.

	[0] https://github.com/ARM-software/abi-aa/blob/main/addenda32/addenda32.rst#3352the-target-related-attributes
	[1] 2c6ccfcfdde1 (arm: Extend again arm_feature_set struct to provide
	    more bits).

Regression tested on `arm-none-eabi` cross Binutils and no issues.

OK for master?

bfd/

2021-09-21  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* archures.c: Define bfd_mach_arm_9.
	* bfd-in2.h (bfd_mach_arm_9): Define bfd_mach_arm_9.
	* cpu-arm.c: Add 'armv9-a' option to -march.
	* elf32-arm.c (using_thumb2_bl): Update assert check.
	(arch_has_arm_nop): Add TAG_CPU_ARCH_V9.
	(bfd_arm_get_mach_from_attributes): Add case for TAG_CPU_ARCH_V9.
	Update assert.
	(tag_cpu_arch_combine): Updated table.
	(tag_cpu_arch_combine): Updated table.
	(tag_cpu_arch_combine): Updated table.
	(v9): New table..

binutils/

2021-09-21  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* readelf.c (arm_attr_tag_CPU_arch): Update with 

elfcpp/

2021-09-21  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* arm.h: Update TAG_CPU_ARCH_ enums with currect values.

gas/

2021-09-21  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* NEWS: Update docs.
	* config/tc-arm.c (get_aeabi_cpu_arch_from_fset): Return Armv9-a
	for -amarch=all.
	(aeabi_set_public_attributes): Update assert.
	* doc/c-arm.texi: Update docs.
	* testsuite/gas/arm/armv9-a_arch.d: New test.
	* testsuite/gas/arm/attr-march-all.d: Update test with v9.

include/

2021-09-21  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* elf/arm.h Update TAG_CPU_ARCH_ defines with currect values.
	* opcode/arm.h (ARM_EXT3_V9A): New macro.
	(ARM_ARCH_NONE): Updated with arm_feature_set.core size.
	(FPU_NONE): Updated.
	(ARM_ANY): Updated.
	(ARM_ARCH_UNKNOWN): New macro.
	(ARM_FEATURE_LOW): Updated.
	(ARM_FEATURE_CORE): Updated.
	(ARM_FEATURE_CORE_LOW): Updated.
	(ARM_FEATURE_CORE_HIGH): Updated.
	(ARM_FEATURE_COPROC): Updated.
	(ARM_FEATURE): Updated.
	(ARM_FEATURE_ALL): New macro.

opcodes/

2021-09-21  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* arm-dis.c (select_arm_features): Support bfd_mach_arm_9.
	Also Update bfd_mach_arm_unknown to use new macro ARM_ARCH_UNKNOWN.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rb14867.patch
Type: application/octet-stream
Size: 16710 bytes
Desc: rb14867.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20211004/eadc38f3/attachment-0001.obj>


More information about the Binutils mailing list