aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSrinath Parvathaneni <srinath.parvathaneni@arm.com>2024-01-15 09:35:55 +0000
committerNick Clifton <nickc@redhat.com>2024-01-15 11:45:41 +0000
commit88601c2d941b004b443dc4bfdf3b93ea1983d136 (patch)
treed2ed31930c0f82a30e5090f3a1b70e3a8f3ca681 /include
parent89e06ec1521898892e27615714f51d30703d5139 (diff)
downloadbinutils-88601c2d941b004b443dc4bfdf3b93ea1983d136.zip
binutils-88601c2d941b004b443dc4bfdf3b93ea1983d136.tar.gz
binutils-88601c2d941b004b443dc4bfdf3b93ea1983d136.tar.bz2
aarch64: Add support for FEAT_SVE2p1.
Hi, This patch add support for FEAT_SVE2p1 (SVE2.1 Extension) feature along with +sve2p1 optional flag to enabe this feature. Also support for following SVE2p1 instructions is added addqv, andqv, smaxqv, sminqv, umaxqv, uminqv and uminqv. 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.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 648e25f..1af49c4 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -226,6 +226,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_B16B16,
/* SME2.1 instructions. */
AARCH64_FEATURE_SME2p1,
+ /* SVE2.1 instructions. */
+ AARCH64_FEATURE_SVE2p1,
AARCH64_NUM_FEATURES
};
@@ -1000,6 +1002,7 @@ enum aarch64_insn_class
cssc,
gcs,
the,
+ sve2_urqvs
};
/* Opcode enumerators. */
@@ -1272,7 +1275,9 @@ extern const aarch64_opcode aarch64_opcode_table[];
allow. This impacts the constraintts on assembly but yelds no
impact on disassembly. */
#define F_OPD_NARROW (1ULL << 33)
-/* Next bit is 34. */
+/* For the instruction with size[22:23] field. */
+#define F_OPD_SIZE (1ULL << 34)
+/* Next bit is 35. */
/* Instruction constraints. */
/* This instruction has a predication constraint on the instruction at PC+4. */
@@ -1339,7 +1344,8 @@ static inline bool
opcode_has_special_coder (const aarch64_opcode *opcode)
{
return (opcode->flags & (F_SF | F_LSE_SZ | F_SIZEQ | F_FPTYPE | F_SSIZE | F_T
- | F_GPRSIZE_IN_Q | F_LDS_SIZE | F_MISC | F_N | F_COND)) != 0;
+ | F_GPRSIZE_IN_Q | F_LDS_SIZE | F_MISC | F_N | F_COND
+ | F_OPD_SIZE)) != 0;
}
struct aarch64_name_value_pair