xref: /aosp_15_r20/external/capstone/arch/ARM/ARMMapping.h (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf Ebrahimi /* Capstone Disassembly Engine */
2*9a0e4156SSadaf Ebrahimi /* By Nguyen Anh Quynh <[email protected]>, 2013-2015 */
3*9a0e4156SSadaf Ebrahimi 
4*9a0e4156SSadaf Ebrahimi #ifndef CS_ARM_MAP_H
5*9a0e4156SSadaf Ebrahimi #define CS_ARM_MAP_H
6*9a0e4156SSadaf Ebrahimi 
7*9a0e4156SSadaf Ebrahimi #include "../../include/capstone/capstone.h"
8*9a0e4156SSadaf Ebrahimi #include "../../utils.h"
9*9a0e4156SSadaf Ebrahimi 
10*9a0e4156SSadaf Ebrahimi // return name of regiser in friendly string
11*9a0e4156SSadaf Ebrahimi const char *ARM_reg_name(csh handle, unsigned int reg);
12*9a0e4156SSadaf Ebrahimi const char *ARM_reg_name2(csh handle, unsigned int reg);
13*9a0e4156SSadaf Ebrahimi 
14*9a0e4156SSadaf Ebrahimi // given internal insn id, return public instruction ID
15*9a0e4156SSadaf Ebrahimi void ARM_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id);
16*9a0e4156SSadaf Ebrahimi 
17*9a0e4156SSadaf Ebrahimi const char *ARM_insn_name(csh handle, unsigned int id);
18*9a0e4156SSadaf Ebrahimi 
19*9a0e4156SSadaf Ebrahimi const char *ARM_group_name(csh handle, unsigned int id);
20*9a0e4156SSadaf Ebrahimi 
21*9a0e4156SSadaf Ebrahimi // check if this insn is relative branch
22*9a0e4156SSadaf Ebrahimi bool ARM_rel_branch(cs_struct *h, unsigned int insn_id);
23*9a0e4156SSadaf Ebrahimi 
24*9a0e4156SSadaf Ebrahimi bool ARM_blx_to_arm_mode(cs_struct *h, unsigned int insn_id);
25*9a0e4156SSadaf Ebrahimi 
26*9a0e4156SSadaf Ebrahimi uint8_t *ARM_get_op_access(cs_struct *h, unsigned int id);
27*9a0e4156SSadaf Ebrahimi 
28*9a0e4156SSadaf Ebrahimi void ARM_reg_access(const cs_insn *insn,
29*9a0e4156SSadaf Ebrahimi 		cs_regs regs_read, uint8_t *regs_read_count,
30*9a0e4156SSadaf Ebrahimi 		cs_regs regs_write, uint8_t *regs_write_count);
31*9a0e4156SSadaf Ebrahimi 
32*9a0e4156SSadaf Ebrahimi #endif
33