hexcore-unicorn 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +307 -0
- package/binding.gyp +91 -0
- package/deps/unicorn/include/unicorn/arm.h +235 -0
- package/deps/unicorn/include/unicorn/arm64.h +393 -0
- package/deps/unicorn/include/unicorn/m68k.h +81 -0
- package/deps/unicorn/include/unicorn/mips.h +283 -0
- package/deps/unicorn/include/unicorn/platform.h +263 -0
- package/deps/unicorn/include/unicorn/ppc.h +434 -0
- package/deps/unicorn/include/unicorn/riscv.h +316 -0
- package/deps/unicorn/include/unicorn/s390x.h +200 -0
- package/deps/unicorn/include/unicorn/sparc.h +173 -0
- package/deps/unicorn/include/unicorn/tricore.h +174 -0
- package/deps/unicorn/include/unicorn/unicorn.h +1456 -0
- package/deps/unicorn/include/unicorn/x86.h +1681 -0
- package/deps/unicorn/unicorn-import.lib +0 -0
- package/deps/unicorn/unicorn.dll +0 -0
- package/index.d.ts +792 -0
- package/index.js +167 -0
- package/index.mjs +40 -0
- package/package.json +87 -0
- package/src/emu_async_worker.h +179 -0
- package/src/main.cpp +717 -0
- package/src/unicorn_wrapper.cpp +1536 -0
- package/src/unicorn_wrapper.h +379 -0
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
/* Unicorn Emulator Engine */
|
|
2
|
+
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2015-2017 */
|
|
3
|
+
/* This file is released under LGPL2.
|
|
4
|
+
See COPYING.LGPL2 in root directory for more details
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef UNICORN_ARM64_H
|
|
8
|
+
#define UNICORN_ARM64_H
|
|
9
|
+
|
|
10
|
+
#ifdef __cplusplus
|
|
11
|
+
extern "C" {
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifdef _MSC_VER
|
|
15
|
+
#pragma warning(disable : 4201)
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
//> ARM64 CPU
|
|
19
|
+
typedef enum uc_cpu_arm64 {
|
|
20
|
+
UC_CPU_ARM64_A57 = 0,
|
|
21
|
+
UC_CPU_ARM64_A53,
|
|
22
|
+
UC_CPU_ARM64_A72,
|
|
23
|
+
UC_CPU_ARM64_MAX,
|
|
24
|
+
|
|
25
|
+
UC_CPU_ARM64_ENDING
|
|
26
|
+
} uc_cpu_arm64;
|
|
27
|
+
|
|
28
|
+
// ARM64 coprocessor registers, use this with UC_ARM64_REG_CP_REG to
|
|
29
|
+
// in call to uc_reg_write/read() to access the registers.
|
|
30
|
+
typedef struct uc_arm64_cp_reg {
|
|
31
|
+
uint32_t crn; // Coprocessor register number
|
|
32
|
+
uint32_t crm; // Coprocessor register number
|
|
33
|
+
uint32_t op0; // Opcode0
|
|
34
|
+
uint32_t op1; // Opcode1
|
|
35
|
+
uint32_t op2; // Opcode2
|
|
36
|
+
uint64_t val; // The value to read/write
|
|
37
|
+
} uc_arm64_cp_reg;
|
|
38
|
+
|
|
39
|
+
//> ARM64 registers
|
|
40
|
+
typedef enum uc_arm64_reg {
|
|
41
|
+
UC_ARM64_REG_INVALID = 0,
|
|
42
|
+
|
|
43
|
+
UC_ARM64_REG_X29,
|
|
44
|
+
UC_ARM64_REG_X30,
|
|
45
|
+
UC_ARM64_REG_NZCV,
|
|
46
|
+
UC_ARM64_REG_SP,
|
|
47
|
+
UC_ARM64_REG_WSP,
|
|
48
|
+
UC_ARM64_REG_WZR,
|
|
49
|
+
UC_ARM64_REG_XZR,
|
|
50
|
+
UC_ARM64_REG_B0,
|
|
51
|
+
UC_ARM64_REG_B1,
|
|
52
|
+
UC_ARM64_REG_B2,
|
|
53
|
+
UC_ARM64_REG_B3,
|
|
54
|
+
UC_ARM64_REG_B4,
|
|
55
|
+
UC_ARM64_REG_B5,
|
|
56
|
+
UC_ARM64_REG_B6,
|
|
57
|
+
UC_ARM64_REG_B7,
|
|
58
|
+
UC_ARM64_REG_B8,
|
|
59
|
+
UC_ARM64_REG_B9,
|
|
60
|
+
UC_ARM64_REG_B10,
|
|
61
|
+
UC_ARM64_REG_B11,
|
|
62
|
+
UC_ARM64_REG_B12,
|
|
63
|
+
UC_ARM64_REG_B13,
|
|
64
|
+
UC_ARM64_REG_B14,
|
|
65
|
+
UC_ARM64_REG_B15,
|
|
66
|
+
UC_ARM64_REG_B16,
|
|
67
|
+
UC_ARM64_REG_B17,
|
|
68
|
+
UC_ARM64_REG_B18,
|
|
69
|
+
UC_ARM64_REG_B19,
|
|
70
|
+
UC_ARM64_REG_B20,
|
|
71
|
+
UC_ARM64_REG_B21,
|
|
72
|
+
UC_ARM64_REG_B22,
|
|
73
|
+
UC_ARM64_REG_B23,
|
|
74
|
+
UC_ARM64_REG_B24,
|
|
75
|
+
UC_ARM64_REG_B25,
|
|
76
|
+
UC_ARM64_REG_B26,
|
|
77
|
+
UC_ARM64_REG_B27,
|
|
78
|
+
UC_ARM64_REG_B28,
|
|
79
|
+
UC_ARM64_REG_B29,
|
|
80
|
+
UC_ARM64_REG_B30,
|
|
81
|
+
UC_ARM64_REG_B31,
|
|
82
|
+
UC_ARM64_REG_D0,
|
|
83
|
+
UC_ARM64_REG_D1,
|
|
84
|
+
UC_ARM64_REG_D2,
|
|
85
|
+
UC_ARM64_REG_D3,
|
|
86
|
+
UC_ARM64_REG_D4,
|
|
87
|
+
UC_ARM64_REG_D5,
|
|
88
|
+
UC_ARM64_REG_D6,
|
|
89
|
+
UC_ARM64_REG_D7,
|
|
90
|
+
UC_ARM64_REG_D8,
|
|
91
|
+
UC_ARM64_REG_D9,
|
|
92
|
+
UC_ARM64_REG_D10,
|
|
93
|
+
UC_ARM64_REG_D11,
|
|
94
|
+
UC_ARM64_REG_D12,
|
|
95
|
+
UC_ARM64_REG_D13,
|
|
96
|
+
UC_ARM64_REG_D14,
|
|
97
|
+
UC_ARM64_REG_D15,
|
|
98
|
+
UC_ARM64_REG_D16,
|
|
99
|
+
UC_ARM64_REG_D17,
|
|
100
|
+
UC_ARM64_REG_D18,
|
|
101
|
+
UC_ARM64_REG_D19,
|
|
102
|
+
UC_ARM64_REG_D20,
|
|
103
|
+
UC_ARM64_REG_D21,
|
|
104
|
+
UC_ARM64_REG_D22,
|
|
105
|
+
UC_ARM64_REG_D23,
|
|
106
|
+
UC_ARM64_REG_D24,
|
|
107
|
+
UC_ARM64_REG_D25,
|
|
108
|
+
UC_ARM64_REG_D26,
|
|
109
|
+
UC_ARM64_REG_D27,
|
|
110
|
+
UC_ARM64_REG_D28,
|
|
111
|
+
UC_ARM64_REG_D29,
|
|
112
|
+
UC_ARM64_REG_D30,
|
|
113
|
+
UC_ARM64_REG_D31,
|
|
114
|
+
UC_ARM64_REG_H0,
|
|
115
|
+
UC_ARM64_REG_H1,
|
|
116
|
+
UC_ARM64_REG_H2,
|
|
117
|
+
UC_ARM64_REG_H3,
|
|
118
|
+
UC_ARM64_REG_H4,
|
|
119
|
+
UC_ARM64_REG_H5,
|
|
120
|
+
UC_ARM64_REG_H6,
|
|
121
|
+
UC_ARM64_REG_H7,
|
|
122
|
+
UC_ARM64_REG_H8,
|
|
123
|
+
UC_ARM64_REG_H9,
|
|
124
|
+
UC_ARM64_REG_H10,
|
|
125
|
+
UC_ARM64_REG_H11,
|
|
126
|
+
UC_ARM64_REG_H12,
|
|
127
|
+
UC_ARM64_REG_H13,
|
|
128
|
+
UC_ARM64_REG_H14,
|
|
129
|
+
UC_ARM64_REG_H15,
|
|
130
|
+
UC_ARM64_REG_H16,
|
|
131
|
+
UC_ARM64_REG_H17,
|
|
132
|
+
UC_ARM64_REG_H18,
|
|
133
|
+
UC_ARM64_REG_H19,
|
|
134
|
+
UC_ARM64_REG_H20,
|
|
135
|
+
UC_ARM64_REG_H21,
|
|
136
|
+
UC_ARM64_REG_H22,
|
|
137
|
+
UC_ARM64_REG_H23,
|
|
138
|
+
UC_ARM64_REG_H24,
|
|
139
|
+
UC_ARM64_REG_H25,
|
|
140
|
+
UC_ARM64_REG_H26,
|
|
141
|
+
UC_ARM64_REG_H27,
|
|
142
|
+
UC_ARM64_REG_H28,
|
|
143
|
+
UC_ARM64_REG_H29,
|
|
144
|
+
UC_ARM64_REG_H30,
|
|
145
|
+
UC_ARM64_REG_H31,
|
|
146
|
+
UC_ARM64_REG_Q0,
|
|
147
|
+
UC_ARM64_REG_Q1,
|
|
148
|
+
UC_ARM64_REG_Q2,
|
|
149
|
+
UC_ARM64_REG_Q3,
|
|
150
|
+
UC_ARM64_REG_Q4,
|
|
151
|
+
UC_ARM64_REG_Q5,
|
|
152
|
+
UC_ARM64_REG_Q6,
|
|
153
|
+
UC_ARM64_REG_Q7,
|
|
154
|
+
UC_ARM64_REG_Q8,
|
|
155
|
+
UC_ARM64_REG_Q9,
|
|
156
|
+
UC_ARM64_REG_Q10,
|
|
157
|
+
UC_ARM64_REG_Q11,
|
|
158
|
+
UC_ARM64_REG_Q12,
|
|
159
|
+
UC_ARM64_REG_Q13,
|
|
160
|
+
UC_ARM64_REG_Q14,
|
|
161
|
+
UC_ARM64_REG_Q15,
|
|
162
|
+
UC_ARM64_REG_Q16,
|
|
163
|
+
UC_ARM64_REG_Q17,
|
|
164
|
+
UC_ARM64_REG_Q18,
|
|
165
|
+
UC_ARM64_REG_Q19,
|
|
166
|
+
UC_ARM64_REG_Q20,
|
|
167
|
+
UC_ARM64_REG_Q21,
|
|
168
|
+
UC_ARM64_REG_Q22,
|
|
169
|
+
UC_ARM64_REG_Q23,
|
|
170
|
+
UC_ARM64_REG_Q24,
|
|
171
|
+
UC_ARM64_REG_Q25,
|
|
172
|
+
UC_ARM64_REG_Q26,
|
|
173
|
+
UC_ARM64_REG_Q27,
|
|
174
|
+
UC_ARM64_REG_Q28,
|
|
175
|
+
UC_ARM64_REG_Q29,
|
|
176
|
+
UC_ARM64_REG_Q30,
|
|
177
|
+
UC_ARM64_REG_Q31,
|
|
178
|
+
UC_ARM64_REG_S0,
|
|
179
|
+
UC_ARM64_REG_S1,
|
|
180
|
+
UC_ARM64_REG_S2,
|
|
181
|
+
UC_ARM64_REG_S3,
|
|
182
|
+
UC_ARM64_REG_S4,
|
|
183
|
+
UC_ARM64_REG_S5,
|
|
184
|
+
UC_ARM64_REG_S6,
|
|
185
|
+
UC_ARM64_REG_S7,
|
|
186
|
+
UC_ARM64_REG_S8,
|
|
187
|
+
UC_ARM64_REG_S9,
|
|
188
|
+
UC_ARM64_REG_S10,
|
|
189
|
+
UC_ARM64_REG_S11,
|
|
190
|
+
UC_ARM64_REG_S12,
|
|
191
|
+
UC_ARM64_REG_S13,
|
|
192
|
+
UC_ARM64_REG_S14,
|
|
193
|
+
UC_ARM64_REG_S15,
|
|
194
|
+
UC_ARM64_REG_S16,
|
|
195
|
+
UC_ARM64_REG_S17,
|
|
196
|
+
UC_ARM64_REG_S18,
|
|
197
|
+
UC_ARM64_REG_S19,
|
|
198
|
+
UC_ARM64_REG_S20,
|
|
199
|
+
UC_ARM64_REG_S21,
|
|
200
|
+
UC_ARM64_REG_S22,
|
|
201
|
+
UC_ARM64_REG_S23,
|
|
202
|
+
UC_ARM64_REG_S24,
|
|
203
|
+
UC_ARM64_REG_S25,
|
|
204
|
+
UC_ARM64_REG_S26,
|
|
205
|
+
UC_ARM64_REG_S27,
|
|
206
|
+
UC_ARM64_REG_S28,
|
|
207
|
+
UC_ARM64_REG_S29,
|
|
208
|
+
UC_ARM64_REG_S30,
|
|
209
|
+
UC_ARM64_REG_S31,
|
|
210
|
+
UC_ARM64_REG_W0,
|
|
211
|
+
UC_ARM64_REG_W1,
|
|
212
|
+
UC_ARM64_REG_W2,
|
|
213
|
+
UC_ARM64_REG_W3,
|
|
214
|
+
UC_ARM64_REG_W4,
|
|
215
|
+
UC_ARM64_REG_W5,
|
|
216
|
+
UC_ARM64_REG_W6,
|
|
217
|
+
UC_ARM64_REG_W7,
|
|
218
|
+
UC_ARM64_REG_W8,
|
|
219
|
+
UC_ARM64_REG_W9,
|
|
220
|
+
UC_ARM64_REG_W10,
|
|
221
|
+
UC_ARM64_REG_W11,
|
|
222
|
+
UC_ARM64_REG_W12,
|
|
223
|
+
UC_ARM64_REG_W13,
|
|
224
|
+
UC_ARM64_REG_W14,
|
|
225
|
+
UC_ARM64_REG_W15,
|
|
226
|
+
UC_ARM64_REG_W16,
|
|
227
|
+
UC_ARM64_REG_W17,
|
|
228
|
+
UC_ARM64_REG_W18,
|
|
229
|
+
UC_ARM64_REG_W19,
|
|
230
|
+
UC_ARM64_REG_W20,
|
|
231
|
+
UC_ARM64_REG_W21,
|
|
232
|
+
UC_ARM64_REG_W22,
|
|
233
|
+
UC_ARM64_REG_W23,
|
|
234
|
+
UC_ARM64_REG_W24,
|
|
235
|
+
UC_ARM64_REG_W25,
|
|
236
|
+
UC_ARM64_REG_W26,
|
|
237
|
+
UC_ARM64_REG_W27,
|
|
238
|
+
UC_ARM64_REG_W28,
|
|
239
|
+
UC_ARM64_REG_W29,
|
|
240
|
+
UC_ARM64_REG_W30,
|
|
241
|
+
UC_ARM64_REG_X0,
|
|
242
|
+
UC_ARM64_REG_X1,
|
|
243
|
+
UC_ARM64_REG_X2,
|
|
244
|
+
UC_ARM64_REG_X3,
|
|
245
|
+
UC_ARM64_REG_X4,
|
|
246
|
+
UC_ARM64_REG_X5,
|
|
247
|
+
UC_ARM64_REG_X6,
|
|
248
|
+
UC_ARM64_REG_X7,
|
|
249
|
+
UC_ARM64_REG_X8,
|
|
250
|
+
UC_ARM64_REG_X9,
|
|
251
|
+
UC_ARM64_REG_X10,
|
|
252
|
+
UC_ARM64_REG_X11,
|
|
253
|
+
UC_ARM64_REG_X12,
|
|
254
|
+
UC_ARM64_REG_X13,
|
|
255
|
+
UC_ARM64_REG_X14,
|
|
256
|
+
UC_ARM64_REG_X15,
|
|
257
|
+
UC_ARM64_REG_X16,
|
|
258
|
+
UC_ARM64_REG_X17,
|
|
259
|
+
UC_ARM64_REG_X18,
|
|
260
|
+
UC_ARM64_REG_X19,
|
|
261
|
+
UC_ARM64_REG_X20,
|
|
262
|
+
UC_ARM64_REG_X21,
|
|
263
|
+
UC_ARM64_REG_X22,
|
|
264
|
+
UC_ARM64_REG_X23,
|
|
265
|
+
UC_ARM64_REG_X24,
|
|
266
|
+
UC_ARM64_REG_X25,
|
|
267
|
+
UC_ARM64_REG_X26,
|
|
268
|
+
UC_ARM64_REG_X27,
|
|
269
|
+
UC_ARM64_REG_X28,
|
|
270
|
+
|
|
271
|
+
UC_ARM64_REG_V0,
|
|
272
|
+
UC_ARM64_REG_V1,
|
|
273
|
+
UC_ARM64_REG_V2,
|
|
274
|
+
UC_ARM64_REG_V3,
|
|
275
|
+
UC_ARM64_REG_V4,
|
|
276
|
+
UC_ARM64_REG_V5,
|
|
277
|
+
UC_ARM64_REG_V6,
|
|
278
|
+
UC_ARM64_REG_V7,
|
|
279
|
+
UC_ARM64_REG_V8,
|
|
280
|
+
UC_ARM64_REG_V9,
|
|
281
|
+
UC_ARM64_REG_V10,
|
|
282
|
+
UC_ARM64_REG_V11,
|
|
283
|
+
UC_ARM64_REG_V12,
|
|
284
|
+
UC_ARM64_REG_V13,
|
|
285
|
+
UC_ARM64_REG_V14,
|
|
286
|
+
UC_ARM64_REG_V15,
|
|
287
|
+
UC_ARM64_REG_V16,
|
|
288
|
+
UC_ARM64_REG_V17,
|
|
289
|
+
UC_ARM64_REG_V18,
|
|
290
|
+
UC_ARM64_REG_V19,
|
|
291
|
+
UC_ARM64_REG_V20,
|
|
292
|
+
UC_ARM64_REG_V21,
|
|
293
|
+
UC_ARM64_REG_V22,
|
|
294
|
+
UC_ARM64_REG_V23,
|
|
295
|
+
UC_ARM64_REG_V24,
|
|
296
|
+
UC_ARM64_REG_V25,
|
|
297
|
+
UC_ARM64_REG_V26,
|
|
298
|
+
UC_ARM64_REG_V27,
|
|
299
|
+
UC_ARM64_REG_V28,
|
|
300
|
+
UC_ARM64_REG_V29,
|
|
301
|
+
UC_ARM64_REG_V30,
|
|
302
|
+
UC_ARM64_REG_V31,
|
|
303
|
+
|
|
304
|
+
//> pseudo registers
|
|
305
|
+
UC_ARM64_REG_PC, // program counter register
|
|
306
|
+
|
|
307
|
+
UC_ARM64_REG_CPACR_EL1,
|
|
308
|
+
|
|
309
|
+
//> thread registers, depreciated, use UC_ARM64_REG_CP_REG instead
|
|
310
|
+
UC_ARM64_REG_TPIDR_EL0,
|
|
311
|
+
UC_ARM64_REG_TPIDRRO_EL0,
|
|
312
|
+
UC_ARM64_REG_TPIDR_EL1,
|
|
313
|
+
|
|
314
|
+
UC_ARM64_REG_PSTATE,
|
|
315
|
+
|
|
316
|
+
//> exception link registers, depreciated, use UC_ARM64_REG_CP_REG instead
|
|
317
|
+
UC_ARM64_REG_ELR_EL0,
|
|
318
|
+
UC_ARM64_REG_ELR_EL1,
|
|
319
|
+
UC_ARM64_REG_ELR_EL2,
|
|
320
|
+
UC_ARM64_REG_ELR_EL3,
|
|
321
|
+
|
|
322
|
+
//> stack pointers registers, depreciated, use UC_ARM64_REG_CP_REG instead
|
|
323
|
+
UC_ARM64_REG_SP_EL0,
|
|
324
|
+
UC_ARM64_REG_SP_EL1,
|
|
325
|
+
UC_ARM64_REG_SP_EL2,
|
|
326
|
+
UC_ARM64_REG_SP_EL3,
|
|
327
|
+
|
|
328
|
+
//> other CP15 registers, depreciated, use UC_ARM64_REG_CP_REG instead
|
|
329
|
+
UC_ARM64_REG_TTBR0_EL1,
|
|
330
|
+
UC_ARM64_REG_TTBR1_EL1,
|
|
331
|
+
|
|
332
|
+
UC_ARM64_REG_ESR_EL0,
|
|
333
|
+
UC_ARM64_REG_ESR_EL1,
|
|
334
|
+
UC_ARM64_REG_ESR_EL2,
|
|
335
|
+
UC_ARM64_REG_ESR_EL3,
|
|
336
|
+
|
|
337
|
+
UC_ARM64_REG_FAR_EL0,
|
|
338
|
+
UC_ARM64_REG_FAR_EL1,
|
|
339
|
+
UC_ARM64_REG_FAR_EL2,
|
|
340
|
+
UC_ARM64_REG_FAR_EL3,
|
|
341
|
+
|
|
342
|
+
UC_ARM64_REG_PAR_EL1,
|
|
343
|
+
|
|
344
|
+
UC_ARM64_REG_MAIR_EL1,
|
|
345
|
+
|
|
346
|
+
UC_ARM64_REG_VBAR_EL0,
|
|
347
|
+
UC_ARM64_REG_VBAR_EL1,
|
|
348
|
+
UC_ARM64_REG_VBAR_EL2,
|
|
349
|
+
UC_ARM64_REG_VBAR_EL3,
|
|
350
|
+
|
|
351
|
+
UC_ARM64_REG_CP_REG,
|
|
352
|
+
|
|
353
|
+
//> floating point control and status registers
|
|
354
|
+
UC_ARM64_REG_FPCR,
|
|
355
|
+
UC_ARM64_REG_FPSR,
|
|
356
|
+
|
|
357
|
+
UC_ARM64_REG_ENDING, // <-- mark the end of the list of registers
|
|
358
|
+
|
|
359
|
+
//> alias registers
|
|
360
|
+
|
|
361
|
+
UC_ARM64_REG_IP0 = UC_ARM64_REG_X16,
|
|
362
|
+
UC_ARM64_REG_IP1 = UC_ARM64_REG_X17,
|
|
363
|
+
UC_ARM64_REG_FP = UC_ARM64_REG_X29,
|
|
364
|
+
UC_ARM64_REG_LR = UC_ARM64_REG_X30,
|
|
365
|
+
} uc_arm64_reg;
|
|
366
|
+
|
|
367
|
+
// Callback function for tracing MRS/MSR/SYS/SYSL. If this callback returns
|
|
368
|
+
// true, the read/write to system registers would be skipped (even though it may
|
|
369
|
+
// cause exceptions!). Note one callback per instruction is allowed.
|
|
370
|
+
// @reg: The source/destination register.
|
|
371
|
+
// @cp_reg: The source/destincation system register.
|
|
372
|
+
// @user_data: The user data.
|
|
373
|
+
typedef uint32_t (*uc_cb_insn_sys_t)(uc_engine *uc, uc_arm64_reg reg,
|
|
374
|
+
const uc_arm64_cp_reg *cp_reg,
|
|
375
|
+
void *user_data);
|
|
376
|
+
|
|
377
|
+
//> ARM64 instructions
|
|
378
|
+
typedef enum uc_arm64_insn {
|
|
379
|
+
UC_ARM64_INS_INVALID = 0,
|
|
380
|
+
|
|
381
|
+
UC_ARM64_INS_MRS,
|
|
382
|
+
UC_ARM64_INS_MSR,
|
|
383
|
+
UC_ARM64_INS_SYS,
|
|
384
|
+
UC_ARM64_INS_SYSL,
|
|
385
|
+
|
|
386
|
+
UC_ARM64_INS_ENDING
|
|
387
|
+
} uc_arm64_insn;
|
|
388
|
+
|
|
389
|
+
#ifdef __cplusplus
|
|
390
|
+
}
|
|
391
|
+
#endif
|
|
392
|
+
|
|
393
|
+
#endif
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/* Unicorn Emulator Engine */
|
|
2
|
+
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2014-2017 */
|
|
3
|
+
/* This file is released under LGPL2.
|
|
4
|
+
See COPYING.LGPL2 in root directory for more details
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef UNICORN_M68K_H
|
|
8
|
+
#define UNICORN_M68K_H
|
|
9
|
+
|
|
10
|
+
#ifdef __cplusplus
|
|
11
|
+
extern "C" {
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifdef _MSC_VER
|
|
15
|
+
#pragma warning(disable : 4201)
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
//> M68K CPU
|
|
19
|
+
typedef enum uc_cpu_m68k {
|
|
20
|
+
UC_CPU_M68K_M5206 = 0,
|
|
21
|
+
UC_CPU_M68K_M68000,
|
|
22
|
+
UC_CPU_M68K_M68020,
|
|
23
|
+
UC_CPU_M68K_M68030,
|
|
24
|
+
UC_CPU_M68K_M68040,
|
|
25
|
+
UC_CPU_M68K_M68060,
|
|
26
|
+
UC_CPU_M68K_M5208,
|
|
27
|
+
UC_CPU_M68K_CFV4E,
|
|
28
|
+
UC_CPU_M68K_ANY,
|
|
29
|
+
|
|
30
|
+
UC_CPU_M68K_ENDING
|
|
31
|
+
} uc_cpu_m68k;
|
|
32
|
+
|
|
33
|
+
//> M68K registers
|
|
34
|
+
typedef enum uc_m68k_reg {
|
|
35
|
+
UC_M68K_REG_INVALID = 0,
|
|
36
|
+
|
|
37
|
+
UC_M68K_REG_A0,
|
|
38
|
+
UC_M68K_REG_A1,
|
|
39
|
+
UC_M68K_REG_A2,
|
|
40
|
+
UC_M68K_REG_A3,
|
|
41
|
+
UC_M68K_REG_A4,
|
|
42
|
+
UC_M68K_REG_A5,
|
|
43
|
+
UC_M68K_REG_A6,
|
|
44
|
+
UC_M68K_REG_A7,
|
|
45
|
+
|
|
46
|
+
UC_M68K_REG_D0,
|
|
47
|
+
UC_M68K_REG_D1,
|
|
48
|
+
UC_M68K_REG_D2,
|
|
49
|
+
UC_M68K_REG_D3,
|
|
50
|
+
UC_M68K_REG_D4,
|
|
51
|
+
UC_M68K_REG_D5,
|
|
52
|
+
UC_M68K_REG_D6,
|
|
53
|
+
UC_M68K_REG_D7,
|
|
54
|
+
|
|
55
|
+
UC_M68K_REG_SR,
|
|
56
|
+
UC_M68K_REG_PC,
|
|
57
|
+
|
|
58
|
+
UC_M68K_REG_CR_SFC,
|
|
59
|
+
UC_M68K_REG_CR_DFC,
|
|
60
|
+
UC_M68K_REG_CR_VBR,
|
|
61
|
+
UC_M68K_REG_CR_CACR,
|
|
62
|
+
UC_M68K_REG_CR_TC,
|
|
63
|
+
UC_M68K_REG_CR_MMUSR,
|
|
64
|
+
UC_M68K_REG_CR_SRP,
|
|
65
|
+
UC_M68K_REG_CR_USP,
|
|
66
|
+
UC_M68K_REG_CR_MSP,
|
|
67
|
+
UC_M68K_REG_CR_ISP,
|
|
68
|
+
UC_M68K_REG_CR_URP,
|
|
69
|
+
UC_M68K_REG_CR_ITT0,
|
|
70
|
+
UC_M68K_REG_CR_ITT1,
|
|
71
|
+
UC_M68K_REG_CR_DTT0,
|
|
72
|
+
UC_M68K_REG_CR_DTT1,
|
|
73
|
+
|
|
74
|
+
UC_M68K_REG_ENDING, // <-- mark the end of the list of registers
|
|
75
|
+
} uc_m68k_reg;
|
|
76
|
+
|
|
77
|
+
#ifdef __cplusplus
|
|
78
|
+
}
|
|
79
|
+
#endif
|
|
80
|
+
|
|
81
|
+
#endif
|