aarch64: Fix tlbi and tlbip instructions
authorAndrew Carlotti <andrew.carlotti@arm.com>
Mon, 15 Jan 2024 11:20:20 +0000 (11:20 +0000)
committerNick Clifton <nickc@redhat.com>
Mon, 15 Jan 2024 12:42:30 +0000 (12:42 +0000)
commit0796bfa48751603355fa9c3c272ea7d01d737ec2
treeccdd3c4ac9fc0c3b7cff19247dd478abe3a99eac
parent6344535387740d9954c8c2358295e55c0a821fc0
aarch64: Fix tlbi and tlbip instructions

There are some tlbi operations that don't have a corresponding tlbip operation,
but we were incorrectly using the same list for both.  Add the missing tlbi
*nxs operations, and use the F_REG_128 flag to filter tlbi operations that
don't have a tlbip analogue.  For increased clarity, I have also used a macro
to reduce duplication between the 'nxs' and non-'nxs' variants, and added a
test to verify that no invalid combinations are accepted.

Additionally, fix two missing checks for AARCH64_OPND_SYSREG_TLBIP that were
preventing disassembly of tlbip instructions.
gas/config/tc-aarch64.c
gas/testsuite/gas/aarch64/illegal-sysp-tlbip-optional.l
gas/testsuite/gas/aarch64/illegal-sysp-tlbip-optional.s
gas/testsuite/gas/aarch64/sysp-tlbip-optional.d
gas/testsuite/gas/aarch64/sysp-tlbip-optional.s
gas/testsuite/gas/aarch64/tlbip-invalid.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/tlbip-invalid.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/tlbip-invalid.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/tlbip.d
opcodes/aarch64-dis.c
opcodes/aarch64-opc.c