xref: /aosp_15_r20/external/capstone/arch/AArch64/AArch64Mapping.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_ARM64_MAP_H
5*9a0e4156SSadaf Ebrahimi #define CS_ARM64_MAP_H
6*9a0e4156SSadaf Ebrahimi 
7*9a0e4156SSadaf Ebrahimi #include "capstone/capstone.h"
8*9a0e4156SSadaf Ebrahimi 
9*9a0e4156SSadaf Ebrahimi // return name of regiser in friendly string
10*9a0e4156SSadaf Ebrahimi const char *AArch64_reg_name(csh handle, unsigned int reg);
11*9a0e4156SSadaf Ebrahimi 
12*9a0e4156SSadaf Ebrahimi // given internal insn id, return public instruction info
13*9a0e4156SSadaf Ebrahimi void AArch64_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id);
14*9a0e4156SSadaf Ebrahimi 
15*9a0e4156SSadaf Ebrahimi const char *AArch64_insn_name(csh handle, unsigned int id);
16*9a0e4156SSadaf Ebrahimi 
17*9a0e4156SSadaf Ebrahimi const char *AArch64_group_name(csh handle, unsigned int id);
18*9a0e4156SSadaf Ebrahimi 
19*9a0e4156SSadaf Ebrahimi // map instruction name to public instruction ID
20*9a0e4156SSadaf Ebrahimi arm64_reg AArch64_map_insn(const char *name);
21*9a0e4156SSadaf Ebrahimi 
22*9a0e4156SSadaf Ebrahimi // map internal vregister to public register
23*9a0e4156SSadaf Ebrahimi arm64_reg AArch64_map_vregister(unsigned int r);
24*9a0e4156SSadaf Ebrahimi 
25*9a0e4156SSadaf Ebrahimi void arm64_op_addReg(MCInst *MI, int reg);
26*9a0e4156SSadaf Ebrahimi 
27*9a0e4156SSadaf Ebrahimi void arm64_op_addVectorArrSpecifier(MCInst * MI, int sp);
28*9a0e4156SSadaf Ebrahimi 
29*9a0e4156SSadaf Ebrahimi void arm64_op_addVectorElementSizeSpecifier(MCInst * MI, int sp);
30*9a0e4156SSadaf Ebrahimi 
31*9a0e4156SSadaf Ebrahimi void arm64_op_addFP(MCInst *MI, float fp);
32*9a0e4156SSadaf Ebrahimi 
33*9a0e4156SSadaf Ebrahimi void arm64_op_addImm(MCInst *MI, int64_t imm);
34*9a0e4156SSadaf Ebrahimi 
35*9a0e4156SSadaf Ebrahimi uint8_t *AArch64_get_op_access(cs_struct *h, unsigned int id);
36*9a0e4156SSadaf Ebrahimi 
37*9a0e4156SSadaf Ebrahimi void AArch64_reg_access(const cs_insn *insn,
38*9a0e4156SSadaf Ebrahimi 		cs_regs regs_read, uint8_t *regs_read_count,
39*9a0e4156SSadaf Ebrahimi 		cs_regs regs_write, uint8_t *regs_write_count);
40*9a0e4156SSadaf Ebrahimi 
41*9a0e4156SSadaf Ebrahimi #endif
42