add new API cs_group_name() to return group name in string, given the group id
diff --git a/arch/AArch64/AArch64Mapping.c b/arch/AArch64/AArch64Mapping.c
index 411f775..765af53 100644
--- a/arch/AArch64/AArch64Mapping.c
+++ b/arch/AArch64/AArch64Mapping.c
@@ -17034,6 +17034,29 @@
#endif
}
+#ifndef CAPSTONE_DIET
+static name_map group_name_maps[] = {
+ { ARM64_GRP_INVALID, NULL },
+ { ARM64_GRP_CRYPTO, "crypto" },
+ { ARM64_GRP_FPARMV8, "fparmv8" },
+ { ARM64_GRP_NEON, "neon" },
+
+ { ARM64_GRP_JUMP, "jump" },
+};
+#endif
+
+const char *AArch64_group_name(csh handle, unsigned int id)
+{
+#ifndef CAPSTONE_DIET
+ if (id >= ARM64_GRP_MAX)
+ return NULL;
+
+ return group_name_maps[id].name;
+#else
+ return NULL;
+#endif
+}
+
// map instruction name to public instruction ID
arm64_reg AArch64_map_insn(const char *name)
{
diff --git a/arch/AArch64/AArch64Mapping.h b/arch/AArch64/AArch64Mapping.h
index 2bbdd35..1aaf31f 100644
--- a/arch/AArch64/AArch64Mapping.h
+++ b/arch/AArch64/AArch64Mapping.h
@@ -14,6 +14,8 @@
const char *AArch64_insn_name(csh handle, unsigned int id);
+const char *AArch64_group_name(csh handle, unsigned int id);
+
// map instruction name to public instruction ID
arm64_reg AArch64_map_insn(const char *name);
diff --git a/arch/AArch64/AArch64Module.c b/arch/AArch64/AArch64Module.c
index 22d0fd8..f7fa97f 100644
--- a/arch/AArch64/AArch64Module.c
+++ b/arch/AArch64/AArch64Module.c
@@ -27,6 +27,7 @@
ud->reg_name = AArch64_reg_name;
ud->insn_id = AArch64_get_insn_id;
ud->insn_name = AArch64_insn_name;
+ ud->group_name = AArch64_group_name;
ud->post_printer = AArch64_post_printer;
return CS_ERR_OK;