/src/capstonenext/arch/WASM/WASMInstPrinter.c
Line | Count | Source |
1 | | /* Capstone Disassembly Engine */ |
2 | | /* By Spike, xwings 2019 */ |
3 | | |
4 | | #include "WASMInstPrinter.h" |
5 | | #include "WASMMapping.h" |
6 | | |
7 | | void WASM_printInst(MCInst *MI, struct SStream *O, void *PrinterInfo) |
8 | 63.7k | { |
9 | 63.7k | SStream_concat(O, WASM_insn_name((csh)MI->csh, MI->Opcode)); |
10 | | |
11 | 63.7k | switch (MI->wasm_data.type) { |
12 | 49.0k | default: |
13 | 49.0k | break; |
14 | | |
15 | 49.0k | case WASM_OP_VARUINT32: |
16 | 3.87k | SStream_concat(O, "\t0x%x", MI->wasm_data.varuint32); |
17 | 3.87k | break; |
18 | | |
19 | 285 | case WASM_OP_VARUINT64: |
20 | 285 | SStream_concat(O, "\t0x%lx", MI->wasm_data.varuint64); |
21 | 285 | break; |
22 | | |
23 | 627 | case WASM_OP_UINT32: |
24 | 627 | SStream_concat(O, "\t0x%2" PRIx32, MI->wasm_data.uint32); |
25 | 627 | break; |
26 | | |
27 | 271 | case WASM_OP_UINT64: |
28 | 271 | SStream_concat(O, "\t0x%2" PRIx64, MI->wasm_data.uint64); |
29 | 271 | break; |
30 | | |
31 | 7.65k | case WASM_OP_IMM: |
32 | 7.65k | SStream_concat(O, "\t0x%x, 0x%x", MI->wasm_data.immediate[0], |
33 | 7.65k | MI->wasm_data.immediate[1]); |
34 | 7.65k | break; |
35 | | |
36 | 1.04k | case WASM_OP_INT7: |
37 | 1.04k | SStream_concat(O, "\t%d", MI->wasm_data.int7); |
38 | 1.04k | break; |
39 | | |
40 | 882 | case WASM_OP_BRTABLE: |
41 | 882 | SStream_concat(O, "\t0x%x, [", MI->wasm_data.brtable.length); |
42 | 882 | SStream_concat(O, "0x%x", MI->wasm_data.brtable.address); |
43 | 882 | SStream_concat(O, "], 0x%x", |
44 | 882 | MI->wasm_data.brtable.default_target); |
45 | | |
46 | 882 | break; |
47 | 63.7k | } |
48 | 63.7k | } |