diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2023-03-30 11:09:16 +0100 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2023-03-30 11:09:16 +0100 |
commit | 6efa660124f481a5ba415cedd195764ea6ac09fd (patch) | |
tree | 5ceb8e36ccb0439e3256688ff9cfb98abb06673d /include | |
parent | ce623e7aa486d1330c9a4529c77a302d2fdcb801 (diff) | |
download | binutils-gdb-6efa660124f481a5ba415cedd195764ea6ac09fd.tar.gz |
aarch64: Add the SME2 shift instructions
There are two instruction formats here:
- SQRSHR, SQRSHRU and UQRSHR, which operate on lists of two
or four registers.
- SQRSHRN, SQRSHRUN and UQRSHRN, which operate on lists of
four registers.
These are the first SME2 instructions to have immediate operands.
The patch makes sure that, when parsing SME2 instructions with
immediate operands, the new predicate-as-counter registers are
parsed as registers rather than as #-less immediates.
Diffstat (limited to 'include')
-rw-r--r-- | include/opcode/aarch64.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index b445bf758fc..a4f1623d4ca 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -520,6 +520,8 @@ enum aarch64_opnd AARCH64_OPND_SME_ADDR_RI_U4xVL, /* SME [<Xn|SP>{, #<imm>, MUL VL}]. */ AARCH64_OPND_SME_SM_ZA, /* SME {SM | ZA}. */ AARCH64_OPND_SME_PnT_Wm_imm, /* SME <Pn>.<T>[<Wm>, #<imm>]. */ + AARCH64_OPND_SME_SHRIMM4, /* 4-bit right shift, bits [19:16]. */ + AARCH64_OPND_SME_SHRIMM5, /* size + 5-bit right shift, bits [23:22,20:16]. */ AARCH64_OPND_SME_Zm_INDEX1, /* Zn.T[index], bits [19:16,10]. */ AARCH64_OPND_SME_Zm_INDEX2, /* Zn.T[index], bits [19:16,11:10]. */ AARCH64_OPND_SME_Zm_INDEX3_1, /* Zn.T[index], bits [19:16,10,2:1]. */ @@ -713,6 +715,7 @@ enum aarch64_insn_class sme_mov, sme_ldr, sme_psel, + sme_shift, sme_size_12_bhs, sme_size_12_hs, sme_size_22, |