Browse Source
This patch adds AArch32 support for -march=armv9.[123]-a. The behaviour of the new options can be expressed using a combination of existing feature flags and tables. The cpu_arch_ver entries for ARM_ARCH_V9_2A and ARM_ARCH_V9_3A are technically redundant but it seemed less surprising to include them anyway. include/ * opcode/arm.h (ARM_ARCH_V9_1A, ARM_ARCH_V9_2A): New macros. (ARM_ARCH_V9_3A): Likewise. gas/ * doc/c-arm.texi: Add armv9.1-a, armv9.2-a and armv9.3-a. * config/tc-arm.c (armv91a_ext_table, armv92a_ext_table): New macros. (armv93a_ext_table): Likewise. (arm_archs): Add armv9.1-a, armv9.2-a and armv9.3-a. (cpu_arch_ver): Add ARM_ARCH_V9_1A, ARM_ARCH_V9_2A and ARM_ARCH_V9_3A. * NEWS: Mention the above. * testsuite/gas/arm/attr-march-armv9_1-a.d: New test. * testsuite/gas/arm/attr-march-armv9_2-a.d: Likewise. * testsuite/gas/arm/attr-march-armv9_3-a.d: Likewise. * testsuite/gas/arm/bfloat16-armv9.1-a.d: Likewise. * testsuite/gas/arm/bfloat16-armv9.2-a.d: Likewise. * testsuite/gas/arm/bfloat16-armv9.3-a.d: Likewise. * testsuite/gas/arm/i8mm-armv9.1-a.d: Likewise. * testsuite/gas/arm/i8mm-armv9.2-a.d: Likewise. * testsuite/gas/arm/i8mm-armv9.3-a.d: Likewise.binutils-2_38-branch
12 changed files with 101 additions and 3 deletions
@ -0,0 +1,17 @@ |
|||
# name: check for armv9-a command line option settings |
|||
# source: blank.s |
|||
# as: -march=armv9.1-a |
|||
# readelf: -A |
|||
# This test is only valid on EABI based ports. |
|||
# target: *-*-*eabi* *-*-nacl* |
|||
|
|||
Attribute Section: aeabi |
|||
File Attributes |
|||
Tag_CPU_name: "9.1-A" |
|||
Tag_CPU_arch: v9 |
|||
Tag_CPU_arch_profile: Application |
|||
Tag_ARM_ISA_use: Yes |
|||
Tag_THUMB_ISA_use: Thumb-2 |
|||
Tag_Advanced_SIMD_arch: NEON for ARMv8.1 |
|||
Tag_MPextension_use: Allowed |
|||
Tag_Virtualization_use: TrustZone and Virtualization Extensions |
|||
@ -0,0 +1,17 @@ |
|||
# name: check for armv9-a command line option settings |
|||
# source: blank.s |
|||
# as: -march=armv9.2-a |
|||
# readelf: -A |
|||
# This test is only valid on EABI based ports. |
|||
# target: *-*-*eabi* *-*-nacl* |
|||
|
|||
Attribute Section: aeabi |
|||
File Attributes |
|||
Tag_CPU_name: "9.2-A" |
|||
Tag_CPU_arch: v9 |
|||
Tag_CPU_arch_profile: Application |
|||
Tag_ARM_ISA_use: Yes |
|||
Tag_THUMB_ISA_use: Thumb-2 |
|||
Tag_Advanced_SIMD_arch: NEON for ARMv8.1 |
|||
Tag_MPextension_use: Allowed |
|||
Tag_Virtualization_use: TrustZone and Virtualization Extensions |
|||
@ -0,0 +1,17 @@ |
|||
# name: check for armv9-a command line option settings |
|||
# source: blank.s |
|||
# as: -march=armv9.3-a |
|||
# readelf: -A |
|||
# This test is only valid on EABI based ports. |
|||
# target: *-*-*eabi* *-*-nacl* |
|||
|
|||
Attribute Section: aeabi |
|||
File Attributes |
|||
Tag_CPU_name: "9.3-A" |
|||
Tag_CPU_arch: v9 |
|||
Tag_CPU_arch_profile: Application |
|||
Tag_ARM_ISA_use: Yes |
|||
Tag_THUMB_ISA_use: Thumb-2 |
|||
Tag_Advanced_SIMD_arch: NEON for ARMv8.1 |
|||
Tag_MPextension_use: Allowed |
|||
Tag_Virtualization_use: TrustZone and Virtualization Extensions |
|||
@ -0,0 +1,5 @@ |
|||
#name: Bfloat 16 extension (Armv9.1-A) |
|||
#source: bfloat16.s |
|||
#as: -mno-warn-deprecated -march=armv9.1-a+simd -I$srcdir/$subdir |
|||
#objdump: -dr --show-raw-insn |
|||
#... |
|||
@ -0,0 +1,5 @@ |
|||
#name: Bfloat 16 extension (Armv9.2-A) |
|||
#source: bfloat16.s |
|||
#as: -mno-warn-deprecated -march=armv9.2-a+simd -I$srcdir/$subdir |
|||
#objdump: -dr --show-raw-insn |
|||
#... |
|||
@ -0,0 +1,5 @@ |
|||
#name: Bfloat 16 extension (Armv9.3-A) |
|||
#source: bfloat16.s |
|||
#as: -mno-warn-deprecated -march=armv9.3-a+simd -I$srcdir/$subdir |
|||
#objdump: -dr --show-raw-insn |
|||
#... |
|||
@ -0,0 +1,5 @@ |
|||
#name: Int8 Matrix Multiply extension (Armv9.1-A) |
|||
#source: i8mm.s |
|||
#as: -mno-warn-deprecated -march=armv9.1-a+i8mm+simd -I$srcdir/$subdir |
|||
#objdump: -dr --show-raw-insn |
|||
#... |
|||
@ -0,0 +1,5 @@ |
|||
#name: Int8 Matrix Multiply extension (Armv9.2-A) |
|||
#source: i8mm.s |
|||
#as: -mno-warn-deprecated -march=armv9.2-a+i8mm+simd -I$srcdir/$subdir |
|||
#objdump: -dr --show-raw-insn |
|||
#... |
|||
@ -0,0 +1,5 @@ |
|||
#name: Int8 Matrix Multiply extension (Armv9.3-A) |
|||
#source: i8mm.s |
|||
#as: -mno-warn-deprecated -march=armv9.3-a+i8mm+simd -I$srcdir/$subdir |
|||
#objdump: -dr --show-raw-insn |
|||
#... |
|||
Loading…
Reference in new issue