]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Add remainder of Em16 restrictions for AArch64 gas.
authorTamar Christina <tamar.christina@arm.com>
Thu, 12 Jul 2018 09:28:46 +0000 (10:28 +0100)
committerTamar Christina <tamar.christina@arm.com>
Thu, 12 Jul 2018 09:51:24 +0000 (10:51 +0100)
commit3b5e60a4e09242c30ee909175588a47fcae7f464
tree48a2b6657544dc0ee1fb3f06c2887c860f200fb6
parente87681ac38b76f630b2a6090572bf29fa202ebc8
Add remainder of Em16 restrictions for AArch64 gas.

This adds the missing Em16 constraints the rest of the instructions requiring them
and also adds a testcase to test all the instructions so these are checked from
now on.

The Em16 operand constrains the valid registers to the lower 16 registers when used
with a half precision qualifier.

The list has been cross checked (by hand) through the Arm ARM version Ca.

opcodes/

PR binutils/23192
* aarch64-tbl.h (sqdmlal, sqdmlal2, smlsl, smlsl2, sqdmlsl, sqdmlsl2,
mul, smull, smull2, sqdmull, sqdmull2, sqdmulh, sqrdmulh, mla, umlal,
umlal2, mls, umlsl, umlsl2, umull, umull2, sqdmlal, sqdmlsl, sqdmull,
sqdmulh, sqrdmulh): Use Em16.

gas/

PR binutils/23192
* testsuite/gas/aarch64/illegal-by-element.s: New.
* testsuite/gas/aarch64/illegal-by-element.d: New.
* testsuite/gas/aarch64/illegal-by-element.l: New.

(cherry picked from commit 45a28947f3fe5693560e9a1d6373807a9e82c04a)
Signed-off-by: Tamar Christina <tamar.christina@arm.com>
gas/ChangeLog
gas/testsuite/gas/aarch64/illegal-by-element.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/illegal-by-element.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/illegal-by-element.s [new file with mode: 0644]
opcodes/ChangeLog
opcodes/aarch64-tbl.h