/src/capstonev5/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 | | |
8 | | void WASM_printInst(MCInst *MI, struct SStream *O, void *PrinterInfo) |
9 | 95.6k | { |
10 | 95.6k | SStream_concat(O, WASM_insn_name((csh)MI->csh, MI->Opcode)); |
11 | | |
12 | 95.6k | switch (MI->wasm_data.type) { |
13 | 80.2k | default: |
14 | 80.2k | break; |
15 | | |
16 | 80.2k | case WASM_OP_VARUINT32: |
17 | 4.34k | SStream_concat(O, "\t0x%x", MI->wasm_data.varuint32); |
18 | 4.34k | break; |
19 | | |
20 | 642 | case WASM_OP_VARUINT64: |
21 | 642 | SStream_concat(O, "\t0x%lx", MI->wasm_data.varuint64); |
22 | 642 | break; |
23 | | |
24 | 293 | case WASM_OP_UINT32: |
25 | 293 | SStream_concat(O, "\t0x%2" PRIx32, MI->wasm_data.uint32); |
26 | 293 | break; |
27 | | |
28 | 261 | case WASM_OP_UINT64: |
29 | 261 | SStream_concat(O, "\t0x%2" PRIx64, MI->wasm_data.uint64); |
30 | 261 | break; |
31 | | |
32 | 8.00k | case WASM_OP_IMM: |
33 | 8.00k | SStream_concat(O, "\t0x%x, 0x%x", MI->wasm_data.immediate[0], MI->wasm_data.immediate[1]); |
34 | 8.00k | break; |
35 | | |
36 | 858 | case WASM_OP_INT7: |
37 | 858 | SStream_concat(O, "\t%d", MI->wasm_data.int7); |
38 | 858 | break; |
39 | | |
40 | 928 | case WASM_OP_BRTABLE: |
41 | 928 | SStream_concat(O, "\t0x%x, [", MI->wasm_data.brtable.length); |
42 | 928 | SStream_concat(O, "0x%x", MI->wasm_data.brtable.address); |
43 | 928 | SStream_concat(O, "], 0x%x", MI->wasm_data.brtable.default_target); |
44 | | |
45 | 928 | break; |
46 | 95.6k | } |
47 | 95.6k | } |