ROSE  0.10.7.0
InstructionEnumsArm64.h
1 #ifndef ROSE_BinaryAnalysis_InstructionEnumsArm_H
2 #define ROSE_BinaryAnalysis_InstructionEnumsArm_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_ASM_A64
5 
6 #include <capstone/arm64.h>
7 #include <string>
8 
9 namespace Rose {
10 namespace BinaryAnalysis {
11 
12 using ::arm64_insn;
13 using Arm64InstructionKind = ::arm64_insn;
15 using ::arm64_cc;
16 using Arm64InstructionCondition = ::arm64_cc;
18 using ::arm64_extender;
19 using Arm64Extender = ::arm64_extender;
21 using ::arm64_vas;
22 using Arm64VectorArrangement = ::arm64_vas;
24 using ::arm64_at_op;
25 using Arm64AtOperation = ::arm64_at_op;
27 using ::arm64_prefetch_op;
28 using Arm64PrefetchOperation = ::arm64_prefetch_op;
31 enum Arm64RegisterClass {
32  arm_regclass_gpr, // general purpose registers
33  arm_regclass_sp, // stack pointer registers
34  arm_regclass_ext, // SIMD and FP registers, so-called "extension" registers
35  arm_regclass_pc, // program counter, instruction pointer
36  arm_regclass_cc, // condition codes registers
37  arm_regclass_system, // system registers
38 };
39 
46 enum Arm64SystemRegisters {
47  arm_system_actlr = 0, // auxiliary control registers
48  arm_system_ccsidr = 4, // current cache size ID registers
49  arm_system_clidr = 8, // cache level ID registers
50  arm_system_cntfrq = 12, // counter-timer frequency registers
51  arm_system_cntpct = 16, // counter-timer physical count registers
52  arm_system_cntkctl = 20, // counter-timer kernel control registers
53  arm_system_cntp_cval = 24, // counter-timer physical timer compare registers
54  arm_system_cpacr = 28, // coprocessor access control registers
55  arm_system_csselr = 32, // cache size selection registers
56  arm_system_cntp_ctl = 36, // counter-timer physical control registers
57  arm_system_ctr = 40, // cache type registers
58  arm_system_dczid = 44, // data cache zero ID registers
59  arm_system_elr = 48, // exception link registers
60  arm_system_esr = 52, // exception syndrome registers
61  arm_system_far = 56, // fault address registers
62  arm_system_hcr = 60, // hypervisor configuration registers
63  arm_system_mair = 64, // memory attribute indirection registers
64  arm_system_midr = 68, // main ID registers
65  arm_system_mpidr = 72, // multiprocessor affinity registers
66  arm_system_scr = 76, // secure configuration registers
67  arm_system_sctlr = 80, // system control registers
68  arm_system_spsr = 84, // saved program status registers
69  arm_system_tcr = 88, // translation control registers
70  arm_system_tpidr = 92, // user read/write thread ID registers
71  arm_system_tpidrr0 = 96, // user read-only thread ID registers
72  arm_system_ttbr0 = 100, // translation table base registers 0
73  arm_system_ttbr1 = 104, // translation table base register 1
74  arm_system_vbar = 108, // vector based address registers
75  arm_system_vtcr = 112, // virtualization translation control registers
76  arm_system_vttbr = 116 // virtualization translation table base registers
77 };
78 
79 } // namespace
80 } // namespace
81 
82 #endif
83 #endif
Main namespace for the ROSE library.