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