]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - gas/config/tc-arm.c
[gas][arm] Enable VLDM, VSTM, VPUSH, VPOP for MVE
authorMihail Ionescu <mihail.ionescu@arm.com>
Tue, 12 Nov 2019 13:57:20 +0000 (13:57 +0000)
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 12 Nov 2019 14:01:10 +0000 (14:01 +0000)
commitef8f595f73a6b42f745bc76a716f45079eae1075
tree718987e71df5f0b8198b8b9dfef3ab9839d5ecdf
parentce760a762093d59a3faab07fff895b484071977c
[gas][arm] Enable VLDM, VSTM, VPUSH, VPOP for MVE

This patch enables a few instructions for Armv8.1-M MVE. Currently VLDM,
VSTM, VSTR, VLDR, VPUSH and VPOP are enabled only when the Armv8-M
Floating-point Extension is enabled.  According to the ARMv8.1-M ARM,
section A.1.4.2[1], they can be enabled by having "Armv8-M Floating-point
Extension and/or Armv8.1-M MVE".

[1]https://developer.arm.com/docs/ddi0553/bh/armv81-m-architecture-reference-manual

2019-11-12  Mihail Ionescu  <mihail.ionescu@arm.com>

* config/tc-arm.c (do_vfp_nsyn_push): Move in order to enable it for
both fpu_vfp_ext_v1xd and mve_ext and add call to the aliased vstm
instruction for mve_ext.
(do_vfp_nsyn_pop): Move in order to enable it for both
fpu_vfp_ext_v1xd and mve_ext and add call to the aliased vldm
instruction for mve_ext.
(do_neon_ldm_stm): Add fpu_vfp_ext_v1 and mve_ext checks.
(insns): Enable vldm, vldmia, vldmdb, vstm, vstmia, vstmdb, vpop,
vpush, and fldd, fstd, flds, fsts for arm_ext_v6t2 instead
of fpu_vfp_ext_v1xd.
* testsuite/gas/arm/v8_1m-mve.s: New.
* testsuite/gas/arm/v8_1m-mve.d: New.
gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/gas/arm/v8_1m-mve.d [new file with mode: 0644]
gas/testsuite/gas/arm/v8_1m-mve.s [new file with mode: 0644]