Added cstool printing cases for new AArch64 operand types SVCR and SME_Index.

This commit is contained in:
Finn Wilkinson 2022-09-30 16:40:45 +01:00
parent a29498b3f4
commit 489a4cd444

View File

@ -74,6 +74,22 @@ void print_insn_detail_arm64(csh handle, cs_insn *ins)
case ARM64_OP_BARRIER:
printf("\t\toperands[%u].type: BARRIER = 0x%x\n", i, op->barrier);
break;
case ARM64_OP_SVCR:
printf("\t\toperands[%u].type: SYS = 0x%x\n", i, op->sys);
if(op->svcr == ARM64_SVCR_SVCRSM)
printf("\t\t\toperands[%u].svcr: BIT = SM\n", i);
if(op->svcr == ARM64_SVCR_SVCRZA)
printf("\t\t\toperands[%u].svcr: BIT = ZA\n", i);
if(op->svcr == ARM64_SVCR_SVCRSMZA)
printf("\t\t\toperands[%u].svcr: BIT = SM & ZA\n", i);
break;
case ARM64_OP_SME_INDEX:
printf("\t\toperands[%u].type: REG = %s\n", i, cs_reg_name(handle, op->sme_index.reg));
if (op->sme_index.base != ARM64_REG_INVALID)
printf("\t\t\toperands[%u].index.base: REG = %s\n", i, cs_reg_name(handle, op->sme_index.base));
if (op->sme_index.disp != 0)
printf("\t\t\toperands[%u].index.disp: 0x%x\n", i, op->sme_index.disp);
break;
}
access = op->access;