diff options
author | Jens Remus <jremus@linux.ibm.com> | 2024-04-09 17:21:53 +0200 |
---|---|---|
committer | Jens Remus <jremus@linux.ibm.com> | 2024-04-09 17:21:53 +0200 |
commit | 6f3cf71845e68409724aef1cfef3b5a44beecf53 (patch) | |
tree | 3e5a5e54e6d899770b170d92d640ed9bd25c38f6 /libiberty/concat.c | |
parent | 676b98078f9f42cfdaaaec6605f31c5be694dffb (diff) | |
download | gdb-6f3cf71845e68409724aef1cfef3b5a44beecf53.zip gdb-6f3cf71845e68409724aef1cfef3b5a44beecf53.tar.gz gdb-6f3cf71845e68409724aef1cfef3b5a44beecf53.tar.bz2 |
aarch64: Treat operand "SME list of ZA tiles" as immediate (PR 31561)
The AArch64 instruction table (aarch64-tbl.h) defines the operand
"SME list of ZA tiles" (SME_list_of_64bit_tiles) as immediate. During
assembly it is correctly encoded as immediate value (imm.value) in
parse_operands. During disassembly it is first correctly decoded as
immediate value (imm.value) in aarch64_ext_imm called by
aarch64_extract_operand, but then erroneously treated as register
number (reg.regno) in aarch64_print_operand.
This resolves the assembler test case "SME extension (ZERO)" to
erroneously fail on s390. On AArch64 - being little-endian - the struct
aarch64_opnd_info union fields reg.regno and imm.value share their
least-significant bits. On s390 - being big-endian - they do not.
opcodes/
PR binutils/31561
* aarch64-opc.c: Treat operand "SME list of ZA tiles" as
immediate.
Bug: https://sourceware.org/PR31561
Signed-off-by: Jens Remus <jremus@linux.ibm.com>
Acked-by: Nick Clifton <nickc@redhat.com>
Diffstat (limited to 'libiberty/concat.c')
0 files changed, 0 insertions, 0 deletions