]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
AArch64: Fix cfinv disassembly issues
authorTamar Christina <tamar.christina@arm.com>
Mon, 27 Jan 2020 10:40:02 +0000 (10:40 +0000)
committerTamar Christina <tamar.christina@arm.com>
Mon, 27 Jan 2020 11:05:15 +0000 (11:05 +0000)
commit2cd7b00eb1337e427fa6149779157d8638eb57d9
treeb2165ed90856b231d0da732d7017b52e4386fd26
parent968f8eb0144dd28b9b64275bf0135fe75a52813a
AArch64: Fix cfinv disassembly issues

This fixes the preferred disassembly for cfinv.  The Armv8.4-a instruction
overlaps with the possible encoding space for msr.  This because msr allows you
to use unallocated encoding space using the general sA_B_cC_cD_E form.

However when an encoding does become allocated then we need to ensure that it's
used as the preferred disassembly.  The problem with cfinv is that its mask has
all bits sets because it has no arguments.

This causes issues for the Alias resolver in gas as it uses the mask to build
alias graph.  In this case it can't do it since it thinks almost everything
would alias with cfinv.  So instead we can only fix this by moving cfinv before
msr.

gas/ChangeLog:

PR 25403
* testsuite/gas/aarch64/armv8_4-a.d: Add cfinv.
* testsuite/gas/aarch64/armv8_4-a.s: Likewise.

opcodes/ChangeLog:

PR 25403
* aarch64-tbl.h (struct aarch64_opcode): Re-order cfinv.
* aarch64-asm-2.c: Regenerate
* aarch64-dis-2.c: Likewise.
* aarch64-opc-2.c: Likewise.

(cherry picked from commit 7568c93bf95a518797dfb2987b04911164c14a36)
gas/ChangeLog
gas/testsuite/gas/aarch64/armv8_4-a.d
gas/testsuite/gas/aarch64/armv8_4-a.s
opcodes/ChangeLog
opcodes/aarch64-asm-2.c
opcodes/aarch64-dis-2.c
opcodes/aarch64-opc-2.c
opcodes/aarch64-tbl.h