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