Go to the documentation of this file.
15 cs_regs regs_read, regs_write;
16 uint8_t regs_read_count, regs_write_count;
20 if (ins->detail == NULL)
23 arm64 = &(ins->detail->arm64);
27 for (
i = 0;
i <
arm64->op_count;
i++) {
36 printf(
"\t\toperands[%u].type: IMM = 0x%" PRIx64
"\n",
i,
op->imm);
39 #if defined(_KERNEL_MODE)
41 printf(
"\t\toperands[%u].type: FP = <float_point_unsupported>\n",
i);
43 printf(
"\t\toperands[%u].type: FP = %f\n",
i,
op->fp);
47 printf(
"\t\toperands[%u].type: MEM\n",
i);
52 if (
op->mem.disp != 0)
53 printf(
"\t\t\toperands[%u].mem.disp: 0x%x\n",
i,
op->mem.disp);
57 printf(
"\t\toperands[%u].type: C-IMM = %u\n",
i, (
int)
op->imm);
60 printf(
"\t\toperands[%u].type: REG_MRS = 0x%x\n",
i,
op->reg);
63 printf(
"\t\toperands[%u].type: REG_MSR = 0x%x\n",
i,
op->reg);
66 printf(
"\t\toperands[%u].type: PSTATE = 0x%x\n",
i,
op->pstate);
69 printf(
"\t\toperands[%u].type: SYS = 0x%x\n",
i,
op->sys);
72 printf(
"\t\toperands[%u].type: PREFETCH = 0x%x\n",
i,
op->prefetch);
75 printf(
"\t\toperands[%u].type: BARRIER = 0x%x\n",
i,
op->barrier);
84 printf(
"\t\toperands[%u].access: READ\n",
i);
87 printf(
"\t\toperands[%u].access: WRITE\n",
i);
90 printf(
"\t\toperands[%u].access: READ | WRITE\n",
i);
96 printf(
"\t\t\tShift: type = %u, value = %u\n",
97 op->shift.type,
op->shift.value);
103 printf(
"\t\t\tVector Arrangement Specifier: 0x%x\n",
op->vas);
106 printf(
"\t\t\tVector Element Size Specifier: %u\n",
op->vess);
108 if (
op->vector_index != -1)
109 printf(
"\t\t\tVector Index: %u\n",
op->vector_index);
112 if (
arm64->update_flags)
113 printf(
"\tUpdate-flags: True\n");
115 if (
arm64->writeback)
116 printf(
"\tWrite-back: True\n");
123 regs_read, ®s_read_count,
124 regs_write, ®s_write_count)) {
125 if (regs_read_count) {
126 printf(
"\tRegisters read:");
127 for(
i = 0;
i < regs_read_count;
i++) {
133 if (regs_write_count) {
134 printf(
"\tRegisters modified:");
135 for(
i = 0;
i < regs_write_count;
i++) {
@ ARM64_OP_FP
= CS_OP_FP (Floating-Point operand).
@ ARM64_OP_PREFETCH
Prefetch operand (PRFM).
@ ARM64_OP_REG_MRS
MRS register operand.
_Use_decl_annotations_ int __cdecl printf(const char *_Format,...)
@ ARM64_OP_REG
= CS_OP_REG (Register operand).
@ ARM64_OP_SYS
SYS operand for IC/DC/AT/TLBI instructions.
@ CS_AC_READ
Operand read from memory or register.
CAPSTONE_EXPORT cs_err CAPSTONE_API cs_regs_access(csh ud, const cs_insn *insn, cs_regs regs_read, uint8_t *regs_read_count, cs_regs regs_write, uint8_t *regs_write_count)
@ ARM64_OP_REG_MSR
MSR register operand.
@ ARM64_OP_PSTATE
PState operand.
const CAPSTONE_EXPORT char *CAPSTONE_API cs_reg_name(csh ud, unsigned int reg)
@ ARM64_OP_CIMM
C-Immediate.
@ ARM64_OP_BARRIER
Memory barrier operand (ISB/DMB/DSB instructions).
@ ARM64_OP_IMM
= CS_OP_IMM (Immediate operand).
@ ARM64_OP_MEM
= CS_OP_MEM (Memory operand).
@ CS_AC_WRITE
Operand write to memory or register.
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:08