bad64-sys 0.11.0

Rust bindings for Binja's arm64 disassembler
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
/* GENERATED by gen_ctx_layout.py from the fields declared in
   context_fields.h. Edit those files instead. */

	union
	{
		uint64_t Pdn;
		uint64_t Rdn;
		uint64_t Vdn;
		uint64_t Zdn;
		uint64_t alias;
		uint64_t b40;
		uint64_t cc;
		uint64_t data;
		uint64_t imm1;
		uint64_t imm16;
		uint64_t imm19;
		uint64_t imm26;
		uint64_t immhi;
		uint64_t n;
		uint64_t ngrp;
		uint64_t op4;
		uint64_t options;
		uint64_t sys_crm;
		bool priority;
	};
	union
	{
		uint64_t LL;
		uint64_t PNn;
		uint64_t Rn;
		uint64_t Vn;
		uint64_t ZAn;
		uint64_t Zn;
		uint64_t b5;
		uint64_t cmode;
		uint64_t dn;
		uint64_t domain;
		uint64_t hw;
		uint64_t imm5b;
		uint64_t immlo;
		uint64_t nvec;
		uint64_t setflags;
		uint64_t sys_crn;
		uint64_t value2;
	};
	union
	{
		uint64_t C;
		uint64_t CRm;
		uint64_t O;
		uint64_t Op0;
		uint64_t P;
		uint64_t Pdm;
		uint64_t TT;
		uint64_t US;
		uint64_t bit_pos;
		uint64_t c;
		uint64_t cmp_with_zero;
		uint64_t comment;
		uint64_t cond;
		uint64_t container_size;
		uint64_t decode_fltsize;
		uint64_t dstsize;
		uint64_t esize;
		uint64_t flagmask;
		uint64_t fltsize;
		uint64_t i4A;
		uint64_t imm12;
		uint64_t imm9h;
		uint64_t imms;
		uint64_t is_tbl;
		uint64_t memcpy_d;
		uint64_t memset_d;
		uint64_t op3;
		uint64_t op54;
		uint64_t opc3;
		uint64_t option;
		uint64_t page;
		uint64_t pos;
		uint64_t shift_type;
		uint64_t uns;
		uint64_t writeback;
		bool auth_then_branch;
		bool withstatus;
	};
	union
	{
		uint64_t S10;
		uint64_t Vd;
		uint64_t ZAd;
		uint64_t containers;
		uint64_t dm;
		uint64_t dst_index;
		uint64_t dtypeh;
		uint64_t exact;
		uint64_t field;
		uint64_t hi;
		uint64_t i3;
		uint64_t i4;
		uint64_t imm13;
		uint64_t imm14;
		uint64_t imm8;
		uint64_t imm9l;
		uint64_t immb;
		uint64_t immr;
		uint64_t intsize;
		uint64_t m;
		uint64_t memcpy_n;
		uint64_t memset_n;
		uint64_t nXS;
		uint64_t op0;
		uint64_t opcode2;
		uint64_t pac;
		uint64_t pat;
		uint64_t s_esize;
		uint64_t srcsize;
		uint64_t swsize;
		uint64_t t2;
		uint64_t tag_offset;
		uint64_t tsz;
		bool acquirepc;
	};
	union
	{
		uint64_t Vm;
		uint64_t ZAda;
		uint64_t d;
		uint64_t d0;
		uint64_t dst;
		uint64_t flags;
		uint64_t i4h;
		uint64_t mask;
		uint64_t memcpy_s;
		uint64_t memset_s;
		uint64_t min_EL;
		uint64_t op1_neg;
		uint64_t operation_;
		uint64_t sel_a;
		uint64_t signal_all_nans;
		uint64_t ssize;
		uint64_t stream;
		uint64_t t;
		uint64_t types;
	};
	union
	{
		uint64_t E;
		uint64_t Pt;
		uint64_t Rv;
		uint64_t ZAt;
		uint64_t Zk;
		uint64_t b;
		uint64_t d_esize;
		uint64_t dst_unsigned;
		uint64_t dtype;
		uint64_t ftype;
		uint64_t imm6;
		uint64_t imm8h;
		uint64_t lsb;
		uint64_t mbytes;
		uint64_t mreg;
		uint64_t num;
		uint64_t offs_size;
		uint64_t op2;
		uint64_t op31;
		uint64_t opt;
		uint64_t r;
		uint64_t select;
		uint64_t simm7;
		uint64_t size;
		uint64_t ssz;
		uint64_t tsize;
		uint64_t tstride;
		bool soft;
	};
	union
	{
		uint64_t PNg;
		uint64_t Pv;
		uint64_t W;
		uint64_t ac;
		uint64_t dstride;
		uint64_t dtypel;
		uint64_t i4B;
		uint64_t imm2;
		uint64_t int_U;
		uint64_t isBefore;
		uint64_t need_secure;
		uint64_t neg_i;
		uint64_t o0;
		uint64_t op;
		uint64_t op1_unsigned;
		uint64_t osize;
		uint64_t pacinst;
		uint64_t position;
		uint64_t rpt;
		uint64_t rw;
		uint64_t scale;
		uint64_t sel;
		uint64_t tb;
		uint64_t tmask;
		uint64_t vertical;
		bool auth_combined;
		bool issrc2;
	};
	union
	{
		uint64_t PNd;
		uint64_t Rd;
		uint64_t V;
		uint64_t Zm;
		uint64_t d1;
		uint64_t merging;
		uint64_t nzcv;
		uint64_t rn_unknown;
		uint64_t sys_op0;
		uint64_t wback;
		bool release;
	};
	union
	{
		uint64_t S;
		uint64_t cmph;
		uint64_t csize;
		uint64_t double_table;
		uint64_t e;
		uint64_t elsize;
		uint64_t eq;
		uint64_t i;
		uint64_t i4C;
		uint64_t imm7;
		uint64_t immh;
		uint64_t isize;
		uint64_t k;
		uint64_t msz;
		uint64_t op1;
		uint64_t op21;
		uint64_t op3_neg;
		uint64_t pairs;
		uint64_t regs;
		uint64_t rot;
		uint64_t s1;
		uint64_t src_index;
		uint64_t wmask;
		bool ispair;
	};
	union
	{
		uint64_t B;
		uint64_t Ra;
		uint64_t cmpl;
		uint64_t condition;
		uint64_t f;
		uint64_t fracbits;
		uint64_t index;
		uint64_t level;
		uint64_t lt;
		uint64_t memcpy_stage;
		uint64_t memset_stage;
		uint64_t ntblr;
		uint64_t off4;
		uint64_t opc;
		uint64_t pattern;
		uint64_t s2;
		uint64_t sel1;
		uint64_t source_is_sp;
		uint64_t src_unsigned;
		uint64_t sub_op;
		uint64_t sys_op1;
		bool acqrel;
	};
	union
	{
		uint64_t D;
		uint64_t Rm;
		uint64_t Rt2;
		uint64_t Za;
		uint64_t da;
		uint64_t h;
		uint64_t imm8l;
		uint64_t offs_unsigned;
		uint64_t rmode;
		uint64_t sh;
		uint64_t sys_op2;
		uint64_t v;
		bool autia1716;
		bool autib1716;
		bool pacia1716;
		bool pacib1716;
		bool rnontemporal;
	};
	union
	{
		uint64_t CRn;
		uint64_t Pg;
		uint64_t T;
		uint64_t datasize;
		uint64_t i2;
		uint64_t operand;
		uint64_t use_key_a;
		uint64_t vl;
		bool wnontemporal;
	};
	union
	{
		uint64_t g;
		uint64_t i3h;
		uint64_t idxdsize;
		uint64_t len;
		uint64_t op2_unsigned;
		uint64_t sel2;
		uint64_t sf;
		uint64_t sys_L;
		uint64_t tagchecked;
		uint64_t width;
	};
	union
	{
		uint64_t K;
		uint64_t Pn;
		uint64_t Rt;
		uint64_t U;
		uint64_t imm64;
		uint64_t pref_hint;
		uint64_t sel_b;
		uint64_t shift_amount;
	};
	union
	{
		uint64_t Z;
		uint64_t Zda;
		uint64_t elements;
		uint64_t extend_type;
		uint64_t imm;
		uint64_t offset;
		uint64_t replicate;
		uint64_t rsize;
		uint64_t u0;
		uint64_t xs;
	};
	union
	{
		uint64_t L;
		uint64_t N;
		uint64_t i1;
		uint64_t i2h;
		uint64_t off2;
		uint64_t prfop;
		uint64_t rd;
		uint64_t unsigned_;
	};
	union
	{
		uint64_t Pd;
		uint64_t Q;
		uint64_t VR;
		uint64_t i2l;
		uint64_t invert;
		uint64_t msize;
		uint64_t neg_r;
		uint64_t nreg;
		uint64_t sub_i;
	};
	union
	{
		uint64_t A;
		uint64_t Zd;
		uint64_t Zt;
		uint64_t a;
		uint64_t cmp_op;
		uint64_t i4l;
		uint64_t round;
		uint64_t sub_r;
		bool nontemporal;
	};
	union
	{
		uint64_t Rs;
		uint64_t ff;
		uint64_t imm4;
		uint64_t imm9;
		uint64_t o2;
		uint64_t tszh;
		uint64_t u1;
	};
	union
	{
		uint64_t imm3;
		uint64_t imm5;
		uint64_t opc2;
		uint64_t selem;
		uint64_t sz;
	};
	union
	{
		uint64_t M;
		uint64_t Pm;
		uint64_t R;
		uint64_t ne;
		uint64_t off3;
		uint64_t postindex;
	};
	union
	{
		uint64_t H;
		uint64_t o1;
		uint64_t o3;
		uint64_t tszl;
	};
	union
	{
		uint64_t i3l;
		uint64_t rounding;
		uint64_t s;
		uint64_t shift;
		uint64_t wb_unknown;
	};
	union
	{
		uint64_t opcode;
		uint64_t regsize;
		uint64_t rt_unknown;
	};
	union
	{
		uint64_t part;
		bool acquire;
	};
	uint64_t Rmhi;