4
#include <capstone/capstone.h>
7
void print_insn_detail_wasm(csh handle, cs_insn *ins)
11
// detail can be NULL on "data" instruction if SKIPDATA option is turned ON
12
if (ins->detail == NULL)
15
wasm = &(ins->detail->wasm);
16
if (wasm->op_count > 0) {
19
printf("\tOperand count: %d\n", wasm->op_count);
21
for (i = 0; i < wasm->op_count; i++) {
22
switch (wasm->operands[i].type) {
26
printf("\t\tOperand[%u] type: int7\n", i);
27
printf("\t\tOperand[%u] value: %d\n", i, wasm->operands[i].int7);
30
printf("\t\tOperand[%u] type: uint32\n", i);
31
printf("\t\tOperand[%u] value: 0x%x\n", i, wasm->operands[i].uint32);
34
printf("\t\tOperand[%u] type: uint64\n", i);
35
printf("\t\tOperand[%u] value: 0x%" PRIx64 "\n", i, wasm->operands[i].uint64);
37
case WASM_OP_VARUINT32:
38
printf("\t\tOperand[%u] type: varuint32\n", i);
39
printf("\t\tOperand[%u] value: 0x%x\n", i, wasm->operands[i].varuint32);
41
case WASM_OP_VARUINT64:
42
printf("\t\tOperand[%u] type: varuint64\n", i);
43
printf("\t\tOperand[%u] value: 0x%" PRIx64 "\n", i, wasm->operands[i].varuint64);
47
printf("\t\tOperand[%u] size: %u\n", i, wasm->operands[i].size);