@@ -136,8 +136,8 @@ typedef struct context_
136
136
{
137
137
uint32_t insword ;
138
138
uint64_t address ;
139
- uint64_t features0 ; // bitmask of ARCH_FEATURE_XXX
140
- uint64_t features1 ; // bitmask of ARCH_FEATURE_XXX
139
+ uint64_t decode_features [ 2 ] ; // bitmask of ARCH_FEATURE_XXX
140
+ uint64_t pcode_features [ 2 ]; // bitmask of ARCH_FEATURE_XXX
141
141
// uint32_t exception_level; // used by AArch64.CheckSystemAccess()
142
142
// uint32_t security_state;
143
143
uint8_t pstate_btype ; // used by BTypeCompatible_BTI()
@@ -193,19 +193,28 @@ typedef struct context_
193
193
uint64_t acc ;
194
194
uint64_t acctype ;
195
195
uint64_t accumulate ;
196
+ bool acqrel ;
197
+ bool acquire ;
198
+ bool acquirepc ;
196
199
uint64_t alias ;
197
200
uint64_t amount ;
198
201
uint64_t and_test ;
199
202
uint64_t asimdimm ;
203
+ bool auth_combined ;
204
+ bool auth_then_branch ;
205
+ bool autia1716 ;
206
+ bool autib1716 ;
200
207
uint64_t b ;
201
208
uint64_t b40 ;
202
209
uint64_t b5 ;
203
210
uint64_t bit_pos ;
204
211
uint64_t bit_val ;
205
212
uint64_t branch_type ;
206
213
uint64_t c ;
214
+ uint64_t cc ;
207
215
uint64_t cmode ;
208
216
uint64_t cmp , cmph , cmpl , cmp_eq , cmp_with_zero ;
217
+ uint64_t cmp_op ;
209
218
uint64_t comment ;
210
219
uint64_t comparison ;
211
220
uint64_t cond ; /* careful! this is the pcode scratchpad .cond, NOT the .cond field of a struct
@@ -216,16 +225,20 @@ typedef struct context_
216
225
uint64_t countop ;
217
226
uint64_t crc32c ;
218
227
uint64_t csize ;
228
+ uint64_t d0 ;
229
+ uint64_t d1 ;
219
230
uint64_t d , da , data , datasize , double_table ;
220
231
uint64_t dtype , dtypeh , dtypel ;
221
232
uint64_t d_esize ;
233
+ uint64_t decode_fltsize ;
222
234
uint64_t decrypt ;
223
235
uint64_t destsize ;
224
236
uint64_t dm ;
225
237
uint64_t dn ;
226
238
uint64_t domain ;
227
239
uint64_t dst_index ;
228
240
uint64_t dst_unsigned ;
241
+ uint64_t dstride ;
229
242
uint64_t dstsize ;
230
243
uint64_t e ;
231
244
uint64_t elements ;
@@ -240,6 +253,7 @@ typedef struct context_
240
253
uint64_t extend_type ;
241
254
uint64_t f , ff ;
242
255
uint64_t field ;
256
+ uint64_t flagmask ;
243
257
uint64_t flags ;
244
258
uint64_t fltsize ;
245
259
uint64_t fpop ;
@@ -252,6 +266,13 @@ typedef struct context_
252
266
uint64_t hw ;
253
267
uint64_t i , i1 , i2 , i2h , i2l , i3h , i3l ;
254
268
uint64_t idxdsize ;
269
+ uint64_t i3 ;
270
+ uint64_t i4 ;
271
+ uint64_t i4A ;
272
+ uint64_t i4B ;
273
+ uint64_t i4C ;
274
+ uint64_t i4h ;
275
+ uint64_t i4l ;
255
276
uint64_t imm ;
256
277
uint64_t imm1 ;
257
278
uint64_t imm12 ;
@@ -288,7 +309,11 @@ typedef struct context_
288
309
uint64_t inzero ;
289
310
uint64_t isBefore ;
290
311
uint64_t is_tbl ;
312
+ bool ispair ;
313
+ bool issrc2 ;
314
+ uint64_t isize ;
291
315
uint64_t iszero ;
316
+ uint64_t K ;
292
317
uint64_t ldacctype ;
293
318
uint64_t len ;
294
319
uint64_t level ;
@@ -298,10 +323,19 @@ typedef struct context_
298
323
uint64_t mask ;
299
324
uint64_t mbytes ;
300
325
uint64_t memop ;
326
+ uint64_t memcpy_d ;
327
+ uint64_t memcpy_n ;
328
+ uint64_t memcpy_s ;
329
+ uint64_t memcpy_stage ;
330
+ uint64_t memset_stage ;
331
+ uint64_t memset_d ;
332
+ uint64_t memset_n ;
333
+ uint64_t memset_s ;
301
334
uint64_t merging ;
302
335
uint64_t min ;
303
336
uint64_t min_EL ;
304
337
uint64_t minimum ;
338
+ uint64_t mreg ;
305
339
uint64_t msb ;
306
340
uint64_t msize ;
307
341
uint64_t msz ;
@@ -313,13 +347,21 @@ typedef struct context_
313
347
uint64_t neg_i ;
314
348
uint64_t neg_r ;
315
349
uint64_t negated ;
350
+ uint64_t ngrp ;
351
+ uint64_t nvec ;
352
+ bool nontemporal ;
316
353
uint64_t nreg ;
354
+ uint64_t ntblr ;
355
+ uint64_t num ;
317
356
uint64_t nzcv ;
318
357
uint64_t nXS ;
319
358
uint64_t o0 , o1 , o2 , o3 ;
320
359
uint64_t offs_size ;
321
360
uint64_t offs_unsigned ;
322
361
uint64_t offset ;
362
+ uint64_t off2 ;
363
+ uint64_t off3 ;
364
+ uint64_t off4 ;
323
365
uint64_t op1_neg ;
324
366
uint64_t op1_unsigned ;
325
367
uint64_t op , op0 , op1 , op2 , op3 , op4 , op21 , op31 , op54 ;
@@ -328,32 +370,43 @@ typedef struct context_
328
370
uint64_t opa_neg ;
329
371
uint64_t opc ;
330
372
uint64_t opc2 ;
373
+ uint64_t opc3 ;
331
374
uint64_t opcode , opcode2 ;
332
375
uint64_t operand ;
333
376
uint64_t operation_ ;
334
377
uint64_t opt , option ;
378
+ uint64_t options ;
335
379
uint64_t osize ;
336
380
uint64_t pac ;
381
+ bool pacia1716 ;
382
+ bool pacib1716 ;
337
383
uint64_t page ;
338
384
uint64_t pair ;
339
385
uint64_t pairs ;
340
386
uint64_t part ;
341
387
uint64_t part1 ;
342
388
uint64_t pat ;
343
389
uint64_t pattern ;
390
+ uint64_t PNd ;
391
+ uint64_t PNg ;
392
+ uint64_t PNn ;
393
+ uint64_t Pv ;
344
394
uint64_t poly ;
345
395
uint64_t pos ;
346
396
uint64_t position ;
347
397
uint64_t postindex ;
348
398
uint64_t pref_hint ;
349
399
uint64_t prfop ;
350
400
uint64_t ptype ;
401
+ uint64_t r ;
351
402
uint64_t rd ;
352
403
uint64_t read ;
353
404
uint64_t regs ;
354
405
uint64_t regsize ;
406
+ bool release ;
355
407
uint64_t replicate ;
356
408
uint64_t rmode ;
409
+ bool rnontemporal ;
357
410
uint64_t rot ;
358
411
uint64_t round ;
359
412
uint64_t rounding ;
@@ -379,6 +432,7 @@ typedef struct context_
379
432
uint64_t signed_ ;
380
433
uint64_t simm7 ;
381
434
uint64_t size ;
435
+ bool soft ;
382
436
uint64_t source_is_sp ;
383
437
uint64_t src_index ;
384
438
uint64_t src_unsigned ;
@@ -395,16 +449,20 @@ typedef struct context_
395
449
uint64_t sys_op0 ;
396
450
uint64_t sys_op1 ;
397
451
uint64_t sys_op2 ;
452
+ uint64_t sys_L ;
398
453
uint64_t sz ;
399
454
uint64_t t , t2 , tb ;
455
+ uint64_t tagchecked ;
400
456
uint64_t tag_checked ;
401
457
uint64_t tag_offset ;
402
458
uint64_t target_level ;
403
459
uint64_t tmask ;
404
460
uint64_t tsize ;
461
+ uint64_t tstride ;
405
462
uint64_t tsz ;
406
463
uint64_t tszh ;
407
464
uint64_t tszl ;
465
+ uint64_t TT ;
408
466
uint64_t types ;
409
467
uint64_t u0 , u1 ;
410
468
uint64_t uimm4 ;
@@ -416,9 +474,15 @@ typedef struct context_
416
474
uint64_t use_key_a ;
417
475
uint64_t user_access_override ;
418
476
uint64_t v , vertical ;
477
+ uint64_t value2 ;
478
+ uint64_t vl ;
479
+ uint64_t VR ;
419
480
uint64_t wback ;
420
481
uint64_t wb_unknown ;
482
+ uint64_t width ;
483
+ bool withstatus ;
421
484
uint64_t wmask ;
485
+ bool wnontemporal ;
422
486
uint64_t writeback ;
423
487
uint64_t xs ;
424
488
uint64_t ZAda , ZAd , ZAn , ZAt , Zk , zero_data ;
@@ -837,7 +901,6 @@ extern "C"
837
901
838
902
int aarch64_decompose (uint32_t instructionValue , Instruction * instr , uint64_t address );
839
903
size_t get_register_size (enum Register );
840
- // const char* tlbi_op(int32_t op);
841
904
842
905
#ifdef __cplusplus
843
906
}
0 commit comments