detail option: provide instruction id even when detail option is OFF
diff --git a/arch/AArch64/mapping.c b/arch/AArch64/mapping.c
index 4772c90..dff0de9 100644
--- a/arch/AArch64/mapping.c
+++ b/arch/AArch64/mapping.c
@@ -3181,29 +3181,31 @@
// { AArch64_SUBSxxx_lsl, ARM64_INS_NEGS, { 0 }, { ARM64_REG_NZCV, 0 }, { 0 } },
};
-void AArch64_get_insn_id(cs_insn *insn, unsigned int id)
+void AArch64_get_insn_id(cs_insn *insn, unsigned int id, int detail)
{
int i = insn_find(insns, ARR_SIZE(insns), id);
if (i != -1) {
insn->id = insns[i].mapid;
- memcpy(insn->regs_read, insns[i].regs_use, sizeof(insns[i].regs_use));
- insn->regs_read_count = count_positive(insns[i].regs_use);
+ if (detail) {
+ memcpy(insn->regs_read, insns[i].regs_use, sizeof(insns[i].regs_use));
+ insn->regs_read_count = count_positive(insns[i].regs_use);
- memcpy(insn->regs_write, insns[i].regs_mod, sizeof(insns[i].regs_mod));
- insn->regs_write_count = count_positive(insns[i].regs_mod);
+ memcpy(insn->regs_write, insns[i].regs_mod, sizeof(insns[i].regs_mod));
+ insn->regs_write_count = count_positive(insns[i].regs_mod);
- memcpy(insn->groups, insns[i].groups, sizeof(insns[i].groups));
- insn->groups_count = count_positive(insns[i].groups);
+ memcpy(insn->groups, insns[i].groups, sizeof(insns[i].groups));
+ insn->groups_count = count_positive(insns[i].groups);
- // call cs_reg_write() with handle = 1 to bypass handle check
- // we only need to find if this insn modifies ARM64_REG_NZCV
- insn->arm64.update_flags = cs_reg_write(1, insn, ARM64_REG_NZCV);
+ // call cs_reg_write() with handle = 1 to bypass handle check
+ // we only need to find if this insn modifies ARM64_REG_NZCV
+ insn->arm64.update_flags = cs_reg_write(1, insn, ARM64_REG_NZCV);
- if (insns[i].branch || insns[i].indirect_branch) {
- // this insn also belongs to JUMP group. add JUMP group
- insn->groups[insn->groups_count] = ARM64_GRP_JUMP;
- insn->groups_count++;
+ if (insns[i].branch || insns[i].indirect_branch) {
+ // this insn also belongs to JUMP group. add JUMP group
+ insn->groups[insn->groups_count] = ARM64_GRP_JUMP;
+ insn->groups_count++;
+ }
}
}
}