[PATCH 1/2] aarch64: Add FEAT_MOPS_GO instructions

Alice Carlotti alice.carlotti@arm.com
Wed Dec 17 17:59:44 GMT 2025


On Tue, Dec 02, 2025 at 12:44:16PM +0000, Yury Khrustalev wrote:
One more comment - I think there should be a dependency from +mops-go ->
+memtag, and the instructions would then only need to depend directly upon
MOPS_GO (although I haven't yet confirmed this with the LLVM team).  In that
case, as well as adjusting the feature dependencies, we could drop '_memtag'
from the names below and remove '+memtag' from the tests.


Also, could you combine these two patches please?  I think it's better to add
the tests for new instruction as part of the patch that introduces those
instructions.

Alice

> diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h
> index 2fc69c27791..e596a2c54ee 100644
> --- a/opcodes/aarch64-tbl.h
> +++ b/opcodes/aarch64-tbl.h
> @@ -2927,6 +2927,8 @@ static const aarch64_feature_set aarch64_feature_mops =
>    AARCH64_FEATURE (MOPS);
>  static const aarch64_feature_set aarch64_feature_mops_memtag =
>    AARCH64_FEATURES (2, MOPS, MEMTAG);
> +static const aarch64_feature_set aarch64_feature_mops_go_memtag =
> +  AARCH64_FEATURES (2, MOPS_GO, MEMTAG);
>  static const aarch64_feature_set aarch64_feature_hbc =
>    AARCH64_FEATURE (HBC);
>  static const aarch64_feature_set aarch64_feature_cssc =
> @@ -3116,6 +3118,7 @@ static const aarch64_feature_set aarch64_feature_sme_mop4_i16i64 =
>  #define WFXT	  &aarch64_feature_wfxt
>  #define MOPS	  &aarch64_feature_mops
>  #define MOPS_MEMTAG &aarch64_feature_mops_memtag
> +#define MOPS_GO_MEMTAG &aarch64_feature_mops_go_memtag
>  #define HBC	  &aarch64_feature_hbc
>  #define CSSC	  &aarch64_feature_cssc
>  #define CHK	  &aarch64_feature_chk
> @@ -3371,6 +3374,9 @@ static const aarch64_feature_set aarch64_feature_sme_mop4_i16i64 =
>  #define MOPS_MEMTAG_INSN(NAME, OPCODE, MASK, CLASS, OPS, QUALS, FLAGS, CONSTRAINTS, VERIFIER) \
>    { NAME, OPCODE, MASK, CLASS, 0, MOPS_MEMTAG, OPS, QUALS, FLAGS, \
>      CONSTRAINTS, 0, VERIFIER }
> +#define MOPS_GO_MEMTAG_INSN(NAME, OPCODE, MASK, CLASS, OPS, QUALS, FLAGS, CONSTRAINTS, VERIFIER) \
> +  { NAME, OPCODE, MASK, CLASS, 0, MOPS_GO_MEMTAG, OPS, QUALS, FLAGS, \
> +    CONSTRAINTS, 0, VERIFIER }
>  #define HBC_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
>    { NAME, OPCODE, MASK, CLASS, 0, HBC, OPS, QUALS, FLAGS, 0, 0, NULL }
>  #define CSSC_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \


More information about the Binutils mailing list