Skip to content
Commit 64daf9ab authored by Jens Remus's avatar Jens Remus
Browse files

aarch64: Treat operand Rt_IN_SYS_ALIASES as register number (PR 31919)

The AArch64 instruction table (aarch64-tbl.h) defines the operand
Rt_IN_SYS_ALIASES as register number. During assembly it is correctly
encoded as register number (reg.regno) in parse_operands. During
disassembly it is first correctly decoded as register number (reg.regno)
in aarch64_ext_regno called by aarch64_extract_operand, but then
erroneously treated as immediate value (imm.value) in
aarch64_print_operand.

This resolves the assembler test case "gas/aarch64/brbe-brb-inst" 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/31919
	* aarch64-opc.c: Treat operand Rt_IN_SYS_ALIASES as register
	number.

Bug: https://sourceware.org/PR31919


Fixes: 72476aca ("aarch64: add Branch Record Buffer extension instructions")
Signed-off-by: default avatarJens Remus <jremus@linux.ibm.com>
parent 98dd5ba2
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment