aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSrinath Parvathaneni <srinath.parvathaneni@arm.com>2024-01-15 09:34:41 +0000
committerNick Clifton <nickc@redhat.com>2024-01-15 11:45:41 +0000
commit89e06ec1521898892e27615714f51d30703d5139 (patch)
tree2f51b8db85375d158020794c4a4fcbb63033fcd9 /include
parent7e8d2d875701971c77224079056a0c8272d63109 (diff)
downloadbinutils-89e06ec1521898892e27615714f51d30703d5139.zip
binutils-89e06ec1521898892e27615714f51d30703d5139.tar.gz
binutils-89e06ec1521898892e27615714f51d30703d5139.tar.bz2
aarch64: Add support for FEAT_SME2p1 instructions.
Hi, This patch add support for FEAT_SME2p1 and "movaz" instructions along with the optional flag +sme2p1. Following "movaz" instructions are add: Move and zero two ZA tile slices to vector registers. Move and zero four ZA tile slices to vector registers. Regression testing for aarch64-none-elf target and found no regressions. Ok for binutils-master? Regards, Srinath.
Diffstat (limited to 'include')
-rw-r--r--include/opcode/aarch64.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index e2ca923..648e25f 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -224,6 +224,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_SEBEP,
/* SVE2.1 and SME2.1 non-widening BFloat16 instructions. */
AARCH64_FEATURE_B16B16,
+ /* SME2.1 instructions. */
+ AARCH64_FEATURE_SME2p1,
AARCH64_NUM_FEATURES
};
@@ -705,6 +707,14 @@ enum aarch64_opnd
AARCH64_OPND_SVE_Vd, /* Scalar SIMD&FP register in Vd. */
AARCH64_OPND_SVE_Vm, /* Scalar SIMD&FP register in Vm. */
AARCH64_OPND_SVE_Vn, /* Scalar SIMD&FP register in Vn. */
+ AARCH64_OPND_SME_ZA_array_vrsb_1, /* Tile to vector, two registers (B). */
+ AARCH64_OPND_SME_ZA_array_vrsh_1, /* Tile to vector, two registers (H). */
+ AARCH64_OPND_SME_ZA_array_vrss_1, /* Tile to vector, two registers (S). */
+ AARCH64_OPND_SME_ZA_array_vrsd_1, /* Tile to vector, two registers (D). */
+ AARCH64_OPND_SME_ZA_array_vrsb_2, /* Tile to vector, four registers (B). */
+ AARCH64_OPND_SME_ZA_array_vrsh_2, /* Tile to vector, four registers (H). */
+ AARCH64_OPND_SME_ZA_array_vrss_2, /* Tile to vector, four registers (S). */
+ AARCH64_OPND_SME_ZA_array_vrsd_2, /* Tile to vector, four registers (D). */
AARCH64_OPND_SVE_Za_5, /* SVE vector register in Za, bits [9,5]. */
AARCH64_OPND_SVE_Za_16, /* SVE vector register in Za, bits [20,16]. */
AARCH64_OPND_SVE_Zd, /* SVE vector register in Zd. */
@@ -962,6 +972,7 @@ enum aarch64_insn_class
sme_start,
sme_stop,
sme2_mov,
+ sme2_movaz,
sve_cpy,
sve_index,
sve_limm,