4 #ifdef CAPSTONE_HAS_ARM 
    9 #include "../../cs_priv.h" 
   13 #define GET_INSTRINFO_ENUM 
   14 #include "ARMGenInstrInfo.inc" 
   17 static const name_map reg_name_maps[] = {
 
  130 static const name_map reg_name_maps2[] = {
 
  247 #ifndef CAPSTONE_DIET 
  251         return reg_name_maps[reg].
name;
 
  259 #ifndef CAPSTONE_DIET 
  260         if (reg >= 
ARR_SIZE(reg_name_maps2))
 
  263         return reg_name_maps2[reg].
name;
 
  273 #ifndef CAPSTONE_DIET 
  274                 { 0 }, { 0 }, { 0 }, 0, 0
 
  278 #include "ARMMappingInsn.inc" 
  286                 insn->id = insns[
i].
mapid;
 
  289 #ifndef CAPSTONE_DIET 
  293                         memcpy(insn->detail->regs_read, insns[
i].regs_use, 
sizeof(insns[
i].regs_use));
 
  296                         memcpy(insn->detail->regs_write, insns[
i].regs_mod, 
sizeof(insns[
i].regs_mod));
 
  299                         memcpy(insn->detail->groups, insns[
i].groups, 
sizeof(insns[
i].groups));
 
  304                         if (insns[
i].
branch || insns[
i].indirect_branch) {
 
  306                                 insn->detail->groups[insn->detail->groups_count] = 
ARM_GRP_JUMP;
 
  307                                 insn->detail->groups_count++;
 
  314 #ifndef CAPSTONE_DIET 
  315 static const name_map insn_name_maps[] = {
 
  757 #ifndef CAPSTONE_DIET 
  761         return insn_name_maps[
id].
name;
 
  767 #ifndef CAPSTONE_DIET 
  815 #ifndef CAPSTONE_DIET 
  824 static const unsigned int insn_rel[] = {
 
  841 static const unsigned int insn_blx_rel_to_arm[] = {
 
  851         for (
i = 0; insn_rel[
i]; 
i++) {
 
  852                 if (
id == insn_rel[
i]) {
 
  864         for (
i = 0; insn_blx_rel_to_arm[
i]; 
i++)
 
  865                 if (
id == insn_blx_rel_to_arm[
i])
 
  873 #ifndef CAPSTONE_DIET 
  875 typedef struct insn_op {
 
  879 static insn_op insn_ops[] = {
 
  885 #include "ARMMappingInsnOp.inc" 
  893                 return insn_ops[
i].access;
 
  900                 cs_regs regs_read, 
uint8_t *regs_read_count,
 
  901                 cs_regs regs_write, 
uint8_t *regs_write_count)
 
  904         uint8_t read_count, write_count;
 
  907         read_count = insn->detail->regs_read_count;
 
  908         write_count = insn->detail->regs_write_count;
 
  911         memcpy(regs_read, insn->detail->regs_read, read_count * 
sizeof(insn->detail->regs_read[0]));
 
  912         memcpy(regs_write, insn->detail->regs_write, write_count * 
sizeof(insn->detail->regs_write[0]));
 
  915         for (
i = 0; 
i < 
arm->op_count; 
i++) {
 
  917                 switch((
int)
op->type) {
 
  931                                         regs_read[read_count] = (
uint16_t)
op->mem.base;
 
  935                                         regs_read[read_count] = (
uint16_t)
op->mem.index;
 
  939                                         regs_write[write_count] = (
uint16_t)
op->mem.base;
 
  947         *regs_read_count = read_count;
 
  948         *regs_write_count = write_count;