1 //===- ARMInstPrinter.h - Convert ARM MCInst to assembly syntax -*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This class prints an ARM MCInst to a .s file.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 /* Capstone Disassembly Engine */
15 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
16 
17 #ifndef CS_ARMINSTPRINTER_H
18 #define CS_ARMINSTPRINTER_H
19 
20 #include "../../MCInst.h"
21 #include "../../MCRegisterInfo.h"
22 #include "../../SStream.h"
23 
24 void ARM_printInst(MCInst *MI, SStream *O, void *Info);
25 void ARM_post_printer(csh handle, cs_insn *pub_insn, char *mnem, MCInst *mci);
26 
27 // setup handle->get_regname
28 void ARM_getRegName(cs_struct *handle, int value);
29 
30 // specify vector data type for vector instructions
31 void ARM_addVectorDataType(MCInst *MI, arm_vectordata_type vd);
32 
33 void ARM_addVectorDataSize(MCInst *MI, int size);
34 
35 void ARM_addReg(MCInst *MI, int reg);
36 
37 // load usermode registers (LDM, STM)
38 void ARM_addUserMode(MCInst *MI);
39 
40 // sysreg for MRS/MSR
41 void ARM_addSysReg(MCInst *MI, arm_sysreg reg);
42 
43 #endif
44