fix cs_group_name() after the change on generic group ids
diff --git a/arch/AArch64/AArch64Mapping.c b/arch/AArch64/AArch64Mapping.c
index c08d17c..683d2e8 100644
--- a/arch/AArch64/AArch64Mapping.c
+++ b/arch/AArch64/AArch64Mapping.c
@@ -14802,23 +14802,31 @@
#ifndef CAPSTONE_DIET
static name_map group_name_maps[] = {
+ // generic groups
{ ARM64_GRP_INVALID, NULL },
+ { ARM64_GRP_JUMP, "jump" },
+
+ // architecture-specific groups
{ ARM64_GRP_CRYPTO, "crypto" },
{ ARM64_GRP_FPARMV8, "fparmv8" },
{ ARM64_GRP_NEON, "neon" },
{ ARM64_GRP_CRC, "crc" },
- { ARM64_GRP_JUMP, "jump" },
};
#endif
const char *AArch64_group_name(csh handle, unsigned int id)
{
#ifndef CAPSTONE_DIET
- if (id >= ARM64_GRP_ENDING)
+ // verify group id
+ if (id >= ARM64_GRP_ENDING || (id > ARM64_GRP_JUMP && id < ARM64_GRP_CRYPTO))
return NULL;
- return group_name_maps[id].name;
+ // NOTE: when new generic groups are added, 2 must be changed accordingly
+ if (id >= 128)
+ return group_name_maps[id - 128 + 2].name;
+ else
+ return group_name_maps[id].name;
#else
return NULL;
#endif