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