/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 | 111k | { |
9 | 111k | SStream_concat(O, WASM_insn_name((csh)MI->csh, MI->Opcode)); |
10 | | |
11 | 111k | switch (MI->wasm_data.type) { |
12 | 86.9k | default: |
13 | 86.9k | break; |
14 | | |
15 | 86.9k | case WASM_OP_VARUINT32: |
16 | 6.32k | SStream_concat(O, "\t0x%x", MI->wasm_data.varuint32); |
17 | 6.32k | break; |
18 | | |
19 | 1.24k | case WASM_OP_VARUINT64: |
20 | 1.24k | SStream_concat(O, "\t0x%lx", MI->wasm_data.varuint64); |
21 | 1.24k | break; |
22 | | |
23 | 416 | case WASM_OP_UINT32: |
24 | 416 | SStream_concat(O, "\t0x%2" PRIx32, MI->wasm_data.uint32); |
25 | 416 | break; |
26 | | |
27 | 494 | case WASM_OP_UINT64: |
28 | 494 | SStream_concat(O, "\t0x%2" PRIx64, MI->wasm_data.uint64); |
29 | 494 | break; |
30 | | |
31 | 12.4k | case WASM_OP_IMM: |
32 | 12.4k | SStream_concat(O, "\t0x%x, 0x%x", MI->wasm_data.immediate[0], |
33 | 12.4k | MI->wasm_data.immediate[1]); |
34 | 12.4k | break; |
35 | | |
36 | 1.77k | case WASM_OP_INT7: |
37 | 1.77k | SStream_concat(O, "\t%d", MI->wasm_data.int7); |
38 | 1.77k | break; |
39 | | |
40 | 1.94k | case WASM_OP_BRTABLE: |
41 | 1.94k | SStream_concat(O, "\t0x%x, [", MI->wasm_data.brtable.length); |
42 | 1.94k | SStream_concat(O, "0x%x", MI->wasm_data.brtable.address); |
43 | 1.94k | SStream_concat(O, "], 0x%x", |
44 | 1.94k | MI->wasm_data.brtable.default_target); |
45 | | |
46 | 1.94k | break; |
47 | 111k | } |
48 | 111k | } |