Coverage Report

Created: 2026-10-17 07:17

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/capstonev5/arch/ARM/ARMModule.c
Line
Count
Source
1
/* Capstone Disassembly Engine */
2
/* By Dang Hoang Vu <danghvu@gmail.com> 2013 */
3
4
#ifdef CAPSTONE_HAS_ARM
5
6
#include "../../cs_priv.h"
7
#include "../../MCRegisterInfo.h"
8
#include "ARMDisassembler.h"
9
#include "ARMInstPrinter.h"
10
#include "ARMMapping.h"
11
#include "ARMModule.h"
12
13
cs_err ARM_global_init(cs_struct *ud)
14
11.4k
{
15
11.4k
  MCRegisterInfo *mri;
16
11.4k
  mri = cs_mem_malloc(sizeof(*mri));
17
11.4k
  if (mri == NULL) {
18
0
    return CS_ERR_MEM;
19
0
  }
20
21
11.4k
  ARM_init(mri);
22
11.4k
  ARM_getRegName(ud, 0);  // use default get_regname
23
24
11.4k
  ud->printer = ARM_printInst;
25
11.4k
  ud->printer_info = mri;
26
11.4k
  ud->reg_name = ARM_reg_name;
27
11.4k
  ud->insn_id = ARM_get_insn_id;
28
11.4k
  ud->insn_name = ARM_insn_name;
29
11.4k
  ud->group_name = ARM_group_name;
30
11.4k
  ud->post_printer = ARM_post_printer;
31
11.4k
#ifndef CAPSTONE_DIET
32
11.4k
  ud->reg_access = ARM_reg_access;
33
11.4k
#endif
34
35
11.4k
  if (ud->mode & CS_MODE_THUMB)
36
6.96k
    ud->disasm = Thumb_getInstruction;
37
4.45k
  else
38
4.45k
    ud->disasm = ARM_getInstruction;
39
40
11.4k
  return CS_ERR_OK;
41
11.4k
}
42
43
cs_err ARM_option(cs_struct *handle, cs_opt_type type, size_t value)
44
1.95k
{
45
1.95k
  switch(type) {
46
0
    case CS_OPT_MODE:
47
0
      if (value & CS_MODE_THUMB)
48
0
        handle->disasm = Thumb_getInstruction;
49
0
      else
50
0
        handle->disasm = ARM_getInstruction;
51
52
0
      handle->mode = (cs_mode)value;
53
54
0
      break;
55
1.95k
    case CS_OPT_SYNTAX:
56
1.95k
      ARM_getRegName(handle, (int)value);
57
1.95k
      handle->syntax = (int)value;
58
1.95k
      break;
59
0
    default:
60
0
      break;
61
1.95k
  }
62
63
1.95k
  return CS_ERR_OK;
64
1.95k
}
65
66
#endif