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