xref: /aosp_15_r20/external/capstone/arch/PowerPC/PPCModule.c (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 #ifdef CAPSTONE_HAS_POWERPC
5*9a0e4156SSadaf Ebrahimi 
6*9a0e4156SSadaf Ebrahimi #include "../../utils.h"
7*9a0e4156SSadaf Ebrahimi #include "../../MCRegisterInfo.h"
8*9a0e4156SSadaf Ebrahimi #include "PPCDisassembler.h"
9*9a0e4156SSadaf Ebrahimi #include "PPCInstPrinter.h"
10*9a0e4156SSadaf Ebrahimi #include "PPCMapping.h"
11*9a0e4156SSadaf Ebrahimi #include "PPCModule.h"
12*9a0e4156SSadaf Ebrahimi 
PPC_global_init(cs_struct * ud)13*9a0e4156SSadaf Ebrahimi cs_err PPC_global_init(cs_struct *ud)
14*9a0e4156SSadaf Ebrahimi {
15*9a0e4156SSadaf Ebrahimi 	MCRegisterInfo *mri;
16*9a0e4156SSadaf Ebrahimi 	mri = (MCRegisterInfo *) cs_mem_malloc(sizeof(*mri));
17*9a0e4156SSadaf Ebrahimi 
18*9a0e4156SSadaf Ebrahimi 	PPC_init(mri);
19*9a0e4156SSadaf Ebrahimi 	ud->printer = PPC_printInst;
20*9a0e4156SSadaf Ebrahimi 	ud->printer_info = mri;
21*9a0e4156SSadaf Ebrahimi 	ud->getinsn_info = mri;
22*9a0e4156SSadaf Ebrahimi 	ud->disasm = PPC_getInstruction;
23*9a0e4156SSadaf Ebrahimi 	ud->post_printer = PPC_post_printer;
24*9a0e4156SSadaf Ebrahimi 
25*9a0e4156SSadaf Ebrahimi 	ud->reg_name = PPC_reg_name;
26*9a0e4156SSadaf Ebrahimi 	ud->insn_id = PPC_get_insn_id;
27*9a0e4156SSadaf Ebrahimi 	ud->insn_name = PPC_insn_name;
28*9a0e4156SSadaf Ebrahimi 	ud->group_name = PPC_group_name;
29*9a0e4156SSadaf Ebrahimi 
30*9a0e4156SSadaf Ebrahimi 	return CS_ERR_OK;
31*9a0e4156SSadaf Ebrahimi }
32*9a0e4156SSadaf Ebrahimi 
PPC_option(cs_struct * handle,cs_opt_type type,size_t value)33*9a0e4156SSadaf Ebrahimi cs_err PPC_option(cs_struct *handle, cs_opt_type type, size_t value)
34*9a0e4156SSadaf Ebrahimi {
35*9a0e4156SSadaf Ebrahimi 	if (type == CS_OPT_SYNTAX)
36*9a0e4156SSadaf Ebrahimi 		handle->syntax = (int) value;
37*9a0e4156SSadaf Ebrahimi 
38*9a0e4156SSadaf Ebrahimi 	if (type == CS_OPT_MODE) {
39*9a0e4156SSadaf Ebrahimi 		handle->mode = (cs_mode)value;
40*9a0e4156SSadaf Ebrahimi 	}
41*9a0e4156SSadaf Ebrahimi 
42*9a0e4156SSadaf Ebrahimi 	return CS_ERR_OK;
43*9a0e4156SSadaf Ebrahimi }
44*9a0e4156SSadaf Ebrahimi 
45*9a0e4156SSadaf Ebrahimi #endif
46