[PATCH 0/2] aarch64: add Branch Record Buffer extension instructions
Richard Earnshaw (lists)
Richard.Earnshaw@arm.com
Wed Jun 12 13:59:55 GMT 2024
On 07/06/2024 14:59, Claudio Bantaloukas wrote:
>
> The FEAT_BRBE extension provides two aliases of sys:
> - brb iall (Invalidates all Branch records in the Branch Record Buffer)
> - brb inj (Injects the Branch Record held in BRBINFINJ_EL1,
> BRBSRCINJ_EL1, and BRBTGTINJ_EL1 into the Branch Record Buffer)
>
> This patch adds:
> - the feature option "brbe" that must be added for the aliases to be available
> - a new operand flag AARCH64_OPND_Rt_IN_SYS_ALIASES that warns in a comment
> when Rt is set to the non default value 0b11111 (it is constrained
> unpredictable whether the instruction is undefined or behaves as if the Rt
> field is set to 0b11111).
> - a new operand flag AARCH64_OPND_BRBOP that encodes and decodes Op2 values
> from bit 5
> - support for the two brb aliases above
>
> See:
> - https://developer.arm.com/documentation/ddi0602/2024-03/Base-Instructions/BRB--Branch-Record-Buffer--an-alias-of-SYS-?lang=en
> - https://developer.arm.com/documentation/ddi0601/2024-03/AArch64-Instructions/BRB-INJ--Branch-Record-Injection-into-the-Branch-Record-Buffer?lang=en
> - https://developer.arm.com/documentation/ddi0601/2024-03/AArch64-Instructions/BRB-IALL--Invalidate-the-Branch-Record-Buffer?lang=en
>
> ---
>
> Hi,
>
> is this ok for master? I don't have commit rights, could someone merge this for me please?
>
> Tested on aarch64-none-elf and aarch64-unknown-linux-gnu
Squashed the two commits and pushed to master.
Thanks,
R.
>
> Thanks,
> Claudio
>
>
> Claudio Bantaloukas (2):
> aarch64: add Branch Record Buffer extension instructions
> aarch64: add Branch Record Buffer extension instructions
>
> gas/config/tc-aarch64.c | 8 +
> gas/doc/c-aarch64.texi | 2 +
> gas/testsuite/gas/aarch64/brbe-brb-bad.d | 2 +
> gas/testsuite/gas/aarch64/brbe-brb-bad.l | 4 +
> gas/testsuite/gas/aarch64/brbe-brb-bad.s | 6 +
> gas/testsuite/gas/aarch64/brbe-brb-inst.d | 14 +
> gas/testsuite/gas/aarch64/brbe-brb-inst.s | 5 +
> gas/testsuite/gas/aarch64/brbe-brb-invalid.d | 3 +
> gas/testsuite/gas/aarch64/brbe-brb-invalid.l | 3 +
> gas/testsuite/gas/aarch64/brbe-brb.d | 12 +
> gas/testsuite/gas/aarch64/brbe-brb.s | 5 +
> include/opcode/aarch64.h | 7 +-
> opcodes/aarch64-asm-2.c | 363 +-
> opcodes/aarch64-dis-2.c | 4523 +++++++++---------
> opcodes/aarch64-opc-2.c | 18 +-
> opcodes/aarch64-opc.c | 24 +
> opcodes/aarch64-opc.h | 1 +
> opcodes/aarch64-tbl.h | 15 +
> 18 files changed, 2566 insertions(+), 2449 deletions(-)
> create mode 100644 gas/testsuite/gas/aarch64/brbe-brb-bad.d
> create mode 100644 gas/testsuite/gas/aarch64/brbe-brb-bad.l
> create mode 100644 gas/testsuite/gas/aarch64/brbe-brb-bad.s
> create mode 100644 gas/testsuite/gas/aarch64/brbe-brb-inst.d
> create mode 100644 gas/testsuite/gas/aarch64/brbe-brb-inst.s
> create mode 100644 gas/testsuite/gas/aarch64/brbe-brb-invalid.d
> create mode 100644 gas/testsuite/gas/aarch64/brbe-brb-invalid.l
> create mode 100644 gas/testsuite/gas/aarch64/brbe-brb.d
> create mode 100644 gas/testsuite/gas/aarch64/brbe-brb.s
>
More information about the Binutils
mailing list