/src/capstonenext/arch/WASM/WASMInstPrinter.c
Line | Count | Source (jump to first uncovered line) |
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 | 57.7k | { |
9 | 57.7k | SStream_concat(O, WASM_insn_name((csh)MI->csh, MI->Opcode)); |
10 | | |
11 | 57.7k | switch (MI->wasm_data.type) { |
12 | 46.9k | default: |
13 | 46.9k | break; |
14 | | |
15 | 46.9k | case WASM_OP_VARUINT32: |
16 | 1.89k | SStream_concat(O, "\t0x%x", MI->wasm_data.varuint32); |
17 | 1.89k | break; |
18 | | |
19 | 410 | case WASM_OP_VARUINT64: |
20 | 410 | SStream_concat(O, "\t0x%lx", MI->wasm_data.varuint64); |
21 | 410 | break; |
22 | | |
23 | 118 | case WASM_OP_UINT32: |
24 | 118 | SStream_concat(O, "\t0x%2" PRIx32, MI->wasm_data.uint32); |
25 | 118 | break; |
26 | | |
27 | 253 | case WASM_OP_UINT64: |
28 | 253 | SStream_concat(O, "\t0x%2" PRIx64, MI->wasm_data.uint64); |
29 | 253 | break; |
30 | | |
31 | 6.30k | case WASM_OP_IMM: |
32 | 6.30k | SStream_concat(O, "\t0x%x, 0x%x", MI->wasm_data.immediate[0], |
33 | 6.30k | MI->wasm_data.immediate[1]); |
34 | 6.30k | break; |
35 | | |
36 | 882 | case WASM_OP_INT7: |
37 | 882 | SStream_concat(O, "\t%d", MI->wasm_data.int7); |
38 | 882 | break; |
39 | | |
40 | 996 | case WASM_OP_BRTABLE: |
41 | 996 | SStream_concat(O, "\t0x%x, [", MI->wasm_data.brtable.length); |
42 | 996 | SStream_concat(O, "0x%x", MI->wasm_data.brtable.address); |
43 | 996 | SStream_concat(O, "], 0x%x", |
44 | 996 | MI->wasm_data.brtable.default_target); |
45 | | |
46 | 996 | break; |
47 | 57.7k | } |
48 | 57.7k | } |