Allow explicit size specifier for predicate operand of {sq, uq, }{incp, decp}
authorCaiJingtao <caijingtao@huawei.com>
Tue, 11 Oct 2022 01:55:10 +0000 (09:55 +0800)
committerRichard Sandiford <richard.sandiford@arm.com>
Mon, 17 Oct 2022 09:21:39 +0000 (10:21 +0100)
commit2a3ed404494cfd7f3b10b5fad7c8625e3942d933
tree4875032ea40a6218403431d0cad52591b597f117
parent13c0b769e826bc98492714193b5e7b222878bb82
Allow explicit size specifier for predicate operand of {sq, uq, }{incp, decp}

Omitting predicate size specifier in vector form of {sq, uq, }{decp, incp} is deprecated and will be prohibited in a future release of the aarch64,
see https://developer.arm.com/documentation/ddi0602/2021-09/SVE-Instructions/DECP--vector---Decrement-vector-by-count-of-true-predicate-elements-.

This allows explicit size specifier, e.g. `decp z0.h, p0.h`, for predicate operand of these SVE instructions.
The existing behaviour of not requiring the specifier is preserved.
And the disasembly is with the specifier with this patch.

The GAS tests passed under our local tests.

opcodes/
* aarch64-asm.c: Modify `sve_size_hsd` encoding.
* aarch64-tbl.h (aarch64_opcode_table): Add QUALS's type OP_SVE_Vv_HSD
for decp, incp, sqdecp, sqincp, uqdecp and uqincp.

gas/
* testsuite/gas/aarch64/sve-movprfx_23.s: Update movprfx_23 testcase's
test_sametwo macro, where take the predicate size specifier.
* testsuite/gas/aarch64/sve-movprfx_23.d: Update movprfx_23 testcase's
expected disassembly.
* testsuite/gas/aarch64/sve-movprfx_23.l: Update movprfx_23 testcase's
expected assembler messages.
* testsuite/gas/aarch64/sve.s: Add sve testcase's instructions for
decp, incp, sqdecp, sqincp, uqdecp and uqincp, which take the
predicate size specifier.
* testsuite/gas/aarch64/sve.d: Update sve testcase's expected
disassembly.

Signed-off-by: CaiJingtao <caijingtao@huawei.com>
gas/testsuite/gas/aarch64/sve-movprfx_23.d
gas/testsuite/gas/aarch64/sve-movprfx_23.l
gas/testsuite/gas/aarch64/sve-movprfx_23.s
gas/testsuite/gas/aarch64/sve.d
gas/testsuite/gas/aarch64/sve.s
opcodes/aarch64-asm.c
opcodes/aarch64-tbl.h