]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gas: aarch64: Add flag for GICv5
authorSaurabh Jha <saurabh.jha@arm.com>
Fri, 18 Jul 2025 14:32:23 +0000 (14:32 +0000)
committersaurabhjha <saurabhjha@sourceware.org>
Mon, 6 Oct 2025 17:56:26 +0000 (17:56 +0000)
Generic Interrupt Controller v5, GICv5, adds new system registers
and system instructions. These are enabled with the +gcie flag, where
gcie stands for GICv5 (Generic Interrupt Controller) CPU Interrupt
Extension.

gas/config/tc-aarch64.c
gas/doc/c-aarch64.texi
include/opcode/aarch64.h
opcodes/aarch64-tbl.h

index 08f995dbb45ff88a366493746d14b20d8c09cbf7..3687271ff7a8a5ee717ff3796258dcdfcf770264 100644 (file)
@@ -10858,6 +10858,7 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
   {"pops",             AARCH64_FEATURE (PoPS), AARCH64_NO_FEATURES},
   {"sve2p2",           AARCH64_FEATURE (SVE2p2), AARCH64_FEATURE (SVE2p1)},
   {"sme2p2",           AARCH64_FEATURE (SME2p2), AARCH64_FEATURE (SME2p1)},
+  {"gcie",             AARCH64_FEATURE (GCIE), AARCH64_NO_FEATURES},
   {NULL,               AARCH64_NO_FEATURES, AARCH64_NO_FEATURES},
 };
 
index 8f5702f5b13528d4b17d05566096ae9fd31df278..1cbd97795fa3d9d3d2fc99273cbaa047c7755882 100644 (file)
@@ -223,6 +223,8 @@ automatically cause those extensions to be disabled.
  @tab Enable Armv9.6 fprcvt instructions.
 @item @code{frintts} @tab @code{fp}
  @tab Enable floating-point round to integral value instructions.
+@item @code{gcie} @tab
+ @tab Enable the GICv5 (Generic Interrupt Controller) CPU Interface Extension.
 @item @code{gcs} @tab
  @tab Enable the Guarded Control Stack Extension.
 @item @code{hbc} @tab
index bc5ac363fd85d46b6226c71bbabc8d962c7d3ac8..8a771a13012f525ab68adaa984998387a9cacd44 100644 (file)
@@ -251,6 +251,8 @@ enum aarch64_feature_bit {
   AARCH64_FEATURE_FPRCVT,
   /* Point of Physical Storage.  */
   AARCH64_FEATURE_PoPS,
+  /* GICv5 (Generic Interrupt Controller) CPU Interface Extension.  */
+  AARCH64_FEATURE_GCIE,
 
   /* Virtual features.  These are used to gate instructions that are enabled
      by either of two (or more) sets of command line flags.  */
index 0ae7342e2e1e26e58a32f4da1beda11bbaca3e83..34b551eb64cf8f2fb145f10f040e0498f886272e 100644 (file)
@@ -3009,6 +3009,8 @@ static const aarch64_feature_set aarch64_feature_sve_sme2p2 =
   AARCH64_FEATURE (SVE_SME2p2);
 static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 =
   AARCH64_FEATURE (SVE2p2_SME2p2);
+static const aarch64_feature_set aarch64_feature_gcie =
+  AARCH64_FEATURE (GCIE);
 
 #define CORE           &aarch64_feature_v8
 #define FP             &aarch64_feature_fp
@@ -3119,6 +3121,7 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 =
 #define SME2p2         &aarch64_feature_sme2p2
 #define SVE_SME2p2     &aarch64_feature_sve_sme2p2
 #define SVE2p2_SME2p2  &aarch64_feature_sve2p2_sme2p2
+#define GCIE           &aarch64_feature_gcie
 
 #define CORE_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
   { NAME, OPCODE, MASK, CLASS, OP, CORE, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL }