From 82a90ece113f2798cb691b2a700ca9a62087ab97 Mon Sep 17 00:00:00 2001 From: Sivan Shani Date: Thu, 18 Jun 2026 19:55:04 +0000 Subject: [PATCH] gas: arm: Support CPU-specific extensions with -mcpu Previously, +ext/+noext feature modifiers were only available with -march. Extend the same mechanism to -mcpu so that CPU-specific extensions can be enabled and disabled with -mcpu=+ext and -mcpu=+noext, matching GCC behaviour. Add a per-CPU extension table (arm_ext_table) and a new ext_table field to struct arm_cpu_option_table, reusing the existing arm_parse_extension () infrastructure used by -march. Move the ARM_EXT/ARM_ADD/ARM_REMOVE helpers, the ALL_FP/ALL_SIMD/ALL_FP_MVE_FP masks and the CDE_EXTENSIONS list so they can be shared by both -mcpu and -march extension tables. Update ARM CPU feature definitions to match GCC CPU baselines. The default feature set for each -mcpu remains unchanged; only support for +ext/+noext modifiers is added. Add tests covering supported CPU extension modifiers and the resulting build attributes for each CPU. gas/ * config/tc-arm.c (struct arm_cpu_option_table): Add ext_table field. (ARM_EXT, ARM_ADD, ARM_REMOVE, ALL_FP, ALL_SIMD, ALL_FP_MVE_FP, CDE_EXTENSIONS): Move earlier. (cortex_*_ext_table, ...): New. (arm_cpus): Populate ext_table and update CPU feature baselines to match GCC. (arm_parse_cpu): Pass opt->ext_table to arm_parse_extension. gas/testsuite/ * gas/arm/feat-*.s: New test sources. * gas/arm/mcpu-*.d: New tests. * gas/arm/attr-cpu-directive.d: Update. ### This version address the review comments from: Message-ID: <2846ac09-3590-409d-8ecf-cc385c8929e8@arm.com> https://inbox.sourceware.org/binutils/2846ac09-3590-409d-8ecf-cc385c8929e8@arm.com/ ### --- gas/config/tc-arm.c | 699 ++++++++++++++---- gas/testsuite/gas/arm/attr-cpu-directive.d | 2 + gas/testsuite/gas/arm/feat-bf16.s | 5 + gas/testsuite/gas/arm/feat-crc.s | 4 + gas/testsuite/gas/arm/feat-dotprod.s | 4 + gas/testsuite/gas/arm/feat-dsp.s | 4 + gas/testsuite/gas/arm/feat-fp-vfpv3.s | 4 + gas/testsuite/gas/arm/feat-fp-vfpv5.s | 4 + gas/testsuite/gas/arm/feat-fp.dp.s | 4 + gas/testsuite/gas/arm/feat-fp.s | 4 + gas/testsuite/gas/arm/feat-fp16.s | 4 + gas/testsuite/gas/arm/feat-i8mm.s | 4 + gas/testsuite/gas/arm/feat-idiv.s | 3 + gas/testsuite/gas/arm/feat-mp.s | 4 + gas/testsuite/gas/arm/feat-mve.fp.s | 5 + gas/testsuite/gas/arm/feat-neon-fp16.s | 4 + gas/testsuite/gas/arm/feat-pacbti.s | 4 + gas/testsuite/gas/arm/feat-sec.s | 4 + gas/testsuite/gas/arm/feat-simd.s | 5 + gas/testsuite/gas/arm/feat-vfpv3-d16-fp16.s | 4 + gas/testsuite/gas/arm/mcpu-cortex-a12-attrs.d | 17 + .../gas/arm/mcpu-cortex-a12-feat-simd.d | 19 + gas/testsuite/gas/arm/mcpu-cortex-a15-attrs.d | 17 + .../gas/arm/mcpu-cortex-a15-feat-simd.d | 19 + gas/testsuite/gas/arm/mcpu-cortex-a17-attrs.d | 17 + .../gas/arm/mcpu-cortex-a17-feat-simd.d | 19 + gas/testsuite/gas/arm/mcpu-cortex-a32-attrs.d | 16 + .../gas/arm/mcpu-cortex-a32-attrs1.d | 18 + .../gas/arm/mcpu-cortex-a32-feat-crc.d | 18 + .../gas/arm/mcpu-cortex-a32-feat-simd.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a35-attrs.d | 16 + .../gas/arm/mcpu-cortex-a35-attrs1.d | 18 + .../gas/arm/mcpu-cortex-a35-feat-crc.d | 18 + .../gas/arm/mcpu-cortex-a35-feat-simd.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a5-attrs.d | 16 + .../gas/arm/mcpu-cortex-a5-feat-mp.d | 18 + .../gas/arm/mcpu-cortex-a5-feat-neon-fp16.d | 18 + .../gas/arm/mcpu-cortex-a5-feat-sec.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a53-attrs.d | 16 + .../gas/arm/mcpu-cortex-a53-attrs1.d | 18 + .../gas/arm/mcpu-cortex-a53-feat-crc.d | 18 + .../gas/arm/mcpu-cortex-a53-feat-simd.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a55-attrs.d | 17 + .../gas/arm/mcpu-cortex-a55-attrs1.d | 18 + .../gas/arm/mcpu-cortex-a55-feat-dotprod.d | 18 + .../gas/arm/mcpu-cortex-a55-feat-fp16.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a57-attrs.d | 18 + .../gas/arm/mcpu-cortex-a57-feat-crc.d | 18 + .../gas/arm/mcpu-cortex-a57-feat-simd.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a7-attrs.d | 17 + .../gas/arm/mcpu-cortex-a7-feat-simd.d | 19 + .../gas/arm/mcpu-cortex-a710-attrs.d | 18 + .../gas/arm/mcpu-cortex-a710-feat-bf16.d | 18 + .../gas/arm/mcpu-cortex-a710-feat-fp16.d | 18 + .../gas/arm/mcpu-cortex-a710-feat-i8mm.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a72-attrs.d | 18 + .../gas/arm/mcpu-cortex-a72-feat-crc.d | 18 + .../gas/arm/mcpu-cortex-a72-feat-simd.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a73-attrs.d | 18 + .../gas/arm/mcpu-cortex-a73-feat-crc.d | 18 + .../gas/arm/mcpu-cortex-a73-feat-simd.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a75-attrs.d | 18 + .../gas/arm/mcpu-cortex-a75-feat-dotprod.d | 18 + .../gas/arm/mcpu-cortex-a75-feat-fp16.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a76-attrs.d | 18 + .../gas/arm/mcpu-cortex-a76-feat-dotprod.d | 18 + .../gas/arm/mcpu-cortex-a76-feat-fp16.d | 18 + .../gas/arm/mcpu-cortex-a76ae-attrs.d | 18 + .../gas/arm/mcpu-cortex-a76ae-feat-dotprod.d | 18 + .../gas/arm/mcpu-cortex-a76ae-feat-fp16.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a77-attrs.d | 18 + .../gas/arm/mcpu-cortex-a77-feat-dotprod.d | 18 + .../gas/arm/mcpu-cortex-a77-feat-fp16.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a78-attrs.d | 18 + .../gas/arm/mcpu-cortex-a78-feat-dotprod.d | 18 + .../gas/arm/mcpu-cortex-a78-feat-fp16.d | 18 + .../gas/arm/mcpu-cortex-a78ae-attrs.d | 18 + .../gas/arm/mcpu-cortex-a78ae-feat-dotprod.d | 18 + .../gas/arm/mcpu-cortex-a78ae-feat-fp16.d | 18 + .../gas/arm/mcpu-cortex-a78c-attrs.d | 18 + .../gas/arm/mcpu-cortex-a78c-feat-dotprod.d | 18 + .../gas/arm/mcpu-cortex-a78c-feat-fp16.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-a8-attrs.d | 15 + .../gas/arm/mcpu-cortex-a8-feat-simd.d | 17 + gas/testsuite/gas/arm/mcpu-cortex-a9-attrs.d | 16 + .../gas/arm/mcpu-cortex-a9-feat-mp.d | 18 + .../gas/arm/mcpu-cortex-a9-feat-neon-fp16.d | 18 + .../gas/arm/mcpu-cortex-a9-feat-sec.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-m33-attrs.d | 13 + .../gas/arm/mcpu-cortex-m33-feat-dsp.d | 15 + .../gas/arm/mcpu-cortex-m33-feat-fp-vfpv5.d | 15 + .../gas/arm/mcpu-cortex-m35p-attrs.d | 13 + .../gas/arm/mcpu-cortex-m35p-feat-dsp.d | 15 + .../gas/arm/mcpu-cortex-m35p-feat-fp-vfpv5.d | 15 + gas/testsuite/gas/arm/mcpu-cortex-m4-attrs.d | 13 + .../gas/arm/mcpu-cortex-m4-feat-fp-vfpv3.d | 15 + gas/testsuite/gas/arm/mcpu-cortex-m52-attrs.d | 14 + .../gas/arm/mcpu-cortex-m52-attrs1.d | 16 + .../gas/arm/mcpu-cortex-m52-feat-fp-dp.d | 16 + .../gas/arm/mcpu-cortex-m52-feat-mve-fp.d | 16 + .../gas/arm/mcpu-cortex-m52-feat-pacbti.d | 16 + gas/testsuite/gas/arm/mcpu-cortex-m55-attrs.d | 14 + .../gas/arm/mcpu-cortex-m55-attrs1.d | 16 + .../gas/arm/mcpu-cortex-m55-feat-fp-dp.d | 16 + .../gas/arm/mcpu-cortex-m55-feat-mve-fp.d | 16 + gas/testsuite/gas/arm/mcpu-cortex-m7-attrs.d | 13 + .../gas/arm/mcpu-cortex-m7-feat-fp-dp.d | 14 + gas/testsuite/gas/arm/mcpu-cortex-m85-attrs.d | 14 + .../gas/arm/mcpu-cortex-m85-feat-fp-dp.d | 16 + .../gas/arm/mcpu-cortex-m85-feat-mve-fp.d | 16 + .../gas/arm/mcpu-cortex-m85-feat-pacbti.d | 16 + .../gas/arm/mcpu-cortex-r4f-feat-fp-vfpv3.d | 15 + gas/testsuite/gas/arm/mcpu-cortex-r5-attrs.d | 15 + .../gas/arm/mcpu-cortex-r5-feat-fp-vfpv3.d | 16 + .../gas/arm/mcpu-cortex-r5-feat-idiv.d | 16 + gas/testsuite/gas/arm/mcpu-cortex-r52-attrs.d | 17 + .../gas/arm/mcpu-cortex-r52-feat-crc.d | 18 + .../gas/arm/mcpu-cortex-r52-feat-simd.d | 18 + .../gas/arm/mcpu-cortex-r52plus-attrs.d | 17 + .../gas/arm/mcpu-cortex-r52plus-feat-crc.d | 18 + .../gas/arm/mcpu-cortex-r52plus-feat-simd.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-r7-attrs.d | 15 + .../gas/arm/mcpu-cortex-r7-feat-idiv.d | 17 + .../arm/mcpu-cortex-r7-feat-vfpv3-d16-fp16.d | 17 + gas/testsuite/gas/arm/mcpu-cortex-r8-attrs.d | 15 + .../gas/arm/mcpu-cortex-r8-feat-idiv.d | 17 + .../arm/mcpu-cortex-r8-feat-vfpv3-d16-fp16.d | 17 + gas/testsuite/gas/arm/mcpu-cortex-x1-attrs.d | 18 + .../gas/arm/mcpu-cortex-x1-feat-dotprod.d | 18 + .../gas/arm/mcpu-cortex-x1-feat-fp16.d | 18 + gas/testsuite/gas/arm/mcpu-cortex-x1c-attrs.d | 18 + .../gas/arm/mcpu-cortex-x1c-feat-dotprod.d | 18 + .../gas/arm/mcpu-cortex-x1c-feat-fp16.d | 18 + gas/testsuite/gas/arm/mcpu-exynos-m1-attrs.d | 18 + .../gas/arm/mcpu-exynos-m1-feat-crc.d | 18 + .../gas/arm/mcpu-exynos-m1-feat-simd.d | 18 + .../gas/arm/mcpu-marvell-pj4-feat-fp-vfpv3.d | 17 + .../gas/arm/mcpu-marvell-pj4-feat-mp.d | 17 + .../gas/arm/mcpu-marvell-pj4-feat-sec.d | 17 + .../gas/arm/mcpu-neoverse-n1-attrs.d | 18 + .../gas/arm/mcpu-neoverse-n1-feat-dotprod.d | 18 + .../gas/arm/mcpu-neoverse-n1-feat-fp16.d | 18 + .../gas/arm/mcpu-neoverse-n2-attrs.d | 18 + .../gas/arm/mcpu-neoverse-n2-feat-bf16.d | 18 + .../gas/arm/mcpu-neoverse-n2-feat-fp16.d | 18 + .../gas/arm/mcpu-neoverse-n2-feat-i8mm.d | 18 + .../gas/arm/mcpu-neoverse-v1-attrs.d | 18 + .../gas/arm/mcpu-neoverse-v1-feat-bf16.d | 18 + .../gas/arm/mcpu-neoverse-v1-feat-fp16.d | 18 + .../gas/arm/mcpu-neoverse-v1-feat-i8mm.d | 18 + gas/testsuite/gas/arm/mcpu-xgene1-feat-simd.d | 18 + 151 files changed, 2867 insertions(+), 155 deletions(-) create mode 100644 gas/testsuite/gas/arm/feat-bf16.s create mode 100644 gas/testsuite/gas/arm/feat-crc.s create mode 100644 gas/testsuite/gas/arm/feat-dotprod.s create mode 100644 gas/testsuite/gas/arm/feat-dsp.s create mode 100644 gas/testsuite/gas/arm/feat-fp-vfpv3.s create mode 100644 gas/testsuite/gas/arm/feat-fp-vfpv5.s create mode 100644 gas/testsuite/gas/arm/feat-fp.dp.s create mode 100644 gas/testsuite/gas/arm/feat-fp.s create mode 100644 gas/testsuite/gas/arm/feat-fp16.s create mode 100644 gas/testsuite/gas/arm/feat-i8mm.s create mode 100644 gas/testsuite/gas/arm/feat-idiv.s create mode 100644 gas/testsuite/gas/arm/feat-mp.s create mode 100644 gas/testsuite/gas/arm/feat-mve.fp.s create mode 100644 gas/testsuite/gas/arm/feat-neon-fp16.s create mode 100644 gas/testsuite/gas/arm/feat-pacbti.s create mode 100644 gas/testsuite/gas/arm/feat-sec.s create mode 100644 gas/testsuite/gas/arm/feat-simd.s create mode 100644 gas/testsuite/gas/arm/feat-vfpv3-d16-fp16.s create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a12-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a12-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a15-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a15-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a17-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a17-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a32-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a32-attrs1.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a32-feat-crc.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a32-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a35-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a35-attrs1.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a35-feat-crc.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a35-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a5-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a5-feat-mp.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a5-feat-neon-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a5-feat-sec.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a53-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a53-attrs1.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a53-feat-crc.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a53-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a55-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a55-attrs1.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a55-feat-dotprod.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a55-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a57-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a57-feat-crc.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a57-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a7-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a7-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a710-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a710-feat-bf16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a710-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a710-feat-i8mm.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a72-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a72-feat-crc.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a72-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a73-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a73-feat-crc.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a73-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a75-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a75-feat-dotprod.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a75-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a76-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a76-feat-dotprod.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a76-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a76ae-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a76ae-feat-dotprod.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a76ae-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a77-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a77-feat-dotprod.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a77-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a78-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a78-feat-dotprod.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a78-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a78ae-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a78ae-feat-dotprod.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a78ae-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a78c-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a78c-feat-dotprod.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a78c-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a8-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a8-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a9-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a9-feat-mp.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a9-feat-neon-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-a9-feat-sec.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m33-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m33-feat-dsp.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m33-feat-fp-vfpv5.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m35p-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m35p-feat-dsp.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m35p-feat-fp-vfpv5.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m4-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m4-feat-fp-vfpv3.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m52-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m52-attrs1.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m52-feat-fp-dp.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m52-feat-mve-fp.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m52-feat-pacbti.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m55-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m55-attrs1.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m55-feat-fp-dp.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m55-feat-mve-fp.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m7-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m7-feat-fp-dp.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m85-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m85-feat-fp-dp.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m85-feat-mve-fp.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-m85-feat-pacbti.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r4f-feat-fp-vfpv3.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r5-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r5-feat-fp-vfpv3.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r5-feat-idiv.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r52-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r52-feat-crc.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r52-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r52plus-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r52plus-feat-crc.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r52plus-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r7-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r7-feat-idiv.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r7-feat-vfpv3-d16-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r8-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r8-feat-idiv.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-r8-feat-vfpv3-d16-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-x1-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-x1-feat-dotprod.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-x1-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-x1c-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-x1c-feat-dotprod.d create mode 100644 gas/testsuite/gas/arm/mcpu-cortex-x1c-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-exynos-m1-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-exynos-m1-feat-crc.d create mode 100644 gas/testsuite/gas/arm/mcpu-exynos-m1-feat-simd.d create mode 100644 gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-fp-vfpv3.d create mode 100644 gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-mp.d create mode 100644 gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-sec.d create mode 100644 gas/testsuite/gas/arm/mcpu-neoverse-n1-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-neoverse-n1-feat-dotprod.d create mode 100644 gas/testsuite/gas/arm/mcpu-neoverse-n1-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-neoverse-n2-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-bf16.d create mode 100644 gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-i8mm.d create mode 100644 gas/testsuite/gas/arm/mcpu-neoverse-v1-attrs.d create mode 100644 gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-bf16.d create mode 100644 gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-fp16.d create mode 100644 gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-i8mm.d create mode 100644 gas/testsuite/gas/arm/mcpu-xgene1-feat-simd.d diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 3ff29542411..ba599ef1fda 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -30495,6 +30495,14 @@ const struct arm_legacy_option_table arm_legacy_opts[] = {NULL, NULL, ARM_ARCH_NONE, NULL} }; +struct arm_ext_table +{ + const char * name; + size_t name_len; + const arm_feature_set merge; + const arm_feature_set clear; +}; + struct arm_cpu_option_table { const char * name; @@ -30507,11 +30515,339 @@ struct arm_cpu_option_table /* The canonical name of the CPU, or NULL to use NAME converted to upper case. */ const char * canonical_name; + const struct arm_ext_table * ext_table; +}; + +/* Used to add support for +E and +noE extension. */ +#define ARM_EXT(E, M, C) { E, sizeof (E) - 1, M, C } +/* Used to add support for a +E extension. */ +#define ARM_ADD(E, M) { E, sizeof(E) - 1, M, ARM_ARCH_NONE } +/* Used to add support for a +noE extension. */ +#define ARM_REMOVE(E, C) { E, sizeof(E) -1, ARM_ARCH_NONE, C } + +#define ALL_FP ARM_FEATURE (0, ARM_EXT2_FP16_INST | ARM_EXT2_FP16_FML, \ + ~0 & ~FPU_ENDIAN_PURE) +#define ALL_FP_MVE_FP ARM_FEATURE (0, (ARM_EXT2_FP16_INST \ + | ARM_EXT2_FP16_FML \ + | ARM_EXT2_MVE_FP), \ + ~0 & ~FPU_ENDIAN_PURE) +#define ALL_SIMD ARM_FEATURE_COPROC (FPU_NEON_EXT_V1 | FPU_NEON_EXT_FMA \ + | FPU_NEON_EXT_ARMV8 | FPU_NEON_EXT_RDMA \ + | FPU_NEON_EXT_DOTPROD) + +#define CDE_EXTENSIONS \ + ARM_ADD ("cdecp0", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE0)), \ + ARM_ADD ("cdecp1", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE1)), \ + ARM_ADD ("cdecp2", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE2)), \ + ARM_ADD ("cdecp3", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE3)), \ + ARM_ADD ("cdecp4", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE4)), \ + ARM_ADD ("cdecp5", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE5)), \ + ARM_ADD ("cdecp6", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE6)), \ + ARM_ADD ("cdecp7", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE7)) + +/* -mcpu extensions. */ +static const struct arm_ext_table cortex_a5_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_REMOVE ("simd", ALL_SIMD), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a7_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_REMOVE ("simd", ALL_SIMD), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a8_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a9_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_REMOVE ("simd", ALL_SIMD), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a12_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a15_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a17_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_r5_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_REMOVE ("fp.dp", ARM_FEATURE_COPROC (FPU_VFP_EXT_V1 | FPU_VFP_EXT_V3 + | FPU_VFP_EXT_ARMV8)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_r7_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_REMOVE ("fp.dp", ARM_FEATURE_COPROC (FPU_VFP_EXT_V1 | FPU_VFP_EXT_V3 + | FPU_VFP_EXT_ARMV8)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_r8_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_REMOVE ("fp.dp", ARM_FEATURE_COPROC (FPU_VFP_EXT_V1 | FPU_VFP_EXT_V3 + | FPU_VFP_EXT_ARMV8)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_m4_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_m7_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_REMOVE ("fp.dp", ARM_FEATURE_COPROC (FPU_VFP_EXT_V1 | FPU_VFP_EXT_V3 + | FPU_VFP_EXT_ARMV8)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a32_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a35_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a53_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a57_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a72_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a73_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table exynos_m1_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_r52_ext_table[] = +{ + ARM_REMOVE ("fp.dp", ARM_FEATURE_COPROC (FPU_VFP_EXT_D32 | FPU_VFP_EXT_ARMV8 + | FPU_NEON_EXT_V1 | FPU_NEON_EXT_FMA + | FPU_NEON_EXT_ARMV8 | FPU_NEON_EXT_RDMA + | FPU_NEON_EXT_DOTPROD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_r52plus_ext_table[] = +{ + ARM_REMOVE ("fp.dp", ARM_FEATURE_COPROC (FPU_VFP_EXT_D32 | FPU_VFP_EXT_ARMV8 + | FPU_NEON_EXT_V1 | FPU_NEON_EXT_FMA + | FPU_NEON_EXT_ARMV8 | FPU_NEON_EXT_RDMA + | FPU_NEON_EXT_DOTPROD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_m33_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_REMOVE ("dsp", ARM_FEATURE_CORE_LOW (ARM_AEXT_V8M_MAIN_DSP)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_m35p_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_REMOVE ("dsp", ARM_FEATURE_CORE_LOW (ARM_AEXT_V8M_MAIN_DSP)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_m52_ext_table[] = +{ + ARM_REMOVE ("pacbti", ARM_FEATURE_CORE_HIGH_HIGH (ARM_EXT3_PACBTI)), + ARM_REMOVE ("mve.fp", ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE_FP)), + ARM_REMOVE ("mve", ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE | ARM_EXT2_MVE_FP)), + ARM_REMOVE ("fp", ALL_FP_MVE_FP), + ARM_REMOVE ("dsp", ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE | ARM_EXT2_MVE_FP)), + CDE_EXTENSIONS, + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_m55_ext_table[] = +{ + ARM_REMOVE ("mve.fp", ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE_FP)), + ARM_REMOVE ("mve", ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE | ARM_EXT2_MVE_FP)), + ARM_REMOVE ("fp", ALL_FP_MVE_FP), + ARM_REMOVE ("dsp", ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE | ARM_EXT2_MVE_FP)), + CDE_EXTENSIONS, + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_m85_ext_table[] = +{ + ARM_REMOVE ("pacbti", ARM_FEATURE_CORE_HIGH_HIGH (ARM_EXT3_PACBTI)), + ARM_REMOVE ("mve.fp", ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE_FP)), + ARM_REMOVE ("mve", ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE | ARM_EXT2_MVE_FP)), + ARM_REMOVE ("fp", ALL_FP_MVE_FP), + ARM_REMOVE ("dsp", ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE | ARM_EXT2_MVE_FP)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a55_ext_table[] = +{ + ARM_REMOVE ("fp", ALL_FP), + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a75_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a76_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a76ae_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a77_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a78_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a78ae_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a78c_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_x1_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_x1c_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table neoverse_n1_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table neoverse_v1_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table cortex_a710_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } +}; + +static const struct arm_ext_table neoverse_n2_ext_table[] = +{ + ARM_ADD ("crypto", ARM_FEATURE_COPROC (FPU_CRYPTO_EXT_ARMV8 + | FPU_VFP_EXT_ARMV8 | FPU_VFP_EXT_ARMV8xD)), + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } }; /* This list should, at a minimum, contain all the cpu names recognized by GCC. */ -#define ARM_CPU_OPT(N, CN, V, E, DF) { N, sizeof (N) - 1, V, E, DF, CN } +#define ARM_CPU_OPT(N, CN, V, E, DF) { N, sizeof (N) - 1, V, E, DF, CN, NULL } +#define ARM_CPU_OPT2(N, CN, V, E, DF, ext) \ + { N, sizeof (N) - 1, V, E, DF, CN, ext##_ext_table } static const struct arm_cpu_option_table arm_cpus[] = { @@ -30764,113 +31100,171 @@ static const struct arm_cpu_option_table arm_cpus[] = ARM_CPU_OPT ("arm1176jzf-s", NULL, ARM_ARCH_V6KZ, ARM_ARCH_NONE, FPU_ARCH_VFP_V2), - ARM_CPU_OPT ("cortex-a5", "Cortex-A5", ARM_ARCH_V7A, - ARM_FEATURE_CORE_LOW (ARM_EXT_MP | ARM_EXT_SEC), - FPU_ARCH_SOFTVFP), - ARM_CPU_OPT ("cortex-a7", "Cortex-A7", ARM_ARCH_V7VE, - ARM_ARCH_NONE, - FPU_ARCH_NEON_VFP_V4), - ARM_CPU_OPT ("cortex-a8", "Cortex-A8", ARM_ARCH_V7A, - ARM_FEATURE_CORE_LOW (ARM_EXT_SEC), - ARM_FEATURE_COPROC (FPU_VFP_V3 | FPU_NEON_EXT_V1)), - ARM_CPU_OPT ("cortex-a9", "Cortex-A9", ARM_ARCH_V7A, - ARM_FEATURE_CORE_LOW (ARM_EXT_MP | ARM_EXT_SEC), - ARM_FEATURE_COPROC (FPU_VFP_V3 | FPU_NEON_EXT_V1)), - ARM_CPU_OPT ("cortex-a12", "Cortex-A12", ARM_ARCH_V7VE, - ARM_ARCH_NONE, - FPU_ARCH_NEON_VFP_V4), - ARM_CPU_OPT ("cortex-a15", "Cortex-A15", ARM_ARCH_V7VE, - ARM_ARCH_NONE, - FPU_ARCH_NEON_VFP_V4), - ARM_CPU_OPT ("cortex-a17", "Cortex-A17", ARM_ARCH_V7VE, - ARM_ARCH_NONE, - FPU_ARCH_NEON_VFP_V4), - ARM_CPU_OPT ("cortex-a32", "Cortex-A32", ARM_ARCH_V8A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_CRC), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8), - ARM_CPU_OPT ("cortex-a35", "Cortex-A35", ARM_ARCH_V8A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_CRC), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8), - ARM_CPU_OPT ("cortex-a53", "Cortex-A53", ARM_ARCH_V8A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_CRC), - 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_DOTPROD), - ARM_CPU_OPT ("cortex-a57", "Cortex-A57", ARM_ARCH_V8A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_CRC), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8), - ARM_CPU_OPT ("cortex-a72", "Cortex-A72", ARM_ARCH_V8A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_CRC), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8), - ARM_CPU_OPT ("cortex-a73", "Cortex-A73", ARM_ARCH_V8A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_CRC), - 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_DOTPROD), - ARM_CPU_OPT ("cortex-a76", "Cortex-A76", ARM_ARCH_V8_2A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD), - ARM_CPU_OPT ("cortex-a76ae", "Cortex-A76AE", ARM_ARCH_V8_2A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD), - ARM_CPU_OPT ("cortex-a77", "Cortex-A77", ARM_ARCH_V8_2A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD), - ARM_CPU_OPT ("cortex-a78", "Cortex-A78", ARM_ARCH_V8_2A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_SB), - FPU_ARCH_DOTPROD_NEON_VFP_ARMV8), - ARM_CPU_OPT ("cortex-a78ae", "Cortex-A78AE", ARM_ARCH_V8_2A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_SB), - FPU_ARCH_DOTPROD_NEON_VFP_ARMV8), - ARM_CPU_OPT ("cortex-a78c", "Cortex-A78C", ARM_ARCH_V8_2A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_SB), - FPU_ARCH_DOTPROD_NEON_VFP_ARMV8), - ARM_CPU_OPT ("cortex-a710", "Cortex-A710", ARM_ARCH_V9A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST - | ARM_EXT2_BF16 - | ARM_EXT2_I8MM), - FPU_ARCH_DOTPROD_NEON_VFP_ARMV8), - ARM_CPU_OPT ("ares", "Ares", ARM_ARCH_V8_2A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD), + ARM_CPU_OPT2 ("cortex-a5", "Cortex-A5", ARM_ARCH_V7A, + ARM_FEATURE ((ARM_EXT_MP | ARM_EXT_SEC), + ARM_EXT2_FP16_INST, + (FPU_VFP_V4 | FPU_NEON_EXT_V1 + | FPU_NEON_EXT_FMA)), + FPU_ARCH_NEON_VFP_V4, + cortex_a5), + ARM_CPU_OPT2 ("cortex-a7", "Cortex-A7", ARM_ARCH_V7VE, + ARM_FEATURE_COPROC (FPU_VFP_V4 | FPU_NEON_EXT_V1 + | FPU_NEON_EXT_FMA), + FPU_ARCH_NEON_VFP_V4, + cortex_a7), + ARM_CPU_OPT2 ("cortex-a8", "Cortex-A8", ARM_ARCH_V7A, + ARM_FEATURE_LOW (ARM_EXT_SEC, FPU_VFP_V3 | FPU_NEON_EXT_V1), + ARM_FEATURE_COPROC (FPU_VFP_V3 | FPU_NEON_EXT_V1), + cortex_a8), + ARM_CPU_OPT2 ("cortex-a9", "Cortex-A9", ARM_ARCH_V7A, + ARM_FEATURE ((ARM_EXT_MP | ARM_EXT_SEC), + ARM_EXT2_FP16_INST, + (FPU_VFP_V4 | FPU_NEON_EXT_V1 + | FPU_NEON_EXT_FMA)), + FPU_ARCH_NEON_VFP_V4, + cortex_a9), + ARM_CPU_OPT2 ("cortex-a12", "Cortex-A12", ARM_ARCH_V7VE, + ARM_FEATURE_COPROC (FPU_VFP_V4 | FPU_NEON_EXT_V1 + | FPU_NEON_EXT_FMA), + FPU_ARCH_NEON_VFP_V4, + cortex_a12), + ARM_CPU_OPT2 ("cortex-a15", "Cortex-A15", ARM_ARCH_V7VE, + ARM_FEATURE_COPROC (FPU_VFP_V4 | FPU_NEON_EXT_V1 + | FPU_NEON_EXT_FMA), + FPU_ARCH_NEON_VFP_V4, + cortex_a15), + ARM_CPU_OPT2 ("cortex-a17", "Cortex-A17", ARM_ARCH_V7VE, + ARM_FEATURE_COPROC (FPU_VFP_V4 | FPU_NEON_EXT_V1 + | FPU_NEON_EXT_FMA), + FPU_ARCH_NEON_VFP_V4, + cortex_a17), + ARM_CPU_OPT2 ("cortex-a32", "Cortex-A32", ARM_ARCH_V8A, + ARM_FEATURE(0, ARM_EXT2_CRC, FPU_NEON_ARMV8 | FPU_VFP_ARMV8), + FPU_ARCH_NEON_VFP_ARMV8, + cortex_a32), + ARM_CPU_OPT2 ("cortex-a35", "Cortex-A35", ARM_ARCH_V8A, + ARM_FEATURE(0, ARM_EXT2_CRC, FPU_NEON_ARMV8 | FPU_VFP_ARMV8), + FPU_ARCH_NEON_VFP_ARMV8, + cortex_a35), + ARM_CPU_OPT2 ("cortex-a53", "Cortex-A53", ARM_ARCH_V8A, + ARM_FEATURE(0, ARM_EXT2_CRC, FPU_NEON_ARMV8 | FPU_VFP_ARMV8), + FPU_ARCH_NEON_VFP_ARMV8, + cortex_a53), + ARM_CPU_OPT2 ("cortex-a55", "Cortex-A55", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + cortex_a55), + ARM_CPU_OPT2 ("cortex-a57", "Cortex-A57", ARM_ARCH_V8A, + ARM_FEATURE(0, ARM_EXT2_CRC, FPU_NEON_ARMV8 | FPU_VFP_ARMV8), + FPU_ARCH_NEON_VFP_ARMV8, + cortex_a57), + ARM_CPU_OPT2 ("cortex-a72", "Cortex-A72", ARM_ARCH_V8A, + ARM_FEATURE(0, ARM_EXT2_CRC, FPU_NEON_ARMV8 | FPU_VFP_ARMV8), + FPU_ARCH_NEON_VFP_ARMV8, + cortex_a72), + ARM_CPU_OPT2 ("cortex-a73", "Cortex-A73", ARM_ARCH_V8A, + ARM_FEATURE(0, ARM_EXT2_CRC, FPU_NEON_ARMV8 | FPU_VFP_ARMV8), + FPU_ARCH_NEON_VFP_ARMV8, + cortex_a73), + ARM_CPU_OPT2 ("cortex-a75", "Cortex-A75", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + cortex_a75), + ARM_CPU_OPT2 ("cortex-a76", "Cortex-A76", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_VFP_V5_SP_D16, + cortex_a76), + ARM_CPU_OPT2 ("cortex-a76ae", "Cortex-A76AE", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_VFP_V5_SP_D16, + cortex_a76ae), + ARM_CPU_OPT2 ("cortex-a77", "Cortex-A77", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_VFP_V5_SP_D16, + cortex_a77), + ARM_CPU_OPT2 ("cortex-a78", "Cortex-A78", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_VFP_V5_SP_D16, + cortex_a78), + ARM_CPU_OPT2 ("cortex-a78ae", "Cortex-A78AE", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_VFP_V5_SP_D16, + cortex_a78ae), + ARM_CPU_OPT2 ("cortex-a78c", "Cortex-A78C", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_VFP_V5_SP_D16, + cortex_a78c), ARM_CPU_OPT ("cortex-r4", "Cortex-R4", ARM_ARCH_V7R, ARM_ARCH_NONE, FPU_ARCH_SOFTVFP), ARM_CPU_OPT ("cortex-r4f", "Cortex-R4F", ARM_ARCH_V7R, - ARM_ARCH_NONE, - FPU_ARCH_VFP_V3D16), - ARM_CPU_OPT ("cortex-r5", "Cortex-R5", ARM_ARCH_V7R, - ARM_FEATURE_CORE_LOW (ARM_EXT_ADIV), - FPU_ARCH_SOFTVFP), - ARM_CPU_OPT ("cortex-r7", "Cortex-R7", ARM_ARCH_V7R, - ARM_FEATURE_CORE_LOW (ARM_EXT_ADIV), - FPU_ARCH_VFP_V3D16), - ARM_CPU_OPT ("cortex-r8", "Cortex-R8", ARM_ARCH_V7R, - ARM_FEATURE_CORE_LOW (ARM_EXT_ADIV), + FPU_ARCH_VFP_V3D16, FPU_ARCH_VFP_V3D16), - ARM_CPU_OPT ("cortex-r52", "Cortex-R52", ARM_ARCH_V8R, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_CRC), - FPU_ARCH_NEON_VFP_ARMV8), - ARM_CPU_OPT ("cortex-r52plus", "Cortex-R52+", ARM_ARCH_V8R, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_CRC), - FPU_ARCH_NEON_VFP_ARMV8), - ARM_CPU_OPT ("cortex-m35p", "Cortex-M35P", ARM_ARCH_V8M_MAIN, - ARM_FEATURE_CORE_LOW (ARM_EXT_V5ExP | ARM_EXT_V6_DSP), - FPU_ARCH_SOFTVFP), - ARM_CPU_OPT ("cortex-m33", "Cortex-M33", ARM_ARCH_V8M_MAIN, - ARM_FEATURE_CORE_LOW (ARM_EXT_V5ExP | ARM_EXT_V6_DSP), - FPU_ARCH_SOFTVFP), + ARM_CPU_OPT2 ("cortex-r5", "Cortex-R5", ARM_ARCH_V7R, + ARM_FEATURE (ARM_EXT_ADIV, 0, FPU_VFP_V3), + FPU_ARCH_VFP_V3, + cortex_r5), + ARM_CPU_OPT2 ("cortex-r7", "Cortex-R7", ARM_ARCH_V7R, + ARM_FEATURE (ARM_EXT_ADIV, 0, FPU_VFP_V3D16 | FPU_VFP_EXT_FP16), + FPU_ARCH_VFP_V3D16_FP16, + cortex_r7), + ARM_CPU_OPT2 ("cortex-r8", "Cortex-R8", ARM_ARCH_V7R, + ARM_FEATURE (ARM_EXT_ADIV, 0, FPU_VFP_V3D16 | FPU_VFP_EXT_FP16), + FPU_ARCH_VFP_V3D16_FP16, + cortex_r8), + ARM_CPU_OPT2 ("cortex-r52", "Cortex-R52", ARM_ARCH_V8R, + ARM_FEATURE(0, ARM_EXT2_CRC, FPU_NEON_ARMV8 | FPU_VFP_ARMV8), + FPU_ARCH_NEON_VFP_ARMV8, + cortex_r52), + ARM_CPU_OPT2 ("cortex-r52plus", "Cortex-R52+", ARM_ARCH_V8R, + ARM_FEATURE(0, ARM_EXT2_CRC, FPU_NEON_ARMV8 | FPU_VFP_ARMV8), + FPU_ARCH_NEON_VFP_ARMV8, + cortex_r52plus), + ARM_CPU_OPT2 ("cortex-m85", "Cortex-M85", ARM_ARCH_V8_1M_MAIN, + ARM_FEATURE_ALL(ARM_AEXT_V8M_MAIN_DSP, + (ARM_EXT2_FP16_INST | ARM_EXT2_MVE + | ARM_EXT2_MVE_FP), + ARM_EXT3_PACBTI, + (FPU_VFP_V5D16 | FPU_VFP_EXT_FP16 + | FPU_VFP_EXT_FMA)), + FPU_ARCH_SOFTVFP, + cortex_m85), + ARM_CPU_OPT2 ("cortex-m55", "Cortex-M55", ARM_ARCH_V8_1M_MAIN, + ARM_FEATURE_ALL(ARM_AEXT_V8M_MAIN_DSP, + (ARM_EXT2_FP16_INST | ARM_EXT2_MVE + | ARM_EXT2_MVE_FP), + 0, + (FPU_VFP_V5D16 | FPU_VFP_EXT_FP16 + | FPU_VFP_EXT_FMA)), + FPU_ARCH_SOFTVFP, + cortex_m55), + ARM_CPU_OPT2 ("cortex-m52", "Cortex-M52", ARM_ARCH_V8_1M_MAIN, + ARM_FEATURE_ALL (ARM_AEXT_V8M_MAIN_DSP, + (ARM_EXT2_FP16_INST | ARM_EXT2_MVE + | ARM_EXT2_MVE_FP), + ARM_EXT3_PACBTI, + (FPU_VFP_V5D16 | FPU_VFP_EXT_FP16 + | FPU_VFP_EXT_FMA)), + FPU_ARCH_SOFTVFP, + cortex_m52), + ARM_CPU_OPT2 ("cortex-m35p", "Cortex-M35P", ARM_ARCH_V8M_MAIN, + ARM_FEATURE_LOW (ARM_EXT_V5ExP | ARM_EXT_V6_DSP, FPU_VFP_V4D16), + FPU_ARCH_VFP_V3D16, + cortex_m35p), + ARM_CPU_OPT2 ("cortex-m33", "Cortex-M33", ARM_ARCH_V8M_MAIN, + ARM_FEATURE_LOW (ARM_EXT_V5ExP | ARM_EXT_V6_DSP, FPU_VFP_V4D16), + FPU_ARCH_VFP_V3D16, cortex_m33), ARM_CPU_OPT ("cortex-m23", "Cortex-M23", ARM_ARCH_V8M_BASE, ARM_ARCH_NONE, FPU_ARCH_SOFTVFP), - ARM_CPU_OPT ("cortex-m7", "Cortex-M7", ARM_ARCH_V7EM, - ARM_ARCH_NONE, - FPU_ARCH_SOFTVFP), - ARM_CPU_OPT ("cortex-m4", "Cortex-M4", ARM_ARCH_V7EM, - ARM_ARCH_NONE, - FPU_ARCH_SOFTVFP), + ARM_CPU_OPT2 ("cortex-m7", "Cortex-M7", ARM_ARCH_V7EM, + ARM_FEATURE_COPROC (FPU_VFP_V5D16), + FPU_ARCH_VFP_V5D16, + cortex_m7), + ARM_CPU_OPT2 ("cortex-m4", "Cortex-M4", ARM_ARCH_V7EM, + ARM_FEATURE_COPROC (FPU_VFP_V4_SP_D16), + FPU_ARCH_VFP_V4_SP_D16, + cortex_m4), ARM_CPU_OPT ("cortex-m3", "Cortex-M3", ARM_ARCH_V7M, ARM_ARCH_NONE, FPU_ARCH_SOFTVFP), @@ -30883,28 +31277,50 @@ static const struct arm_cpu_option_table arm_cpus[] = ARM_CPU_OPT ("cortex-m0plus", "Cortex-M0+", ARM_ARCH_V6SM, ARM_ARCH_NONE, FPU_ARCH_SOFTVFP), - ARM_CPU_OPT ("cortex-x1", "Cortex-X1", ARM_ARCH_V8_2A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_SB), - FPU_ARCH_DOTPROD_NEON_VFP_ARMV8), - ARM_CPU_OPT ("cortex-x1c", "Cortex-X1C", ARM_ARCH_V8_2A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_SB), - FPU_ARCH_DOTPROD_NEON_VFP_ARMV8), - ARM_CPU_OPT ("exynos-m1", "Samsung Exynos M1", ARM_ARCH_V8A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_CRC), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8), - ARM_CPU_OPT ("neoverse-n1", "Neoverse N1", ARM_ARCH_V8_2A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD), - ARM_CPU_OPT ("neoverse-n2", "Neoverse N2", ARM_ARCH_V8_5A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST - | ARM_EXT2_BF16 - | ARM_EXT2_I8MM), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_4), - ARM_CPU_OPT ("neoverse-v1", "Neoverse V1", ARM_ARCH_V8_4A, - ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST - | ARM_EXT2_BF16 - | ARM_EXT2_I8MM), - FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_4), + ARM_CPU_OPT2 ("cortex-x1", "Cortex-X1", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_VFP_V5_SP_D16, + cortex_x1), + ARM_CPU_OPT2 ("cortex-x1c", "Cortex-X1C", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_VFP_V5_SP_D16, + cortex_x1c), + ARM_CPU_OPT2 ("exynos-m1", "Samsung Exynos M1", ARM_ARCH_V8A, + ARM_FEATURE (0, ARM_EXT2_CRC, FPU_NEON_ARMV8 | FPU_VFP_ARMV8), + FPU_ARCH_NEON_VFP_ARMV8, + exynos_m1), + ARM_CPU_OPT2 ("neoverse-n1", "Neoverse N1", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_VFP_V5_SP_D16, + neoverse_n1), + ARM_CPU_OPT2 ("ares", "Ares", ARM_ARCH_V8_2A, + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + FPU_ARCH_VFP_V5_SP_D16, + neoverse_n1), + ARM_CPU_OPT2 ("neoverse-n2", "Neoverse N2", ARM_ARCH_V9A, + ARM_FEATURE(0, + (ARM_EXT2_FP16_INST | ARM_EXT2_FP16_FML + | ARM_EXT2_BF16 | ARM_EXT2_I8MM), + (FPU_NEON_ARMV8_1 | FPU_VFP_ARMV8 + | FPU_NEON_EXT_DOTPROD | FPU_NEON_EXT_RDMA)), + FPU_ARCH_VFP_V5_SP_D16, + neoverse_n2), + ARM_CPU_OPT2 ("cortex-a710", "Cortex-A710", ARM_ARCH_V9A, + ARM_FEATURE(0, + (ARM_EXT2_FP16_INST | ARM_EXT2_FP16_FML + | ARM_EXT2_BF16 | ARM_EXT2_I8MM), + (FPU_NEON_ARMV8_1 | FPU_VFP_ARMV8 + | FPU_NEON_EXT_DOTPROD | FPU_NEON_EXT_RDMA)), + FPU_ARCH_VFP_V5_SP_D16, + cortex_a710), + ARM_CPU_OPT2 ("neoverse-v1", "Neoverse V1", ARM_ARCH_V8_4A, + ARM_FEATURE(0, + (ARM_EXT2_FP16_INST | ARM_EXT2_FP16_FML + | ARM_EXT2_BF16 | ARM_EXT2_I8MM), + (FPU_NEON_ARMV8_1 | FPU_VFP_ARMV8 + | FPU_NEON_EXT_DOTPROD)), + FPU_ARCH_NEON_VFP_ARMV8_4_FP16FML, + neoverse_v1), /* ??? XSCALE is really an architecture. */ ARM_CPU_OPT ("xscale", NULL, ARM_ARCH_XSCALE, ARM_ARCH_NONE, @@ -30928,31 +31344,24 @@ static const struct arm_cpu_option_table arm_cpus[] = /* Marvell processors. */ ARM_CPU_OPT ("marvell-pj4", NULL, ARM_ARCH_V7A, - ARM_FEATURE_CORE_LOW (ARM_EXT_MP | ARM_EXT_SEC), - FPU_ARCH_VFP_V3D16), + ARM_FEATURE (ARM_EXT_MP | ARM_EXT_SEC, 0, FPU_VFP_V3), + FPU_ARCH_VFP_V3), ARM_CPU_OPT ("marvell-whitney", NULL, ARM_ARCH_V7A, ARM_FEATURE_CORE_LOW (ARM_EXT_MP | ARM_EXT_SEC), FPU_ARCH_NEON_VFP_V4), /* APM X-Gene family. */ ARM_CPU_OPT ("xgene1", "APM X-Gene 1", ARM_ARCH_V8A, - ARM_ARCH_NONE, + ARM_FEATURE (0, 0, FPU_NEON_ARMV8 | FPU_VFP_ARMV8), FPU_ARCH_CRYPTO_NEON_VFP_ARMV8), ARM_CPU_OPT ("xgene2", "APM X-Gene 2", ARM_ARCH_V8A, ARM_FEATURE_CORE_HIGH (ARM_EXT2_CRC), FPU_ARCH_CRYPTO_NEON_VFP_ARMV8), - { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE, ARM_ARCH_NONE, NULL } + { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE, ARM_ARCH_NONE, NULL, NULL } }; #undef ARM_CPU_OPT - -struct arm_ext_table -{ - const char * name; - size_t name_len; - const arm_feature_set merge; - const arm_feature_set clear; -}; +#undef ARM_CPU_OPT2 struct arm_arch_option_table { @@ -30963,16 +31372,6 @@ struct arm_arch_option_table const struct arm_ext_table * ext_table; }; -/* Used to add support for +E and +noE extension. */ -#define ARM_EXT(E, M, C) { E, sizeof (E) - 1, M, C } -/* Used to add support for a +E extension. */ -#define ARM_ADD(E, M) { E, sizeof(E) - 1, M, ARM_ARCH_NONE } -/* Used to add support for a +noE extension. */ -#define ARM_REMOVE(E, C) { E, sizeof(E) -1, ARM_ARCH_NONE, C } - -#define ALL_FP ARM_FEATURE (0, ARM_EXT2_FP16_INST | ARM_EXT2_FP16_FML, \ - ~0 & ~FPU_ENDIAN_PURE) - static const struct arm_ext_table armv5te_ext_table[] = { ARM_EXT ("fp", FPU_ARCH_VFP_V2, ALL_FP), @@ -31169,16 +31568,6 @@ static const struct arm_ext_table armv9a_ext_table[] = #define armv94a_ext_table armv93a_ext_table #define armv95a_ext_table armv94a_ext_table -#define CDE_EXTENSIONS \ - ARM_ADD ("cdecp0", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE0)), \ - ARM_ADD ("cdecp1", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE1)), \ - ARM_ADD ("cdecp2", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE2)), \ - ARM_ADD ("cdecp3", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE3)), \ - ARM_ADD ("cdecp4", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE4)), \ - ARM_ADD ("cdecp5", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE5)), \ - ARM_ADD ("cdecp6", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE6)), \ - ARM_ADD ("cdecp7", ARM_FEATURE_CORE_HIGH (ARM_EXT2_CDE | ARM_EXT2_CDE7)) - static const struct arm_ext_table armv8m_main_ext_table[] = { ARM_EXT ("dsp", ARM_FEATURE_CORE_LOW (ARM_AEXT_V8M_MAIN_DSP), @@ -31755,7 +32144,7 @@ arm_parse_cpu (const char *str) } if (ext != NULL) - return arm_parse_extension (ext, mcpu_cpu_opt, mcpu_ext_opt, NULL); + return arm_parse_extension (ext, mcpu_cpu_opt, mcpu_ext_opt, opt->ext_table); return true; } diff --git a/gas/testsuite/gas/arm/attr-cpu-directive.d b/gas/testsuite/gas/arm/attr-cpu-directive.d index a2ab435fc0a..62a07adb4de 100644 --- a/gas/testsuite/gas/arm/attr-cpu-directive.d +++ b/gas/testsuite/gas/arm/attr-cpu-directive.d @@ -12,4 +12,6 @@ File Attributes Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3 + Tag_Advanced_SIMD_arch: NEONv1 Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/feat-bf16.s b/gas/testsuite/gas/arm/feat-bf16.s new file mode 100644 index 00000000000..46fc48ba567 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-bf16.s @@ -0,0 +1,5 @@ +.syntax unified +.thumb + +@ feat FP16 +vdot.bf16 q0, q1, q2 diff --git a/gas/testsuite/gas/arm/feat-crc.s b/gas/testsuite/gas/arm/feat-crc.s new file mode 100644 index 00000000000..671ac14ebcb --- /dev/null +++ b/gas/testsuite/gas/arm/feat-crc.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat CRC +crc32w r0, r0, r1 diff --git a/gas/testsuite/gas/arm/feat-dotprod.s b/gas/testsuite/gas/arm/feat-dotprod.s new file mode 100644 index 00000000000..775c3ba4c02 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-dotprod.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat DOTPROD +vudot.u8 q0, q1, q2 diff --git a/gas/testsuite/gas/arm/feat-dsp.s b/gas/testsuite/gas/arm/feat-dsp.s new file mode 100644 index 00000000000..2f54c7327d1 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-dsp.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat DSP +smlad r0, r1, r2, r3 diff --git a/gas/testsuite/gas/arm/feat-fp-vfpv3.s b/gas/testsuite/gas/arm/feat-fp-vfpv3.s new file mode 100644 index 00000000000..4435db35690 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-fp-vfpv3.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat FP (VFP-v3) +vmla.f32 s0, s1, s2 diff --git a/gas/testsuite/gas/arm/feat-fp-vfpv5.s b/gas/testsuite/gas/arm/feat-fp-vfpv5.s new file mode 100644 index 00000000000..13a2e7aca9e --- /dev/null +++ b/gas/testsuite/gas/arm/feat-fp-vfpv5.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat FP (VFP-v5) +vfma.f32 s0, s1, s2 diff --git a/gas/testsuite/gas/arm/feat-fp.dp.s b/gas/testsuite/gas/arm/feat-fp.dp.s new file mode 100644 index 00000000000..34b68cd8603 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-fp.dp.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat FP.DP +vadd.f64 d0, d1, d2 diff --git a/gas/testsuite/gas/arm/feat-fp.s b/gas/testsuite/gas/arm/feat-fp.s new file mode 100644 index 00000000000..5cf49af0e9f --- /dev/null +++ b/gas/testsuite/gas/arm/feat-fp.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat FP +vadd.f32 s0, s1, s2 diff --git a/gas/testsuite/gas/arm/feat-fp16.s b/gas/testsuite/gas/arm/feat-fp16.s new file mode 100644 index 00000000000..6780678e8ca --- /dev/null +++ b/gas/testsuite/gas/arm/feat-fp16.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat FP16 +vadd.f16 q0, q1, q2 diff --git a/gas/testsuite/gas/arm/feat-i8mm.s b/gas/testsuite/gas/arm/feat-i8mm.s new file mode 100644 index 00000000000..bb3818726a8 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-i8mm.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat I8MM +vusmmla.s8 q6, q7, q8 diff --git a/gas/testsuite/gas/arm/feat-idiv.s b/gas/testsuite/gas/arm/feat-idiv.s new file mode 100644 index 00000000000..8b289fa817d --- /dev/null +++ b/gas/testsuite/gas/arm/feat-idiv.s @@ -0,0 +1,3 @@ +.syntax unified + +sdiv r0, r1, r2 diff --git a/gas/testsuite/gas/arm/feat-mp.s b/gas/testsuite/gas/arm/feat-mp.s new file mode 100644 index 00000000000..db365d7f282 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-mp.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat MP +ldrex r0, [r1] diff --git a/gas/testsuite/gas/arm/feat-mve.fp.s b/gas/testsuite/gas/arm/feat-mve.fp.s new file mode 100644 index 00000000000..81c23300dc3 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-mve.fp.s @@ -0,0 +1,5 @@ +.syntax unified +.thumb + +@ MVE.FP +vmul.f32 q0, q1, q2 diff --git a/gas/testsuite/gas/arm/feat-neon-fp16.s b/gas/testsuite/gas/arm/feat-neon-fp16.s new file mode 100644 index 00000000000..55ab08553bf --- /dev/null +++ b/gas/testsuite/gas/arm/feat-neon-fp16.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat NEON-FP16 +vadd.f16 q0, q1, q2 diff --git a/gas/testsuite/gas/arm/feat-pacbti.s b/gas/testsuite/gas/arm/feat-pacbti.s new file mode 100644 index 00000000000..2399f0ca230 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-pacbti.s @@ -0,0 +1,4 @@ +.syntax unified + +@ PACBTI +pac r12, lr, sp diff --git a/gas/testsuite/gas/arm/feat-sec.s b/gas/testsuite/gas/arm/feat-sec.s new file mode 100644 index 00000000000..bdb516a30f4 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-sec.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat SEC +smc #0 diff --git a/gas/testsuite/gas/arm/feat-simd.s b/gas/testsuite/gas/arm/feat-simd.s new file mode 100644 index 00000000000..871f5490902 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-simd.s @@ -0,0 +1,5 @@ +.syntax unified +.text + +@ feat SIMD +vadd.i32 q0, q1, q2 diff --git a/gas/testsuite/gas/arm/feat-vfpv3-d16-fp16.s b/gas/testsuite/gas/arm/feat-vfpv3-d16-fp16.s new file mode 100644 index 00000000000..41ccd2d9414 --- /dev/null +++ b/gas/testsuite/gas/arm/feat-vfpv3-d16-fp16.s @@ -0,0 +1,4 @@ +.syntax unified + +@ feat VFP3-D16-FP16 +vcvtt.f16.f32 s0, s1 diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a12-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a12-attrs.d new file mode 100644 index 00000000000..953175f6eba --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a12-attrs.d @@ -0,0 +1,17 @@ +#name: Cortex-A12 Attributes +#as: -mcpu=cortex-a12+nofp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A12" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_MPextension_use: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a12-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-a12-feat-simd.d new file mode 100644 index 00000000000..e8d96c21f04 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a12-feat-simd.d @@ -0,0 +1,19 @@ +#name: Cortex-A12 feat-simd +#as: -mcpu=cortex-a12 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A12" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv4 + Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC + Tag_MPextension_use: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a15-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a15-attrs.d new file mode 100644 index 00000000000..c780f280b0c --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a15-attrs.d @@ -0,0 +1,17 @@ +#name: Cortex-A15 Attributes +#as: -mcpu=cortex-a15+nofp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A15" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_MPextension_use: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a15-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-a15-feat-simd.d new file mode 100644 index 00000000000..796f8d3fb04 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a15-feat-simd.d @@ -0,0 +1,19 @@ +#name: Cortex-A15 feat-simd +#as: -mcpu=cortex-a15 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A15" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv4 + Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC + Tag_MPextension_use: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a17-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a17-attrs.d new file mode 100644 index 00000000000..c8b56ff58c2 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a17-attrs.d @@ -0,0 +1,17 @@ +#name: Cortex-A17 Attributes +#as: -mcpu=cortex-a17+nofp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A17" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_MPextension_use: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a17-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-a17-feat-simd.d new file mode 100644 index 00000000000..37e3444d237 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a17-feat-simd.d @@ -0,0 +1,19 @@ +#name: Cortex-A17 feat-simd +#as: -mcpu=cortex-a17 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A17" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv4 + Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC + Tag_MPextension_use: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a32-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a32-attrs.d new file mode 100644 index 00000000000..6979aff8835 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a32-attrs.d @@ -0,0 +1,16 @@ +#name: Cortex-A32 Attributes +#as: -mcpu=cortex-a32+nofp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A32" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a32-attrs1.d b/gas/testsuite/gas/arm/mcpu-cortex-a32-attrs1.d new file mode 100644 index 00000000000..98dc43bde01 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a32-attrs1.d @@ -0,0 +1,18 @@ +#name: Cortex-A32 Attributes 1 +#as: -mcpu=cortex-a32+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A32" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a32-feat-crc.d b/gas/testsuite/gas/arm/mcpu-cortex-a32-feat-crc.d new file mode 100644 index 00000000000..dfa191bd52c --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a32-feat-crc.d @@ -0,0 +1,18 @@ +#name: Cortex-A32 feat-crc +#as: -mcpu=cortex-a32 +#source: feat-crc.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A32" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a32-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-a32-feat-simd.d new file mode 100644 index 00000000000..20b6a34a8fb --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a32-feat-simd.d @@ -0,0 +1,18 @@ +#name: Cortex-A32 feat-simd +#as: -mcpu=cortex-a32 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A32" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a35-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a35-attrs.d new file mode 100644 index 00000000000..5743016e2e3 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a35-attrs.d @@ -0,0 +1,16 @@ +#name: Cortex-A35 Attributes +#as: -mcpu=cortex-a35+nofp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A35" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a35-attrs1.d b/gas/testsuite/gas/arm/mcpu-cortex-a35-attrs1.d new file mode 100644 index 00000000000..97160cf2f8a --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a35-attrs1.d @@ -0,0 +1,18 @@ +#name: Cortex-A35 Attributes 1 +#as: -mcpu=cortex-a35+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A35" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a35-feat-crc.d b/gas/testsuite/gas/arm/mcpu-cortex-a35-feat-crc.d new file mode 100644 index 00000000000..eb61f3b0f36 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a35-feat-crc.d @@ -0,0 +1,18 @@ +#name: Cortex-A35 feat-crc +#as: -mcpu=cortex-a35 +#source: feat-crc.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A35" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a35-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-a35-feat-simd.d new file mode 100644 index 00000000000..3c92517c90f --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a35-feat-simd.d @@ -0,0 +1,18 @@ +#name: Cortex-A35 feat-simd +#as: -mcpu=cortex-a35 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A35" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a5-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a5-attrs.d new file mode 100644 index 00000000000..d1ab26e87aa --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a5-attrs.d @@ -0,0 +1,16 @@ +#name: Cortex-A5 Attributes +#as: -mcpu=cortex-a5+nofp+nosimd +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A5" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a5-feat-mp.d b/gas/testsuite/gas/arm/mcpu-cortex-a5-feat-mp.d new file mode 100644 index 00000000000..3b34ffb508b --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a5-feat-mp.d @@ -0,0 +1,18 @@ +#name: Cortex-A5 feat-mp +#as: -mcpu=cortex-a5 +#source: feat-mp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A5" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv4 + Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a5-feat-neon-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-a5-feat-neon-fp16.d new file mode 100644 index 00000000000..36571e2aed3 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a5-feat-neon-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-A5 feat-neon-fp16 +#as: -mcpu=cortex-a5 +#source: feat-neon-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A5" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv4 + Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a5-feat-sec.d b/gas/testsuite/gas/arm/mcpu-cortex-a5-feat-sec.d new file mode 100644 index 00000000000..dad84126dec --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a5-feat-sec.d @@ -0,0 +1,18 @@ +#name: Cortex-A5 feat-sec +#as: -mcpu=cortex-a5 +#source: feat-sec.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A5" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv4 + Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a53-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a53-attrs.d new file mode 100644 index 00000000000..754eca0570e --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a53-attrs.d @@ -0,0 +1,16 @@ +#name: Cortex-A53 Attributes +#as: -mcpu=cortex-a53+nofp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A53" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a53-attrs1.d b/gas/testsuite/gas/arm/mcpu-cortex-a53-attrs1.d new file mode 100644 index 00000000000..ad52b9278fb --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a53-attrs1.d @@ -0,0 +1,18 @@ +#name: Cortex-A53 Attributes 1 +#as: -mcpu=cortex-a53+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A53" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a53-feat-crc.d b/gas/testsuite/gas/arm/mcpu-cortex-a53-feat-crc.d new file mode 100644 index 00000000000..70a688c1116 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a53-feat-crc.d @@ -0,0 +1,18 @@ +#name: Cortex-A53 feat-crc +#as: -mcpu=cortex-a53 +#source: feat-crc.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A53" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a53-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-a53-feat-simd.d new file mode 100644 index 00000000000..0c423b767bf --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a53-feat-simd.d @@ -0,0 +1,18 @@ +#name: Cortex-A53 feat-simd +#as: -mcpu=cortex-a53 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A53" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a55-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a55-attrs.d new file mode 100644 index 00000000000..247e146fc23 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a55-attrs.d @@ -0,0 +1,17 @@ +#name: Cortex-A55 Attributes +#as: -mcpu=cortex-a55+nofp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A55" + Tag_CPU_arch: v8 + 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 diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a55-attrs1.d b/gas/testsuite/gas/arm/mcpu-cortex-a55-attrs1.d new file mode 100644 index 00000000000..595a677bc73 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a55-attrs1.d @@ -0,0 +1,18 @@ +#name: Cortex-A55 Attributes 1 +#as: -mcpu=cortex-a55+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A55" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a55-feat-dotprod.d b/gas/testsuite/gas/arm/mcpu-cortex-a55-feat-dotprod.d new file mode 100644 index 00000000000..bd95929778c --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a55-feat-dotprod.d @@ -0,0 +1,18 @@ +#name: Cortex-A55 feat-dotprod +#as: -mcpu=cortex-a55 +#source: feat-dotprod.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A55" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a55-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-a55-feat-fp16.d new file mode 100644 index 00000000000..79ec5bc418f --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a55-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-A55 feat-fp16 +#as: -mcpu=cortex-a55 +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A55" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a57-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a57-attrs.d new file mode 100644 index 00000000000..0d7e1200e7d --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a57-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-A57 Attributes +#as: -mcpu=cortex-a57+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A57" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a57-feat-crc.d b/gas/testsuite/gas/arm/mcpu-cortex-a57-feat-crc.d new file mode 100644 index 00000000000..49be31c5c15 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a57-feat-crc.d @@ -0,0 +1,18 @@ +#name: Cortex-A57 feat-crc +#as: -mcpu=cortex-a57 +#source: feat-crc.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A57" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a57-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-a57-feat-simd.d new file mode 100644 index 00000000000..48fc50eaf60 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a57-feat-simd.d @@ -0,0 +1,18 @@ +#name: Cortex-A57 feat-simd +#as: -mcpu=cortex-a57 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A57" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a7-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a7-attrs.d new file mode 100644 index 00000000000..20f0d4b02c8 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a7-attrs.d @@ -0,0 +1,17 @@ +#name: Cortex-A7 Attributes +#as: -mcpu=cortex-a7+nofp+nosimd +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A7" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_MPextension_use: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a7-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-a7-feat-simd.d new file mode 100644 index 00000000000..b0c59f22900 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a7-feat-simd.d @@ -0,0 +1,19 @@ +#name: Cortex-A7 feat-simd +#as: -mcpu=cortex-a7 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A7" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv4 + Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC + Tag_MPextension_use: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a710-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a710-attrs.d new file mode 100644 index 00000000000..dac147dfb51 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a710-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-A710 Attributes +#as: -mcpu=cortex-a710+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A710" + Tag_CPU_arch: v9 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a710-feat-bf16.d b/gas/testsuite/gas/arm/mcpu-cortex-a710-feat-bf16.d new file mode 100644 index 00000000000..b53d648d5ad --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a710-feat-bf16.d @@ -0,0 +1,18 @@ +#name: Cortex-A710 feat-bf16 +#as: -mcpu=cortex-a710 +#source: feat-bf16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A710" + Tag_CPU_arch: v9 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a710-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-a710-feat-fp16.d new file mode 100644 index 00000000000..b2a2c376c64 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a710-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-A710 feat-fp16 +#as: -mcpu=cortex-a710 +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A710" + Tag_CPU_arch: v9 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a710-feat-i8mm.d b/gas/testsuite/gas/arm/mcpu-cortex-a710-feat-i8mm.d new file mode 100644 index 00000000000..c682f38d31c --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a710-feat-i8mm.d @@ -0,0 +1,18 @@ +#name: Cortex-A710 feat-i8mm +#as: -mcpu=cortex-a710 +#source: feat-i8mm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A710" + Tag_CPU_arch: v9 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a72-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a72-attrs.d new file mode 100644 index 00000000000..6c16d2ae6d6 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a72-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-A72 Attributes +#as: -mcpu=cortex-a72+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A72" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a72-feat-crc.d b/gas/testsuite/gas/arm/mcpu-cortex-a72-feat-crc.d new file mode 100644 index 00000000000..8f3b7002250 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a72-feat-crc.d @@ -0,0 +1,18 @@ +#name: Cortex-A72 feat-crc +#as: -mcpu=cortex-a72 +#source: feat-crc.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A72" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a72-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-a72-feat-simd.d new file mode 100644 index 00000000000..3cad2ec1b5e --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a72-feat-simd.d @@ -0,0 +1,18 @@ +#name: Cortex-A72 feat-simd +#as: -mcpu=cortex-a72 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A72" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a73-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a73-attrs.d new file mode 100644 index 00000000000..07df89b796a --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a73-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-A73 Attributes +#as: -mcpu=cortex-a73+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A73" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a73-feat-crc.d b/gas/testsuite/gas/arm/mcpu-cortex-a73-feat-crc.d new file mode 100644 index 00000000000..ca750aaf6fd --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a73-feat-crc.d @@ -0,0 +1,18 @@ +#name: Cortex-A73 feat-crc +#as: -mcpu=cortex-a73 +#source: feat-crc.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A73" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a73-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-a73-feat-simd.d new file mode 100644 index 00000000000..7475b25de40 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a73-feat-simd.d @@ -0,0 +1,18 @@ +#name: Cortex-A73 feat-simd +#as: -mcpu=cortex-a73 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A73" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a75-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a75-attrs.d new file mode 100644 index 00000000000..cc88ad25c11 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a75-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-A75 Attributes +#as: -mcpu=cortex-a75+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A75" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a75-feat-dotprod.d b/gas/testsuite/gas/arm/mcpu-cortex-a75-feat-dotprod.d new file mode 100644 index 00000000000..83ee9088ad0 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a75-feat-dotprod.d @@ -0,0 +1,18 @@ +#name: Cortex-A75 feat-dotprod +#as: -mcpu=cortex-a75 +#source: feat-dotprod.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A75" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a75-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-a75-feat-fp16.d new file mode 100644 index 00000000000..c996200a244 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a75-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-A75 feat-fp16 +#as: -mcpu=cortex-a75 +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A75" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a76-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a76-attrs.d new file mode 100644 index 00000000000..088939c0559 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a76-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-A76 Attributes +#as: -mcpu=cortex-a76+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A76" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a76-feat-dotprod.d b/gas/testsuite/gas/arm/mcpu-cortex-a76-feat-dotprod.d new file mode 100644 index 00000000000..720ea69608f --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a76-feat-dotprod.d @@ -0,0 +1,18 @@ +#name: Cortex-A76 feat-dotprod +#as: -mcpu=cortex-a76 +#source: feat-dotprod.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A76" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a76-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-a76-feat-fp16.d new file mode 100644 index 00000000000..c9632960f64 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a76-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-A76 feat-fp16 +#as: -mcpu=cortex-a76 +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A76" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a76ae-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a76ae-attrs.d new file mode 100644 index 00000000000..ed050b3e2da --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a76ae-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-A76AE Attributes +#as: -mcpu=cortex-a76ae+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A76AE" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a76ae-feat-dotprod.d b/gas/testsuite/gas/arm/mcpu-cortex-a76ae-feat-dotprod.d new file mode 100644 index 00000000000..449e70ccf5e --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a76ae-feat-dotprod.d @@ -0,0 +1,18 @@ +#name: Cortex-A76AE feat-dotprod +#as: -mcpu=cortex-a76ae +#source: feat-dotprod.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A76AE" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a76ae-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-a76ae-feat-fp16.d new file mode 100644 index 00000000000..43af92dd16a --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a76ae-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-A76AE feat-fp16 +#as: -mcpu=cortex-a76ae +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A76AE" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a77-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a77-attrs.d new file mode 100644 index 00000000000..e014c789449 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a77-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-A77 Attributes +#as: -mcpu=cortex-a77+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A77" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a77-feat-dotprod.d b/gas/testsuite/gas/arm/mcpu-cortex-a77-feat-dotprod.d new file mode 100644 index 00000000000..7cccf0feec1 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a77-feat-dotprod.d @@ -0,0 +1,18 @@ +#name: Cortex-A77 feat-dotprod +#as: -mcpu=cortex-a77 +#source: feat-dotprod.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A77" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a77-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-a77-feat-fp16.d new file mode 100644 index 00000000000..97fe61e0f09 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a77-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-A77 feat-fp16 +#as: -mcpu=cortex-a77 +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A77" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a78-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a78-attrs.d new file mode 100644 index 00000000000..73c5e070aaf --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a78-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-A78 Attributes +#as: -mcpu=cortex-a78+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A78" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a78-feat-dotprod.d b/gas/testsuite/gas/arm/mcpu-cortex-a78-feat-dotprod.d new file mode 100644 index 00000000000..eeb2260163b --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a78-feat-dotprod.d @@ -0,0 +1,18 @@ +#name: Cortex-A78 feat-dotprod +#as: -mcpu=cortex-a78 +#source: feat-dotprod.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A78" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a78-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-a78-feat-fp16.d new file mode 100644 index 00000000000..88936f78c3f --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a78-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-A78 feat-fp16 +#as: -mcpu=cortex-a78 +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A78" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a78ae-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a78ae-attrs.d new file mode 100644 index 00000000000..944c21f2530 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a78ae-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-A78AE Attributes +#as: -mcpu=cortex-a78ae+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A78AE" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a78ae-feat-dotprod.d b/gas/testsuite/gas/arm/mcpu-cortex-a78ae-feat-dotprod.d new file mode 100644 index 00000000000..8d24972514d --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a78ae-feat-dotprod.d @@ -0,0 +1,18 @@ +#name: Cortex-A78AE feat-dotprod +#as: -mcpu=cortex-a78ae +#source: feat-dotprod.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A78AE" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a78ae-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-a78ae-feat-fp16.d new file mode 100644 index 00000000000..07d142b24fe --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a78ae-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-A78AE feat-fp16 +#as: -mcpu=cortex-a78ae +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A78AE" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a78c-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a78c-attrs.d new file mode 100644 index 00000000000..bd0a9d8a455 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a78c-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-A78C Attributes +#as: -mcpu=cortex-a78c+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A78C" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a78c-feat-dotprod.d b/gas/testsuite/gas/arm/mcpu-cortex-a78c-feat-dotprod.d new file mode 100644 index 00000000000..67027068b23 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a78c-feat-dotprod.d @@ -0,0 +1,18 @@ +#name: Cortex-A78C feat-dotprod +#as: -mcpu=cortex-a78c +#source: feat-dotprod.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A78C" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a78c-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-a78c-feat-fp16.d new file mode 100644 index 00000000000..f45fc34dc2a --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a78c-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-A78C feat-fp16 +#as: -mcpu=cortex-a78c +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A78C" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a8-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a8-attrs.d new file mode 100644 index 00000000000..5b1696f3f0a --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a8-attrs.d @@ -0,0 +1,15 @@ +#name: Cortex-A8 Attributes +#as: -mcpu=cortex-a8+nofp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A8" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a8-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-a8-feat-simd.d new file mode 100644 index 00000000000..e8de97b31da --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a8-feat-simd.d @@ -0,0 +1,17 @@ +#name: Cortex-A8 feat-simd +#as: -mcpu=cortex-a8 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A8" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3 + Tag_Advanced_SIMD_arch: NEONv1 + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a9-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-a9-attrs.d new file mode 100644 index 00000000000..4d1ebaa9dab --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a9-attrs.d @@ -0,0 +1,16 @@ +#name: Cortex-A9 Attributes +#as: -mcpu=cortex-a9+nofp+nosimd +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A9" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a9-feat-mp.d b/gas/testsuite/gas/arm/mcpu-cortex-a9-feat-mp.d new file mode 100644 index 00000000000..96ecaaf32b7 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a9-feat-mp.d @@ -0,0 +1,18 @@ +#name: Cortex-A9 feat-mp +#as: -mcpu=cortex-a9 +#source: feat-mp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A9" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv4 + Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a9-feat-neon-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-a9-feat-neon-fp16.d new file mode 100644 index 00000000000..83ecc83db6f --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a9-feat-neon-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-A9 feat-neon-fp16 +#as: -mcpu=cortex-a9 +#source: feat-neon-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A9" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv4 + Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-cortex-a9-feat-sec.d b/gas/testsuite/gas/arm/mcpu-cortex-a9-feat-sec.d new file mode 100644 index 00000000000..73386c2bb82 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-a9-feat-sec.d @@ -0,0 +1,18 @@ +#name: Cortex-A9 feat-sec +#as: -mcpu=cortex-a9 +#source: feat-sec.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-A9" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv4 + Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m33-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-m33-attrs.d new file mode 100644 index 00000000000..d2195500a43 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m33-attrs.d @@ -0,0 +1,13 @@ +#name: Cortex-M33 Attributes +#as: -mcpu=cortex-m33+nofp+nodsp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M33" + Tag_CPU_arch: v8-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m33-feat-dsp.d b/gas/testsuite/gas/arm/mcpu-cortex-m33-feat-dsp.d new file mode 100644 index 00000000000..521846cdcc2 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m33-feat-dsp.d @@ -0,0 +1,15 @@ +#name: Cortex-M33 feat-dsp +#as: -mcpu=cortex-m33 +#source: feat-dsp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M33" + Tag_CPU_arch: v8-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: VFPv4-D16 + Tag_DSP_extension: Allowed diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m33-feat-fp-vfpv5.d b/gas/testsuite/gas/arm/mcpu-cortex-m33-feat-fp-vfpv5.d new file mode 100644 index 00000000000..6624dbac797 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m33-feat-fp-vfpv5.d @@ -0,0 +1,15 @@ +#name: Cortex-M33 feat-fp-vfpv5 +#as: -mcpu=cortex-m33 +#source: feat-fp-vfpv5.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M33" + Tag_CPU_arch: v8-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: VFPv4-D16 + Tag_DSP_extension: Allowed diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m35p-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-m35p-attrs.d new file mode 100644 index 00000000000..e8bb5884eac --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m35p-attrs.d @@ -0,0 +1,13 @@ +#name: Cortex-M35P Attributes +#as: -mcpu=cortex-m35p+nofp+nodsp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M35P" + Tag_CPU_arch: v8-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m35p-feat-dsp.d b/gas/testsuite/gas/arm/mcpu-cortex-m35p-feat-dsp.d new file mode 100644 index 00000000000..12b6b6dfbfa --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m35p-feat-dsp.d @@ -0,0 +1,15 @@ +#name: Cortex-M35P feat-dsp +#as: -mcpu=cortex-m35p +#source: feat-dsp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M35P" + Tag_CPU_arch: v8-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: VFPv4-D16 + Tag_DSP_extension: Allowed diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m35p-feat-fp-vfpv5.d b/gas/testsuite/gas/arm/mcpu-cortex-m35p-feat-fp-vfpv5.d new file mode 100644 index 00000000000..918942ba693 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m35p-feat-fp-vfpv5.d @@ -0,0 +1,15 @@ +#name: Cortex-M35P feat-fp-vfpv5 +#as: -mcpu=cortex-m35p +#source: feat-fp-vfpv5.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M35P" + Tag_CPU_arch: v8-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: VFPv4-D16 + Tag_DSP_extension: Allowed diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m4-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-m4-attrs.d new file mode 100644 index 00000000000..e27944539d7 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m4-attrs.d @@ -0,0 +1,13 @@ +#name: Cortex-M4 Attributes +#as: -mcpu=cortex-m4+nofp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M4" + Tag_CPU_arch: v7E-M + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Thumb-2 diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m4-feat-fp-vfpv3.d b/gas/testsuite/gas/arm/mcpu-cortex-m4-feat-fp-vfpv3.d new file mode 100644 index 00000000000..c66e37244bc --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m4-feat-fp-vfpv3.d @@ -0,0 +1,15 @@ +#name: Cortex-M4 feat-fp-vfpv3 +#as: -mcpu=cortex-m4 +#source: feat-fp-vfpv3.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M4" + Tag_CPU_arch: v7E-M + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv4-D16 + Tag_ABI_HardFP_use: SP only diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m52-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-m52-attrs.d new file mode 100644 index 00000000000..3e32853c951 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m52-attrs.d @@ -0,0 +1,14 @@ +#name: Cortex-M52 Attributes +#as: -mcpu=cortex-m52+nopacbti+nomve.fp+nomve+nofp+nodsp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M52" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_DSP_extension: Allowed diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m52-attrs1.d b/gas/testsuite/gas/arm/mcpu-cortex-m52-attrs1.d new file mode 100644 index 00000000000..d378a5d4e01 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m52-attrs1.d @@ -0,0 +1,16 @@ +#name: Cortex-M52 Attributes 1 +#as: -mcpu=cortex-m52+cdecp0+cdecp1+cdecp2+cdecp3+cdecp4+cdecp5+cdecp6+cdecp7 +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M52" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_DSP_extension: Allowed + Tag_MVE_arch: MVE Integer and FP diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m52-feat-fp-dp.d b/gas/testsuite/gas/arm/mcpu-cortex-m52-feat-fp-dp.d new file mode 100644 index 00000000000..fe47c58bd0d --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m52-feat-fp-dp.d @@ -0,0 +1,16 @@ +#name: Cortex-M52 feat-fp.dp +#as: -mcpu=cortex-m52 +#source: feat-fp.dp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M52" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_DSP_extension: Allowed + Tag_MVE_arch: MVE Integer and FP diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m52-feat-mve-fp.d b/gas/testsuite/gas/arm/mcpu-cortex-m52-feat-mve-fp.d new file mode 100644 index 00000000000..e87ce8184fe --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m52-feat-mve-fp.d @@ -0,0 +1,16 @@ +#name: Cortex-M52 feat-mve.fp +#as: -mcpu=cortex-m52 +#source: feat-mve.fp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M52" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_DSP_extension: Allowed + Tag_MVE_arch: MVE Integer and FP diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m52-feat-pacbti.d b/gas/testsuite/gas/arm/mcpu-cortex-m52-feat-pacbti.d new file mode 100644 index 00000000000..e04aae72a08 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m52-feat-pacbti.d @@ -0,0 +1,16 @@ +#name: Cortex-M52 feat-pacbti +#as: -mcpu=cortex-m52 +#source: feat-pacbti.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M52" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_DSP_extension: Allowed + Tag_MVE_arch: MVE Integer and FP diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m55-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-m55-attrs.d new file mode 100644 index 00000000000..b873ecdb2f5 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m55-attrs.d @@ -0,0 +1,14 @@ +#name: Cortex-M55 Attributes +#as: -mcpu=cortex-m55+nomve.fp+nomve+nofp+nodsp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M55" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_DSP_extension: Allowed diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m55-attrs1.d b/gas/testsuite/gas/arm/mcpu-cortex-m55-attrs1.d new file mode 100644 index 00000000000..a5b181fc067 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m55-attrs1.d @@ -0,0 +1,16 @@ +#name: Cortex-M55 Attributes 1 +#as: -mcpu=cortex-m55+cdecp0+cdecp1+cdecp2+cdecp3+cdecp4+cdecp5+cdecp6+cdecp7 +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M55" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_DSP_extension: Allowed + Tag_MVE_arch: MVE Integer and FP diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m55-feat-fp-dp.d b/gas/testsuite/gas/arm/mcpu-cortex-m55-feat-fp-dp.d new file mode 100644 index 00000000000..29e7bc9f8b6 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m55-feat-fp-dp.d @@ -0,0 +1,16 @@ +#name: Cortex-M55 feat-fp.dp +#as: -mcpu=cortex-m55 +#source: feat-fp.dp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M55" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_DSP_extension: Allowed + Tag_MVE_arch: MVE Integer and FP diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m55-feat-mve-fp.d b/gas/testsuite/gas/arm/mcpu-cortex-m55-feat-mve-fp.d new file mode 100644 index 00000000000..9ec48163df6 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m55-feat-mve-fp.d @@ -0,0 +1,16 @@ +#name: Cortex-M55 feat-mve.fp +#as: -mcpu=cortex-m55 +#source: feat-mve.fp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M55" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_DSP_extension: Allowed + Tag_MVE_arch: MVE Integer and FP diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m7-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-m7-attrs.d new file mode 100644 index 00000000000..ad3faf91c1e --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m7-attrs.d @@ -0,0 +1,13 @@ +#name: Cortex-M7 Attributes +#as: -mcpu=cortex-m7+nofp+nofp.dp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M7" + Tag_CPU_arch: v7E-M + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Thumb-2 diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m7-feat-fp-dp.d b/gas/testsuite/gas/arm/mcpu-cortex-m7-feat-fp-dp.d new file mode 100644 index 00000000000..46045a1a3a5 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m7-feat-fp-dp.d @@ -0,0 +1,14 @@ +#name: Cortex-M7 feat-fp.dp +#as: -mcpu=cortex-m7 +#source: feat-fp.dp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M7" + Tag_CPU_arch: v7E-M + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FPv5/FP-D16 for ARMv8 diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m85-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-m85-attrs.d new file mode 100644 index 00000000000..558cacd4ba8 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m85-attrs.d @@ -0,0 +1,14 @@ +#name: Cortex-M85 Attributes +#as: -mcpu=cortex-m85+nopacbti+nomve.fp+nomve+nofp+nodsp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M85" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_DSP_extension: Allowed diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m85-feat-fp-dp.d b/gas/testsuite/gas/arm/mcpu-cortex-m85-feat-fp-dp.d new file mode 100644 index 00000000000..711bea59a91 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m85-feat-fp-dp.d @@ -0,0 +1,16 @@ +#name: Cortex-M85 feat-fp.dp +#as: -mcpu=cortex-m85 +#source: feat-fp.dp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M85" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_DSP_extension: Allowed + Tag_MVE_arch: MVE Integer and FP diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m85-feat-mve-fp.d b/gas/testsuite/gas/arm/mcpu-cortex-m85-feat-mve-fp.d new file mode 100644 index 00000000000..6533fc66e4e --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m85-feat-mve-fp.d @@ -0,0 +1,16 @@ +#name: Cortex-M85 feat-mve.fp +#as: -mcpu=cortex-m85 +#source: feat-mve.fp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M85" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_DSP_extension: Allowed + Tag_MVE_arch: MVE Integer and FP diff --git a/gas/testsuite/gas/arm/mcpu-cortex-m85-feat-pacbti.d b/gas/testsuite/gas/arm/mcpu-cortex-m85-feat-pacbti.d new file mode 100644 index 00000000000..dc615de9327 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-m85-feat-pacbti.d @@ -0,0 +1,16 @@ +#name: Cortex-M85 feat-pacbti +#as: -mcpu=cortex-m85 +#source: feat-pacbti.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-M85" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_DSP_extension: Allowed + Tag_MVE_arch: MVE Integer and FP diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r4f-feat-fp-vfpv3.d b/gas/testsuite/gas/arm/mcpu-cortex-r4f-feat-fp-vfpv3.d new file mode 100644 index 00000000000..a6361398eb9 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r4f-feat-fp-vfpv3.d @@ -0,0 +1,15 @@ +#name: Cortex R4F feat-fp-vfpv3 +#as: -mcpu=cortex-r4f +#source: feat-fp-vfpv3.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R4F" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3-D16 diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r5-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-r5-attrs.d new file mode 100644 index 00000000000..802ee1cb00a --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r5-attrs.d @@ -0,0 +1,15 @@ +#name: Cortex-R5 Attributes +#as: -mcpu=cortex-r5+nofp+nofp.dp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R5" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_DIV_use: Allowed in v7-A with integer division extension diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r5-feat-fp-vfpv3.d b/gas/testsuite/gas/arm/mcpu-cortex-r5-feat-fp-vfpv3.d new file mode 100644 index 00000000000..4ee716dfe6a --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r5-feat-fp-vfpv3.d @@ -0,0 +1,16 @@ +#name: Cortex-R5 feat-fp-vfpv3 +#as: -mcpu=cortex-r5 +#source: feat-fp-vfpv3.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R5" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3 + Tag_DIV_use: Allowed in v7-A with integer division extension diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r5-feat-idiv.d b/gas/testsuite/gas/arm/mcpu-cortex-r5-feat-idiv.d new file mode 100644 index 00000000000..71b2d2ee073 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r5-feat-idiv.d @@ -0,0 +1,16 @@ +#name: Cortex-R5 feat-idiv +#as: -mcpu=cortex-r5 +#source: feat-idiv.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R5" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3 + Tag_DIV_use: Allowed in v7-A with integer division extension diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r52-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-r52-attrs.d new file mode 100644 index 00000000000..33422be2cce --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r52-attrs.d @@ -0,0 +1,17 @@ +#name: Cortex-R52 Attributes +#as: -mcpu=cortex-r52+nofp.dp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R52" + Tag_CPU_arch: v8-R + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r52-feat-crc.d b/gas/testsuite/gas/arm/mcpu-cortex-r52-feat-crc.d new file mode 100644 index 00000000000..71055cce2a2 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r52-feat-crc.d @@ -0,0 +1,18 @@ +#name: Cortex-R52 feat-crc +#as: -mcpu=cortex-r52 +#source: feat-crc.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R52" + Tag_CPU_arch: v8-R + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r52-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-r52-feat-simd.d new file mode 100644 index 00000000000..148400ef1d9 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r52-feat-simd.d @@ -0,0 +1,18 @@ +#name: Cortex-R52 feat-simd +#as: -mcpu=cortex-r52 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R52" + Tag_CPU_arch: v8-R + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r52plus-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-r52plus-attrs.d new file mode 100644 index 00000000000..e2eb9c35fe7 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r52plus-attrs.d @@ -0,0 +1,17 @@ +#name: Cortex-R52plus Attributes +#as: -mcpu=cortex-r52plus+nofp.dp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R52\+" + Tag_CPU_arch: v8-R + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FPv5/FP-D16 for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r52plus-feat-crc.d b/gas/testsuite/gas/arm/mcpu-cortex-r52plus-feat-crc.d new file mode 100644 index 00000000000..2666aaf1588 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r52plus-feat-crc.d @@ -0,0 +1,18 @@ +#name: Cortex-R52plus feat-crc +#as: -mcpu=cortex-r52plus +#source: feat-crc.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R52\+" + Tag_CPU_arch: v8-R + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r52plus-feat-simd.d b/gas/testsuite/gas/arm/mcpu-cortex-r52plus-feat-simd.d new file mode 100644 index 00000000000..1af6862ca1c --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r52plus-feat-simd.d @@ -0,0 +1,18 @@ +#name: Cortex-R52plus feat-simd +#as: -mcpu=cortex-r52plus +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R52\+" + Tag_CPU_arch: v8-R + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r7-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-r7-attrs.d new file mode 100644 index 00000000000..b8fa7c90c1b --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r7-attrs.d @@ -0,0 +1,15 @@ +#name: Cortex-R7 Attributes +#as: -mcpu=cortex-r7+nofp+nofp.dp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R7" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_DIV_use: Allowed in v7-A with integer division extension diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r7-feat-idiv.d b/gas/testsuite/gas/arm/mcpu-cortex-r7-feat-idiv.d new file mode 100644 index 00000000000..ac04305c3a3 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r7-feat-idiv.d @@ -0,0 +1,17 @@ +#name: Cortex-R7 feat-idiv +#as: -mcpu=cortex-r7 +#source: feat-idiv.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R7" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3-D16 + Tag_FP_HP_extension: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r7-feat-vfpv3-d16-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-r7-feat-vfpv3-d16-fp16.d new file mode 100644 index 00000000000..9361607a70c --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r7-feat-vfpv3-d16-fp16.d @@ -0,0 +1,17 @@ +#name: Cortex-R7 feat-vfpv3-d16-fp16 +#as: -mcpu=cortex-r7 +#source: feat-vfpv3-d16-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R7" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3-D16 + Tag_FP_HP_extension: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r8-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-r8-attrs.d new file mode 100644 index 00000000000..2bd0bf4378d --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r8-attrs.d @@ -0,0 +1,15 @@ +#name: Cortex-R8 Attributes +#as: -mcpu=cortex-r8+nofp+nofp.dp +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R8" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_DIV_use: Allowed in v7-A with integer division extension diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r8-feat-idiv.d b/gas/testsuite/gas/arm/mcpu-cortex-r8-feat-idiv.d new file mode 100644 index 00000000000..df3f2b561ef --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r8-feat-idiv.d @@ -0,0 +1,17 @@ +#name: Cortex-R8 feat-idiv +#as: -mcpu=cortex-r8 +#source: feat-idiv.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R8" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3-D16 + Tag_FP_HP_extension: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension diff --git a/gas/testsuite/gas/arm/mcpu-cortex-r8-feat-vfpv3-d16-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-r8-feat-vfpv3-d16-fp16.d new file mode 100644 index 00000000000..09a254d76ca --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-r8-feat-vfpv3-d16-fp16.d @@ -0,0 +1,17 @@ +#name: Cortex-R8 feat-vfpv3-d16-fp16 +#as: -mcpu=cortex-r8 +#source: feat-vfpv3-d16-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-R8" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Realtime + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3-D16 + Tag_FP_HP_extension: Allowed + Tag_DIV_use: Allowed in v7-A with integer division extension diff --git a/gas/testsuite/gas/arm/mcpu-cortex-x1-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-x1-attrs.d new file mode 100644 index 00000000000..960aed9ac94 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-x1-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-X1 Attributes +#as: -mcpu=cortex-x1+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-X1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-x1-feat-dotprod.d b/gas/testsuite/gas/arm/mcpu-cortex-x1-feat-dotprod.d new file mode 100644 index 00000000000..e49e914757d --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-x1-feat-dotprod.d @@ -0,0 +1,18 @@ +#name: Cortex-X1 feat-dotprod +#as: -mcpu=cortex-x1 +#source: feat-dotprod.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-X1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-x1-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-x1-feat-fp16.d new file mode 100644 index 00000000000..3bdf1c2557b --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-x1-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-X1 feat-fp16 +#as: -mcpu=cortex-x1 +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-X1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-x1c-attrs.d b/gas/testsuite/gas/arm/mcpu-cortex-x1c-attrs.d new file mode 100644 index 00000000000..1e9d8e147eb --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-x1c-attrs.d @@ -0,0 +1,18 @@ +#name: Cortex-X1C Attributes +#as: -mcpu=cortex-x1c+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-X1C" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-x1c-feat-dotprod.d b/gas/testsuite/gas/arm/mcpu-cortex-x1c-feat-dotprod.d new file mode 100644 index 00000000000..186b4068b0a --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-x1c-feat-dotprod.d @@ -0,0 +1,18 @@ +#name: Cortex-X1C feat-dotprod +#as: -mcpu=cortex-x1c +#source: feat-dotprod.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-X1C" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-cortex-x1c-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-cortex-x1c-feat-fp16.d new file mode 100644 index 00000000000..23c70c14a23 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-cortex-x1c-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Cortex-X1C feat-fp16 +#as: -mcpu=cortex-x1c +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Cortex-X1C" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-exynos-m1-attrs.d b/gas/testsuite/gas/arm/mcpu-exynos-m1-attrs.d new file mode 100644 index 00000000000..f898b63bef3 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-exynos-m1-attrs.d @@ -0,0 +1,18 @@ +#name: Exynos-M1 Attributes +#as: -mcpu=exynos-m1+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Samsung Exynos M1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-exynos-m1-feat-crc.d b/gas/testsuite/gas/arm/mcpu-exynos-m1-feat-crc.d new file mode 100644 index 00000000000..ca932b7330a --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-exynos-m1-feat-crc.d @@ -0,0 +1,18 @@ +#name: Exynos-M1 feat-crc +#as: -mcpu=exynos-m1 +#source: feat-crc.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Samsung Exynos M1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-exynos-m1-feat-simd.d b/gas/testsuite/gas/arm/mcpu-exynos-m1-feat-simd.d new file mode 100644 index 00000000000..0e2976aa4f9 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-exynos-m1-feat-simd.d @@ -0,0 +1,18 @@ +#name: Exynos-M1 feat-simd +#as: -mcpu=exynos-m1 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Samsung Exynos M1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-fp-vfpv3.d b/gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-fp-vfpv3.d new file mode 100644 index 00000000000..2f0e17e4338 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-fp-vfpv3.d @@ -0,0 +1,17 @@ +#name: Marvell-PJ4 feat-fp-vfpv3 +#as: -mcpu=marvell-pj4 +#source: feat-fp-vfpv3.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "MARVELL-PJ4" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-mp.d b/gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-mp.d new file mode 100644 index 00000000000..67bbd6c916d --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-mp.d @@ -0,0 +1,17 @@ +#name: Marvell-PJ4 feat-mp +#as: -mcpu=marvell-pj4 +#source: feat-mp.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "MARVELL-PJ4" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-sec.d b/gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-sec.d new file mode 100644 index 00000000000..aa41494cf7d --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-marvell-pj4-feat-sec.d @@ -0,0 +1,17 @@ +#name: Marvell-PJ4 feat-sec +#as: -mcpu=marvell-pj4 +#source: feat-sec.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "MARVELL-PJ4" + Tag_CPU_arch: v7 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: VFPv3 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone diff --git a/gas/testsuite/gas/arm/mcpu-neoverse-n1-attrs.d b/gas/testsuite/gas/arm/mcpu-neoverse-n1-attrs.d new file mode 100644 index 00000000000..c850ee0b139 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-neoverse-n1-attrs.d @@ -0,0 +1,18 @@ +#name: Neoverse-N1 Attributes +#as: -mcpu=neoverse-n1+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Neoverse N1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-neoverse-n1-feat-dotprod.d b/gas/testsuite/gas/arm/mcpu-neoverse-n1-feat-dotprod.d new file mode 100644 index 00000000000..b35d1ee4c44 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-neoverse-n1-feat-dotprod.d @@ -0,0 +1,18 @@ +#name: Neoverse-N1 feat-dotprod +#as: -mcpu=neoverse-n1 +#source: feat-dotprod.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Neoverse N1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-neoverse-n1-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-neoverse-n1-feat-fp16.d new file mode 100644 index 00000000000..36a02e8dc24 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-neoverse-n1-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Neoverse-N1 feat-fp16 +#as: -mcpu=neoverse-n1 +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Neoverse N1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-neoverse-n2-attrs.d b/gas/testsuite/gas/arm/mcpu-neoverse-n2-attrs.d new file mode 100644 index 00000000000..9a4360e35b1 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-neoverse-n2-attrs.d @@ -0,0 +1,18 @@ +#name: Neoverse-N2 Attributes +#as: -mcpu=neoverse-n2+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Neoverse N2" + Tag_CPU_arch: v9 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-bf16.d b/gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-bf16.d new file mode 100644 index 00000000000..955130e1102 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-bf16.d @@ -0,0 +1,18 @@ +#name: Neoverse-N2 feat-bf16 +#as: -mcpu=neoverse-n2 +#source: feat-bf16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Neoverse N2" + Tag_CPU_arch: v9 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-fp16.d new file mode 100644 index 00000000000..72e15f84577 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Neoverse-N2 feat-fp16 +#as: -mcpu=neoverse-n2 +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Neoverse N2" + Tag_CPU_arch: v9 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-i8mm.d b/gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-i8mm.d new file mode 100644 index 00000000000..380e4ce850d --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-neoverse-n2-feat-i8mm.d @@ -0,0 +1,18 @@ +#name: Neoverse-N2 feat-i8mm +#as: -mcpu=neoverse-n2 +#source: feat-i8mm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Neoverse N2" + Tag_CPU_arch: v9 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-neoverse-v1-attrs.d b/gas/testsuite/gas/arm/mcpu-neoverse-v1-attrs.d new file mode 100644 index 00000000000..9478192edfe --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-neoverse-v1-attrs.d @@ -0,0 +1,18 @@ +#name: Neoverse-V1 Attributes +#as: -mcpu=neoverse-v1+crypto +#source: nop-asm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Neoverse V1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-bf16.d b/gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-bf16.d new file mode 100644 index 00000000000..48efeeabba7 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-bf16.d @@ -0,0 +1,18 @@ +#name: Neoverse-V1 feat-bf16 +#as: -mcpu=neoverse-v1 +#source: feat-bf16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Neoverse V1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-fp16.d b/gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-fp16.d new file mode 100644 index 00000000000..59040dc0660 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-fp16.d @@ -0,0 +1,18 @@ +#name: Neoverse-V1 feat-fp16 +#as: -mcpu=neoverse-v1 +#source: feat-fp16.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Neoverse V1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-i8mm.d b/gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-i8mm.d new file mode 100644 index 00000000000..be46641d570 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-neoverse-v1-feat-i8mm.d @@ -0,0 +1,18 @@ +#name: Neoverse-V1 feat-i8mm +#as: -mcpu=neoverse-v1 +#source: feat-i8mm.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "Neoverse V1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8.1 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions diff --git a/gas/testsuite/gas/arm/mcpu-xgene1-feat-simd.d b/gas/testsuite/gas/arm/mcpu-xgene1-feat-simd.d new file mode 100644 index 00000000000..e8ef6a837a2 --- /dev/null +++ b/gas/testsuite/gas/arm/mcpu-xgene1-feat-simd.d @@ -0,0 +1,18 @@ +#name: XGene1 feat-simd +#as: -mcpu=xgene1 +#source: feat-simd.s +#readelf: -A +# This test is only valid on EABI based ports. +# target: *-*-*eabi* + +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "APM X-Gene 1" + Tag_CPU_arch: v8 + Tag_CPU_arch_profile: Application + Tag_ARM_ISA_use: Yes + Tag_THUMB_ISA_use: Thumb-2 + Tag_FP_arch: FP for ARMv8 + Tag_Advanced_SIMD_arch: NEON for ARMv8 + Tag_MPextension_use: Allowed + Tag_Virtualization_use: TrustZone and Virtualization Extensions -- 2.47.3