libTriton version 1.0 build 1588
Loading...
Searching...
No Matches
archEnums.hpp
Go to the documentation of this file.
1
2/*
3** Copyright (C) - Triton
4**
5** This program is under the terms of the Apache License 2.0.
6*/
7
8#ifndef TRITON_ARCHENUMS_HPP
9#define TRITON_ARCHENUMS_HPP
10
11#include <cstdint>
12#include <functional>
13
14
15
17namespace triton {
24 namespace arch {
38 };
39
44 };
45
47 enum operand_e {
51 OP_REG
52 };
53
61 };
62
66
67 #define REG_SPEC(UPPER_NAME, _1, _2, _3, _4, _5, _6, _7, _8) \
68 ID_REG_X86_##UPPER_NAME,
69 #define REG_SPEC_NO_CAPSTONE REG_SPEC
70 #include "triton/x86.spec"
71
72 #define REG_SPEC(UPPER_NAME, _1, _2, _3, _4, _5) \
73 ID_REG_AARCH64_##UPPER_NAME,
74 #define REG_SPEC_NO_CAPSTONE REG_SPEC
75 #define SYS_REG_SPEC REG_SPEC
76 #include "triton/aarch64.spec"
77
78 #define REG_SPEC(UPPER_NAME, _1, _2, _3, _4, _5) \
79 ID_REG_ARM32_##UPPER_NAME,
80 #define REG_SPEC_NO_CAPSTONE REG_SPEC
81 #include "triton/arm32.spec"
82
83 /* Must be the last item */
85 };
86
88 namespace x86 {
101 enum prefix_e {
107
108 /* Must be the last item */
110 };
111
113 };
114
116 namespace arm {
124 enum shift_e {
137 };
138
140 enum extend_e {
151 };
152
172 };
173
175 enum vas_e {
186 };
187
189 };
191 };
193};
194
195namespace std {
197 template <> struct hash<triton::arch::register_e> : public hash<uint64_t> {
198 };
199};
200
201#endif /* TRITON_ARCHENUMS_HPP */
register_e
Types of register.
Definition: archEnums.hpp:64
@ ID_REG_INVALID
invalid = 0
Definition: archEnums.hpp:65
@ ID_REG_LAST_ITEM
must be the last item
Definition: archEnums.hpp:84
shift_e
Types of shift.
Definition: archEnums.hpp:124
vas_e
Vector arrangement specifier.
Definition: archEnums.hpp:175
extend_e
Types of extend.
Definition: archEnums.hpp:140
condition_e
Types of condition.
Definition: archEnums.hpp:154
@ ID_SHIFT_LSR
Logical Shift Right (immediate)
Definition: archEnums.hpp:128
@ ID_SHIFT_LSR_REG
Logical Shift Right (register)
Definition: archEnums.hpp:133
@ ID_SHIFT_ASR
Arithmetic Shift Right (immediate)
Definition: archEnums.hpp:126
@ ID_SHIFT_ROR_REG
Rotate Right (register)
Definition: archEnums.hpp:134
@ ID_SHIFT_ROR
Rotate Right (immediate)
Definition: archEnums.hpp:129
@ ID_SHIFT_ASR_REG
Arithmetic Shift Right (register)
Definition: archEnums.hpp:131
@ ID_SHIFT_RRX
Rotate Right with Extend (immediate)
Definition: archEnums.hpp:130
@ ID_SHIFT_RRX_REG
Rotate Right with Extend (register)
Definition: archEnums.hpp:135
@ ID_SHIFT_LAST_ITEM
Must be the last item.
Definition: archEnums.hpp:136
@ ID_SHIFT_LSL_REG
Logical Shift Left (register)
Definition: archEnums.hpp:132
@ ID_SHIFT_INVALID
invalid
Definition: archEnums.hpp:125
@ ID_SHIFT_LSL
Logical Shift Left (immediate)
Definition: archEnums.hpp:127
@ ID_VAS_4S
4 lanes, each containing a 32-bit element.
Definition: archEnums.hpp:181
@ ID_VAS_2D
2 lanes, each containing a 64-bit element.
Definition: archEnums.hpp:183
@ ID_VAS_1D
1 lane containing a 64-bit element.
Definition: archEnums.hpp:184
@ ID_VAS_16B
16 lanes, each containing an 8-bit element.
Definition: archEnums.hpp:177
@ ID_VAS_8B
8 lanes, each containing an 8-bit element.
Definition: archEnums.hpp:178
@ ID_VAS_INVALID
invalid
Definition: archEnums.hpp:176
@ ID_VAS_8H
8 lanes, each containing a 16-bit element.
Definition: archEnums.hpp:179
@ ID_VAS_4H
4 lanes, each containing a 16-bit element.
Definition: archEnums.hpp:180
@ ID_VAS_LAST_ITEM
must be the last item.
Definition: archEnums.hpp:185
@ ID_VAS_2S
2 lanes, each containing a 32-bit element.
Definition: archEnums.hpp:182
@ ID_EXTEND_SXTW
Extracts a word (32-bit) value from a register and zero extends it to the size of the register.
Definition: archEnums.hpp:148
@ ID_EXTEND_UXTX
Use the whole 64-bit register.
Definition: archEnums.hpp:145
@ ID_EXTEND_SXTX
Use the whole 64-bit register.
Definition: archEnums.hpp:149
@ ID_EXTEND_SXTH
Extracts a halfword (16-bit) value from a register and zero extends it to the size of the register.
Definition: archEnums.hpp:147
@ ID_EXTEND_UXTB
Extracts a byte (8-bit) value from a register and zero extends it to the size of the register.
Definition: archEnums.hpp:142
@ ID_EXTEND_INVALID
invalid
Definition: archEnums.hpp:141
@ ID_EXTEND_UXTW
Extracts a word (32-bit) value from a register and zero extends it to the size of the register.
Definition: archEnums.hpp:144
@ ID_EXTEND_SXTB
Extracts a byte (8-bit) value from a register and zero extends it to the size of the register.
Definition: archEnums.hpp:146
@ ID_EXTEND_UXTH
Extracts a halfword (16-bit) value from a register and zero extends it to the size of the register.
Definition: archEnums.hpp:143
@ ID_EXTEND_LAST_ITEM
Must be the last item.
Definition: archEnums.hpp:150
@ ID_CONDITION_HS
Higher or same (unsigned >=). C set.
Definition: archEnums.hpp:161
@ ID_CONDITION_PL
Positive or zero. N clear.
Definition: archEnums.hpp:168
@ ID_CONDITION_VC
No overflow. V clear.
Definition: archEnums.hpp:169
@ ID_CONDITION_LE
Signed <=. Z set, N and V differ.
Definition: archEnums.hpp:162
@ ID_CONDITION_VS
Overflow. V set.
Definition: archEnums.hpp:170
@ ID_CONDITION_LAST_ITEM
must be the last item.
Definition: archEnums.hpp:171
@ ID_CONDITION_MI
Negative. N set.
Definition: archEnums.hpp:166
@ ID_CONDITION_GE
Signed >=. N and V the same.
Definition: archEnums.hpp:158
@ ID_CONDITION_GT
Signed >. Z clear, N and V the same.
Definition: archEnums.hpp:159
@ ID_CONDITION_HI
Higher (unsigned >). C set and Z clear.
Definition: archEnums.hpp:160
@ ID_CONDITION_NE
Not equal. Z clear.
Definition: archEnums.hpp:167
@ ID_CONDITION_AL
Always. Any flags. This suffix is normally omitted.
Definition: archEnums.hpp:156
@ ID_CONDITION_LO
Lower (unsigned <). C clear.
Definition: archEnums.hpp:163
@ ID_CONDITION_LT
Signed <. N and V differ.
Definition: archEnums.hpp:165
@ ID_CONDITION_LS
Lower or same (unsigned <=). C clear or Z set.
Definition: archEnums.hpp:164
@ ID_CONDITION_INVALID
invalid
Definition: archEnums.hpp:155
@ ID_CONDITION_EQ
Equal. Z set.
Definition: archEnums.hpp:157
prefix_e
Types of prefix.
Definition: archEnums.hpp:101
@ ID_PREFIX_REPNE
REPNE.
Definition: archEnums.hpp:106
@ ID_PREFIX_INVALID
invalid
Definition: archEnums.hpp:102
@ ID_PREFIX_LAST_ITEM
must be the last item
Definition: archEnums.hpp:109
The Triton namespace.