]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
[Morello] Load and branch instructions
authorSiddhesh Poyarekar <siddesh.poyarekar@arm.com>
Fri, 11 Sep 2020 03:48:07 +0000 (09:18 +0530)
committerLuis Machado <luis.machado@linaro.org>
Tue, 20 Oct 2020 18:03:20 +0000 (15:03 -0300)
commitf260da95d2a87b3e241b5061b8bbb6e114401532
treed0261e4d2430605414aa1a46f3e4a6ca9cf98750
parent7ce74d614e750d978017751827aa3076b60edad5
[Morello] Load and branch instructions

- BR, BLR
- LDPBR, LDPBLR

This branch instructions take an address as their target operand.  The
important distinction between the address register usage between these
instructions and other load and store instructions is that these
instructions do not support 64-bit registers as addresses.

gas/ChangeLog:

2020-10-20  Siddhesh Poyarekar  <siddesh.poyarekar@arm.com>

* config/tc-aarch64.c (aarch64_addr_reg_parse): Add capability
registers.
(parse_address_main): Support capability address operands.
(parse_cap_address): New function.
(parse_operands): Add CAPADDR_SIMPLE and CAPADDR_SIMM7.
* testsuite/gas/aarch64/morello_ldst-c64.d: Add tests.
* testsuite/gas/aarch64/morello_ldst.d: Likewise.
* testsuite/gas/aarch64/morello_ldst.s: Likewise.

include/ChangeLog:

2020-10-20  Siddhesh Poyarekar  <siddesh.poyarekar@arm.com>

* opcode/aarch64.h (aarch64_opnd): Add CAPADDR_SIMPLE and
CAPADDR_SIMM7.
(aarch64_insn_class): Add br_capaddr.

opcodes/ChangeLog:

2020-10-20  Siddhesh Poyarekar  <siddesh.poyarekar@arm.com>

* aarch64-asm.c (aarch64_ins_addr_simple): Fix comment.
(aarch64_ins_addr_simm): Support capability address operands.
* aarch64-dis.c (aarch64_ext_addr_simple): Fix comment.
(aarch64_ext_addr_simm): Support capability address operands.
* aarch64-opc.c (fields): Add capaddr_simm7.
(operand_general_constraint_met_p): Add CAPADDR_SIMM7.
(aarch64_print_operand): Add CAPADDR_SIMM7 and CAPADDR_SIMPLE.
* aarch64-opc.h (aarch64_field_kind): Add FLD_capaddr_simm7.
* aarch64-tbl.h (QL1_A64C_CAPADDR, QL2_A64C_CA_CAPADDR): New
macros.
(aarch64_opcode_table): New instructions.
(AARCH64_OPERANDS): New operands.
* aarch64-asm-2.c: Regenerate.
* aarch64-dis-2.c: Regenerate.
* aarch64-opc-2.c: Regenerate.
16 files changed:
gas/ChangeLog
gas/config/tc-aarch64.c
gas/testsuite/gas/aarch64/morello_ldst-c64.d
gas/testsuite/gas/aarch64/morello_ldst.d
gas/testsuite/gas/aarch64/morello_ldst.s
include/ChangeLog
include/opcode/aarch64.h
opcodes/ChangeLog
opcodes/aarch64-asm-2.c
opcodes/aarch64-asm.c
opcodes/aarch64-dis-2.c
opcodes/aarch64-dis.c
opcodes/aarch64-opc-2.c
opcodes/aarch64-opc.c
opcodes/aarch64-opc.h
opcodes/aarch64-tbl.h