Source file bind.ml
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
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
module Funcs = C.Function
module Types = Types_generated
module Ptr = Types.Ptr
module ChipFeatures = struct
type -'perm t = (Types.chip_features Ctypes.abstract, 'perm) Ptr.t
let uninit () = Ptr.rw @@ Ctypes.allocate_n ~count:1 Types.chip_features
let get_chip_features (a0 : [>`Read|`Write] Types.chip_features_ptr) (a1 : XBEnums.chip) : unit =
Funcs.xed_get_chip_features (Ptr.unsafe_get a0) a1
let modify_chip_features (a0 : [>`Read|`Write] Types.chip_features_ptr) (a1 : XBEnums.isa_set) (a2 : bool) : unit =
Funcs.xed_modify_chip_features (Ptr.unsafe_get a0) a1 a2
end
module DecodedInst = struct
type -'perm t = (Types.decoded_inst Ctypes.abstract, 'perm) Ptr.t
let uninit () = Ptr.rw @@ Ctypes.allocate_n ~count:1 Types.decoded_inst
let avx512_dest_elements (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_avx512_dest_elements (Ptr.unsafe_get a0)
let classify_amx (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_classify_amx (Ptr.unsafe_get a0)
let classify_apx (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_classify_apx (Ptr.unsafe_get a0)
let classify_avx (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_classify_avx (Ptr.unsafe_get a0)
let classify_avx512 (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_classify_avx512 (Ptr.unsafe_get a0)
let classify_avx512_maskop (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_classify_avx512_maskop (Ptr.unsafe_get a0)
let classify_sse (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_classify_sse (Ptr.unsafe_get a0)
let conditionally_writes_registers (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_conditionally_writes_registers (Ptr.unsafe_get a0)
let dump (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : bytes) : unit =
Funcs.xed_decoded_inst_dump (Ptr.unsafe_get a0) (Ctypes.ocaml_bytes_start a1) (Bytes.length a1)
let dump_xed_format (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : bytes) (a3 : Unsigned.UInt64.t) : bool =
Funcs.xed_decoded_inst_dump_xed_format (Ptr.unsafe_get a0) (Ctypes.ocaml_bytes_start a1) (Bytes.length a1) a3
let get_attribute (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : XBEnums.attribute) : Unsigned.UInt32.t =
Funcs.xed_decoded_inst_get_attribute (Ptr.unsafe_get a0) a1
let get_base_reg (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : XBEnums.reg =
assert (a1 >= 0);
Funcs.xed_decoded_inst_get_base_reg (Ptr.unsafe_get a0) a1
let get_branch_displacement (a0 : [>`Read] Types.decoded_inst_ptr) : Signed.Int64.t =
Funcs.xed_decoded_inst_get_branch_displacement (Ptr.unsafe_get a0)
let get_branch_displacement_width (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_get_branch_displacement_width (Ptr.unsafe_get a0)
let get_branch_displacement_width_bits (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_get_branch_displacement_width_bits (Ptr.unsafe_get a0)
let get_byte (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : char =
assert (a1 >= 0);
Funcs.xed_decoded_inst_get_byte (Ptr.unsafe_get a0) a1
let get_category (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.category =
Funcs.xed_decoded_inst_get_category (Ptr.unsafe_get a0)
let get_dfv_reg (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed_decoded_inst_get_dfv_reg (Ptr.unsafe_get a0)
let get_extension (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.extension =
Funcs.xed_decoded_inst_get_extension (Ptr.unsafe_get a0)
let get_iclass (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.iclass =
Funcs.xed_decoded_inst_get_iclass (Ptr.unsafe_get a0)
let get_iform_enum (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.iform =
Funcs.xed_decoded_inst_get_iform_enum (Ptr.unsafe_get a0)
let get_iform_enum_dispatch (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_get_iform_enum_dispatch (Ptr.unsafe_get a0)
let get_immediate_is_signed (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_get_immediate_is_signed (Ptr.unsafe_get a0)
let get_immediate_width (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_get_immediate_width (Ptr.unsafe_get a0)
let get_immediate_width_bits (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_get_immediate_width_bits (Ptr.unsafe_get a0)
let get_index_reg (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : XBEnums.reg =
assert (a1 >= 0);
Funcs.xed_decoded_inst_get_index_reg (Ptr.unsafe_get a0) a1
let get_input_chip (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.chip =
Funcs.xed_decoded_inst_get_input_chip (Ptr.unsafe_get a0)
let get_isa_set (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.isa_set =
Funcs.xed_decoded_inst_get_isa_set (Ptr.unsafe_get a0)
let get_length (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_get_length (Ptr.unsafe_get a0)
let get_machine_mode_bits (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_get_machine_mode_bits (Ptr.unsafe_get a0)
let get_memop_address_width (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : int =
assert (a1 >= 0);
Funcs.xed_decoded_inst_get_memop_address_width (Ptr.unsafe_get a0) a1
let get_memory_displacement (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : Signed.Int64.t =
assert (a1 >= 0);
Funcs.xed_decoded_inst_get_memory_displacement (Ptr.unsafe_get a0) a1
let get_memory_displacement_width (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : int =
assert (a1 >= 0);
Funcs.xed_decoded_inst_get_memory_displacement_width (Ptr.unsafe_get a0) a1
let get_memory_displacement_width_bits (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : int =
assert (a1 >= 0);
Funcs.xed_decoded_inst_get_memory_displacement_width_bits (Ptr.unsafe_get a0) a1
let get_memory_operand_length (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : int =
assert (a1 >= 0);
Funcs.xed_decoded_inst_get_memory_operand_length (Ptr.unsafe_get a0) a1
let get_modrm (a0 : [>`Read] Types.decoded_inst_ptr) : char =
Funcs.xed_decoded_inst_get_modrm (Ptr.unsafe_get a0)
let get_nprefixes (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_get_nprefixes (Ptr.unsafe_get a0)
let get_operand_width (a0 : [>`Read] Types.decoded_inst_ptr) : Unsigned.UInt32.t =
Funcs.xed_decoded_inst_get_operand_width (Ptr.unsafe_get a0)
let get_reg (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : XBEnums.operand) : XBEnums.reg =
Funcs.xed_decoded_inst_get_reg (Ptr.unsafe_get a0) a1
let get_rflags_info (a0 : [>`Read] Types.decoded_inst_ptr) : [<`Read] Types.simple_flag_ptr =
Funcs.xed_decoded_inst_get_rflags_info (Ptr.unsafe_get a0) |> Ptr.ro
let get_scale (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : int =
assert (a1 >= 0);
Funcs.xed_decoded_inst_get_scale (Ptr.unsafe_get a0) a1
let get_second_immediate (a0 : [>`Read] Types.decoded_inst_ptr) : char =
Funcs.xed_decoded_inst_get_second_immediate (Ptr.unsafe_get a0)
let get_seg_reg (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : XBEnums.reg =
assert (a1 >= 0);
Funcs.xed_decoded_inst_get_seg_reg (Ptr.unsafe_get a0) a1
let get_signed_immediate (a0 : [>`Read] Types.decoded_inst_ptr) : Signed.Int32.t =
Funcs.xed_decoded_inst_get_signed_immediate (Ptr.unsafe_get a0)
let get_stack_address_mode_bits (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_get_stack_address_mode_bits (Ptr.unsafe_get a0)
let get_unsigned_immediate (a0 : [>`Read] Types.decoded_inst_ptr) : Unsigned.UInt64.t =
Funcs.xed_decoded_inst_get_unsigned_immediate (Ptr.unsafe_get a0)
let get_user_data (a0 : [>`Read|`Write] Types.decoded_inst_ptr) : Unsigned.UInt64.t =
Funcs.xed_decoded_inst_get_user_data (Ptr.unsafe_get a0)
let has_mpx_prefix (a0 : [>`Read] Types.decoded_inst_ptr) : Unsigned.UInt32.t =
Funcs.xed_decoded_inst_has_mpx_prefix (Ptr.unsafe_get a0)
let inst (a0 : [>`Read] Types.decoded_inst_ptr) : [<`Read] Types.inst_ptr =
Funcs.xed_decoded_inst_inst (Ptr.unsafe_get a0) |> Ptr.ro
let is_apx_zu (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_is_apx_zu (Ptr.unsafe_get a0)
let is_broadcast (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_is_broadcast (Ptr.unsafe_get a0)
let is_broadcast_instruction (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_is_broadcast_instruction (Ptr.unsafe_get a0)
let is_prefetch (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_is_prefetch (Ptr.unsafe_get a0)
let is_xacquire (a0 : [>`Read] Types.decoded_inst_ptr) : Unsigned.UInt32.t =
Funcs.xed_decoded_inst_is_xacquire (Ptr.unsafe_get a0)
let is_xrelease (a0 : [>`Read] Types.decoded_inst_ptr) : Unsigned.UInt32.t =
Funcs.xed_decoded_inst_is_xrelease (Ptr.unsafe_get a0)
let masked_vector_operation (a0 : [>`Read|`Write] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_masked_vector_operation (Ptr.unsafe_get a0)
let masking (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_masking (Ptr.unsafe_get a0)
let mem_read (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : bool =
assert (a1 >= 0);
Funcs.xed_decoded_inst_mem_read (Ptr.unsafe_get a0) a1
let mem_written (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : bool =
assert (a1 >= 0);
Funcs.xed_decoded_inst_mem_written (Ptr.unsafe_get a0) a1
let mem_written_only (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : bool =
assert (a1 >= 0);
Funcs.xed_decoded_inst_mem_written_only (Ptr.unsafe_get a0) a1
let merging (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_merging (Ptr.unsafe_get a0)
let noperands (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_noperands (Ptr.unsafe_get a0)
let number_of_memory_operands (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_number_of_memory_operands (Ptr.unsafe_get a0)
let operand_action (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : XBEnums.operand_action =
assert (a1 >= 0);
Funcs.xed_decoded_inst_operand_action (Ptr.unsafe_get a0) a1
let operand_element_size_bits (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : int =
assert (a1 >= 0);
Funcs.xed_decoded_inst_operand_element_size_bits (Ptr.unsafe_get a0) a1
let operand_element_type (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : XBEnums.operand_element_type =
assert (a1 >= 0);
Funcs.xed_decoded_inst_operand_element_type (Ptr.unsafe_get a0) a1
let operand_elements (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : int =
assert (a1 >= 0);
Funcs.xed_decoded_inst_operand_elements (Ptr.unsafe_get a0) a1
let operand_length (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : int =
assert (a1 >= 0);
Funcs.xed_decoded_inst_operand_length (Ptr.unsafe_get a0) a1
let operand_length_bits (a0 : [>`Read] Types.decoded_inst_ptr) (a1 : int) : int =
assert (a1 >= 0);
Funcs.xed_decoded_inst_operand_length_bits (Ptr.unsafe_get a0) a1
let operands (a0 : [>`Read|`Write] Types.decoded_inst_ptr) : [<`Read|`Write] Types.operand_values_ptr =
Funcs.xed_decoded_inst_operands (Ptr.unsafe_get a0) |> Ptr.rw
let operands_const (a0 : [>`Read] Types.decoded_inst_ptr) : [<`Read] Types.operand_values_ptr =
Funcs.xed_decoded_inst_operands_const (Ptr.unsafe_get a0) |> Ptr.ro
let set_branch_displacement (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Signed.Int64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_decoded_inst_set_branch_displacement (Ptr.unsafe_get a0) a1 a2
let set_branch_displacement_bits (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Signed.Int64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_decoded_inst_set_branch_displacement_bits (Ptr.unsafe_get a0) a1 a2
let set_immediate_signed (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Signed.Int32.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_decoded_inst_set_immediate_signed (Ptr.unsafe_get a0) a1 a2
let set_immediate_signed_bits (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Signed.Int32.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_decoded_inst_set_immediate_signed_bits (Ptr.unsafe_get a0) a1 a2
let set_immediate_unsigned (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Unsigned.UInt64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_decoded_inst_set_immediate_unsigned (Ptr.unsafe_get a0) a1 a2
let set_immediate_unsigned_bits (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Unsigned.UInt64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_decoded_inst_set_immediate_unsigned_bits (Ptr.unsafe_get a0) a1 a2
let set_input_chip (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.chip) : unit =
Funcs.xed_decoded_inst_set_input_chip (Ptr.unsafe_get a0) a1
let set_memory_displacement (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Signed.Int64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_decoded_inst_set_memory_displacement (Ptr.unsafe_get a0) a1 a2
let set_memory_displacement_bits (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Signed.Int64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_decoded_inst_set_memory_displacement_bits (Ptr.unsafe_get a0) a1 a2
let set_mode (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.machine_mode) (a2 : XBEnums.address_width) : unit =
Funcs.xed_decoded_inst_set_mode (Ptr.unsafe_get a0) a1 a2
let set_scale (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed_decoded_inst_set_scale (Ptr.unsafe_get a0) a1
let set_user_data (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Unsigned.UInt64.t) : unit =
Funcs.xed_decoded_inst_set_user_data (Ptr.unsafe_get a0) a1
let uses_embedded_broadcast (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_uses_embedded_broadcast (Ptr.unsafe_get a0)
let uses_rflags (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_uses_rflags (Ptr.unsafe_get a0)
let valid (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_valid (Ptr.unsafe_get a0)
let valid_for_chip (a0 : [>`R] Types.decoded_inst_ptr) (a1 : XBEnums.chip) : bool =
Funcs.xed_decoded_inst_valid_for_chip (Ptr.unsafe_get a0) a1
let vector_length_bits (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed_decoded_inst_vector_length_bits (Ptr.unsafe_get a0)
let zero (a0 : [>`Read|`Write] Types.decoded_inst_ptr) : unit =
Funcs.xed_decoded_inst_zero (Ptr.unsafe_get a0)
let zero_keep_mode (a0 : [>`Read|`Write] Types.decoded_inst_ptr) : unit =
Funcs.xed_decoded_inst_zero_keep_mode (Ptr.unsafe_get a0)
let zero_keep_mode_from_operands (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : [>`Read] Types.operand_values_ptr) : unit =
Funcs.xed_decoded_inst_zero_keep_mode_from_operands (Ptr.unsafe_get a0) (Ptr.unsafe_get a1)
let zero_set_mode (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : [>`Read] Types.state_ptr) : unit =
Funcs.xed_decoded_inst_zero_set_mode (Ptr.unsafe_get a0) (Ptr.unsafe_get a1)
let zeroing (a0 : [>`Read] Types.decoded_inst_ptr) : bool =
Funcs.xed_decoded_inst_zeroing (Ptr.unsafe_get a0)
end
module EncoderRequest = struct
type -'perm t = (Types.encoder_request Ctypes.abstract, 'perm) Ptr.t
let uninit () = Ptr.rw @@ Ctypes.allocate_n ~count:1 Types.encoder_re convert_to_encoder_request (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : [>`Read|`Write] Types.encoder_instruction_ptr) : bool =
Funcs.xed_convert_to_encoder_request (Ptr.unsafe_get a0) (Ptr.unsafe_get a1)
let get_iclass (a0 : [>`Read] Types.encoder_request_ptr) : XBEnums.iclass =
Funcs.xed_encoder_request_get_iclass (Ptr.unsafe_get a0)
let get_operand_order (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : int) : XBEnums.operand =
assert (a1 >= 0);
Funcs.xed_encoder_request_get_operand_order (Ptr.unsafe_get a0) a1
let operand_order_entries (a0 : [>`Read|`Write] Types.encoder_request_ptr) : int =
Funcs.xed_encoder_request_operand_order_entries (Ptr.unsafe_get a0)
let operands (a0 : [>`Read|`Write] Types.encoder_request_ptr) : [<`Read|`Write] Types.operand_values_ptr =
Funcs.xed_encoder_request_operands (Ptr.unsafe_get a0) |> Ptr.rw
let operands_const (a0 : [>`Read] Types.encoder_request_ptr) : [<`Read] Types.operand_values_ptr =
Funcs.xed_encoder_request_operands_const (Ptr.unsafe_get a0) |> Ptr.ro
let set_absbr (a0 : [>`Read|`Write] Types.encoder_request_ptr) : unit =
Funcs.xed_encoder_request_set_absbr (Ptr.unsafe_get a0)
let set_agen (a0 : [>`Read|`Write] Types.encoder_request_ptr) : unit =
Funcs.xed_encoder_request_set_agen (Ptr.unsafe_get a0)
let set_base0 (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed_encoder_request_set_base0 (Ptr.unsafe_get a0) a1
let set_base1 (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed_encoder_request_set_base1 (Ptr.unsafe_get a0) a1
let set_branch_displacement (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : Signed.Int64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_encoder_request_set_branch_displacement (Ptr.unsafe_get a0) a1 a2
let set_effective_address_size (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed_encoder_request_set_effective_address_size (Ptr.unsafe_get a0) a1
let set_effective_operand_width (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed_encoder_request_set_effective_operand_width (Ptr.unsafe_get a0) a1
let set_iclass (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : XBEnums.iclass) : unit =
Funcs.xed_encoder_request_set_iclass (Ptr.unsafe_get a0) a1
let set_index (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed_encoder_request_set_index (Ptr.unsafe_get a0) a1
let set_mem0 (a0 : [>`Read|`Write] Types.encoder_request_ptr) : unit =
Funcs.xed_encoder_request_set_mem0 (Ptr.unsafe_get a0)
let set_mem1 (a0 : [>`Read|`Write] Types.encoder_request_ptr) : unit =
Funcs.xed_encoder_request_set_mem1 (Ptr.unsafe_get a0)
let set_memory_displacement (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : Signed.Int64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_encoder_request_set_memory_displacement (Ptr.unsafe_get a0) a1 a2
let set_memory_operand_length (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed_encoder_request_set_memory_operand_length (Ptr.unsafe_get a0) a1
let set_operand_order (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : int) (a2 : XBEnums.operand) : unit =
assert (a1 >= 0);
Funcs.xed_encoder_request_set_operand_order (Ptr.unsafe_get a0) a1 a2
let set_ptr (a0 : [>`Read|`Write] Types.encoder_request_ptr) : unit =
Funcs.xed_encoder_request_set_ptr (Ptr.unsafe_get a0)
let set_reg (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : XBEnums.operand) (a2 : XBEnums.reg) : unit =
Funcs.xed_encoder_request_set_reg (Ptr.unsafe_get a0) a1 a2
let set_relbr (a0 : [>`Read|`Write] Types.encoder_request_ptr) : unit =
Funcs.xed_encoder_request_set_relbr (Ptr.unsafe_get a0)
let set_scale (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed_encoder_request_set_scale (Ptr.unsafe_get a0) a1
let set_seg0 (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed_encoder_request_set_seg0 (Ptr.unsafe_get a0) a1
let set_seg1 (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed_encoder_request_set_seg1 (Ptr.unsafe_get a0) a1
let set_simm (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : Signed.Int32.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_encoder_request_set_simm (Ptr.unsafe_get a0) a1 a2
let set_uimm0 (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : Unsigned.UInt64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_encoder_request_set_uimm0 (Ptr.unsafe_get a0) a1 a2
let set_uimm0_bits (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : Unsigned.UInt64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_encoder_request_set_uimm0_bits (Ptr.unsafe_get a0) a1 a2
let set_uimm1 (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : char) : unit =
Funcs.xed_encoder_request_set_uimm1 (Ptr.unsafe_get a0) a1
let zero (a0 : [>`Read|`Write] Types.encoder_request_ptr) : unit =
Funcs.xed_encoder_request_zero (Ptr.unsafe_get a0)
let zero_operand_order (a0 : [>`Read|`Write] Types.encoder_request_ptr) : unit =
Funcs.xed_encoder_request_zero_operand_order (Ptr.unsafe_get a0)
let zero_set_mode (a0 : [>`Read|`Write] Types.encoder_request_ptr) (a1 : [>`Read] Types.state_ptr) : unit =
Funcs.xed_encoder_request_zero_set_mode (Pt.unsafe_get a0) (Ptr.unsafe_get a1)
end
module FlagAction = struct
type -'perm t = (Types.flag_action Ctypes.abstract, 'perm) Ptr.t
let uninit () = Ptr.rw @@ Ctypes.allocate_n ~count:1 Types.flag_action
let get_action (a0 : [>`Read] Types.flag_action_ptr) (a1 : int) : XBEnums.flag_action =
assert (a1 >= 0);
Funcs.xed_flag_action_get_action (Ptr.unsafe_get a0) a1
let get_flag_name (a0 : [>`Read] Types.flag_action_ptr) : XBEnums.flag =
Funcs.xed_flag_action_get_flag_name (Ptr.unsafe_get a0)
let print (a0 : [>`Read] Types.flag_action_ptr) (a1 : bytes) : int =
Funcs.xed_flag_action_print (Ptr.unsafe_get a0) (Ctypes.ocaml_bytes_start a1) (Bytes.length a1)
let read_flag (a0 : [>`Read] Types.flag_action_ptr) : bool =
Funcs.xed_flag_action_read_flag (Ptr.unsafe_get a0)
let writes_flag (a0 : [>`Read] Types.flag_action_ptr) : bool =
Funcs.xed_flag_action_writes_flag (Ptr.unsafe_get a0)
end
module FlagSet = struct
type -'perm t = (Types.flag_set Ctypes.abstract, 'perm) Ptr.t
let uninit () = Ptr.rw @@ Ctypes.allocate_n ~count:1 Types.flag_set
let is_subset_of (a0 : [>`Read] Types.flag_set_ptr) (a1 : [>`Read] Types.flag_set_ptr) : bool =
Funcs.xed_flag_set_is_subset_of (Ptr.unsafe_get a0) (Ptr.unsafe_get a1)
let mask (a0 : [>`Read] Types.flag_set_ptr) : int =
Funcs.xed_flag_set_mask (Ptr.unsafe_get a0)
let print (a0 : [>`Read] Types.flag_set_ptr) (a1 : bytes) : int =
Funcs.xed_flag_set_print (Ptr.unsafe_get a0) (Ctypes.ocaml_bytes_start a1) (Bytes.length a1)
end
module Inst = struct
type -'perm t = (Types.inst Ctypes.abstract, 'perm) Ptr.t
let uninit () = Ptr.rw @@ Ctypes.allocate_n ~count:1 Types.inst
let category (a0 : [>`Read] Types.inst_ptr) : XBEnums.category =
Funcs.xed_inst_category (Ptr.unsafe_get a0)
let cpl (a0 : [>`Read] Types.inst_ptr) : int =
Funcs.xed_inst_cpl (Ptr.unsafe_get a0)
let extension (a0 : [>`Read] Types.inst_ptr) : XBEnums.extension =
Funcs.xed_inst_extension (Ptr.unsafe_get a0)
let flag_info_index (a0 : [>`Read] Types.inst_ptr) : Unsigned.UInt32.t =
Funcs.xed_inst_flag_info_index (Ptr.unsafe_get a0)
let get_attribute (a0 : [>`Read] Types.inst_ptr) (a1 : XBEnums.attribute) : Unsigned.UInt32.t =
Funcs.xed_inst_get_attribute (Ptr.unsafe_get a0) a1
let iclass (a0 : [>`Read] Types.inst_ptr) : XBEnums.iclass =
Funcs.xed_inst_iclass (Ptr.unsafe_get a0)
let iexception (a0 : [>`Read] Types.inst_ptr) : XBEnums.iexception =
Funcs.xed_inst_exception (Ptr.unsafe_get a0)
let iform_enum (a0 : [>`Read] Types.inst_ptr) : XBEnums.iform =
Funcs.xed_inst_iform_enum (Ptr.unsafe_get a0)
let isa_set (a0 : [>`Read] Types.inst_ptr) : XBEnums.isa_set =
Funcs.xed_inst_isa_set (Ptr.unsafe_get a0)
let noperands (a0 : [>`Read] Types.inst_ptr) : int =
Funcs.xed_inst_noperands (Ptr.unsafe_get a0)
let operand (a0 : [>`Read] Types.inst_ptr) (a1 : int) : [<`Read] Types.operand_ptr =
assert (a1 >= 0);
Funcs.xed_inst_operand (Ptr.unsafe_get a0) a1 |> Ptr.ro
end
module Operand = struct
type -'perm t = (Types.operand Ctypes.abstract) =eori : o) : in =
Funcs.xenditional_read (Ptr.unsafe_get a0)
let conditional_write (a0 : [>`Read] Types.operand_ptr) : int =
Funcs.xed_operand_conditional_write (Ptr.unsafe_get a0)
let imm (a0 : [>`Read] Types.operand_ptr) : Unsigned.UInt32.t =
Funcs.xed_operand_imm (Ptr.unsafe_get a0)
let name (a0 : [>`Read] Types.operand_ptr) : XBEnums.operand =
Funcs.xed_operand_name (Ptr.unsafe_get a0)
let nonterminal_name (a0 : [>`Read] Types.operand_ptr) : XBEnums.nonterminal =
Funcs.xed_operand_nonterminal_name (Ptr.unsafe_get a0)
let op_type (a0 : [>`Read] Types.operand_ptr) : XBEnums.operand_type =
Funcs.xed_operand_type (Ptr.unsafe_get a0)
let print (a0 : [>`Read] Types.operand_ptr) (a1 : bytes) : unit =
Funcs.xed_operand_print (Ptr.unsafe_get a0) (Ctypes.ocaml_bytes_start a1) (Bytes.length a1)
let read (a0 : [>`Read] Types.operand_ptr) : int =
Funcs.xed_operand_read (Ptr.unsafe_get a0)
let read_and_written (a0 : [>`Read] Types.operand_ptr) : int =
Funcs.xed_operand_read_and_written (Ptr.unsafe_get a0)
let read_only (a0 : [>`Read] Types.operand_ptr) : int =
Funcs.xed_operand_read_only (Ptr.unsafe_get a0)
let reg (a0 : [>`Read] Types.operand_ptr) : XBEnums.reg =
Funcs.xed_operand_reg (Ptr.unsafe_get a0)
let rw (a0 : [>`Read] Types.operand_ptr) : XBEnums.operand_action =
Funcs.xed_operand_rw (Ptr.unsafe_get a0)
let template_is_register (a0 : [>`Read] Types.operand_ptr) : int =
Funcs.xed_operand_template_is_register (Ptr.unsafe_get a0)
let visibility (a0 : [>`Read] Types.operand_ptr) : XBEnums.operand_visibility =
Funcs.xed_operand_operand_visibility (Ptr.unsafe_get a0)
let width (a0 : [>`Read] Types.operand_ptr) : XBEnums.operand_width =
Funcs.xed_operand_width (Ptr.unsafe_get a0)
let width_bits (a0 : [>`Read] Types.operand_ptr) (a1 : Unsigned.UInt32.t) : Unsigned.UInt32.t =
Funcs.xed_operand_width_bits (Ptr.unsafe_get a0) a1
let written (a0 : [>`Read] Types.operand_ptr) : int =
Funcs.xed_operand_written (Ptr.unsafe_get a0)
let written_only (a0 : [>`Read] Types.operand_ptr) : int =
Funcs.xed_operand_written_only (Ptr.unsafe_get a0)
let xtype (a0 : [>`Read] Types.operand_ptr) : XBEnums.operand_element_xtype =
Funcs.xed_operand_xtype (Ptr.unsafe_get a0)
end
module Operand3 = struct
let get_absbr (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_absbr (Ptr.unsafe_get a0)
let get_agen (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_agen (Ptr.unsafe_get a0)
let get_amd3dnow (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_amd3dnow (Ptr.unsafe_get a0)
let get_asz (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_asz (Ptr.unsafe_get a0)
let get_base0 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_base0 (Ptr.unsafe_get a0)
let get_base1 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_base1 (Ptr.unsafe_get a0)
let get_bcast (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_bcast (Ptr.unsafe_get a0)
let get_bcrc (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_bcrc (Ptr.unsafe_get a0)
let get_brdisp_width (a0 : [>`Read] Types.decoded_inst_ptr) : char =
Funcs.xed3_operand_get_brdisp_width (Ptr.unsafe_get a0)
let get_cet (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_cet (Ptr.unsafe_get a0)
let get_chip (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.chip =
Funcs.xed3_operand_get_chip (Ptr.unsafe_get a0)
let get_cldemote (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_cldemote (Ptr.unsafe_get a0)
let get_default_seg (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_default_seg (Ptr.unsafe_get a0)
let get_df32 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_df32 (Ptr.unsafe_get a0)
let get_df64 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_df64 (Ptr.unsafe_get a0)
let get_disp (a0 : [>`Read] Types.decoded_inst_ptr) : Signed.Int64.t =
Funcs.xed3_operand_get_disp (Ptr.unsafe_get a0)
let get_disp_width (a0 : [>`Read] Types.decoded_inst_ptr) : char =
Funcs.xed3_operand_get_disp_width (Ptr.unsafe_get a0)
let get_dummy (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_dummy (Ptr.unsafe_get a0)
let get_easz (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_easz (Ptr.unsafe_get a0)
let get_element_size (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_element_size (Ptr.unsafe_get a0)
let get_encode_force (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_encode_force (Ptr.unsafe_get a0)
let get_encoder_preferred (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_encoder_preferred (Ptr.unsafe_get a0)
let get_eosz (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_eosz (Ptr.unsafe_get a0)
let get_error (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.error =
Funcs.xed3_operand_get_error (Ptr.unsafe_get a0)
let get_esrc (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_esrc (Ptr.unsafe_get a0)
let get_evvspace (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_evvspace (Ptr.unsafe_get a0)
let get_first_f2f3 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_first_f2f3 (Ptr.unsafe_get a0)
let get_has_egpr (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_has_egpr (Ptr.unsafe_get a0)
let get_has_modrm (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_has_modrm (Ptr.unsafe_get a0)
let get_has_sib (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_has_sib (Ptr.unsafe_get a0)
let get_hint (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_hint (Ptr.unsafe_get a0)
let get_iclass (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.iclass =
Funcs.xed3_operand_get_iclass (Ptr.unsafe_get a0)
let get_ild_f2 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_ild_f2 (Ptr.unsafe_get a0)
let get_ild_f3 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_ild_f3 (Ptr.unsafe_get a0)
let get_ild_seg (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_ild_seg (Ptr.unsafe_get a0)
let get_imm0 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_imm0 (Ptr.unsafe_get a0)
let get_imm0signed (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_imm0signed (Ptr.unsafe_get a0)
let get_imm1 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_imm1 (Ptr.unsafe_get a0)
let get_imm1_bytes (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_imm1_bytes (Ptr.unsafe_get a0)
let get_imm_width (a0 : [>`Read] Types.decoded_inst_ptr) : char =
Funcs.xed3_operand_get_imm_width (Ptr.unsafe_get a0)
let get_index (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_index (Ptr.unsafe_get a0)
let get_last_f2f3 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_last_f2f3 (Ptr.unsafe_get a0)
let get_llrc (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_llrc (Ptr.unsafe_get a0)
let get_lock (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_lock (Ptr.unsafe_get a0)
let get_lzcnt (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_lzcnt (Ptr.unsafe_get a0)
let get_map (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_map (Ptr.unsafe_get a0)
let get_mask (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_mask (Ptr.unsafe_get a0)
let get_max_bytes (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_max_bytes (Ptr.unsafe_get a0)
let get_mem0 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_mem0 (Ptr.unsafe_get a0)
let get_mem1 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_mem1 (Ptr.unsafe_get a0)
let get_mem_width (a0 : [>`Read] Types.decoded_inst_ptr) : Unsigned.UInt16.t =
Funcs.xed3_operand_get_mem_width (Ptr.unsafe_get a0)
let get_mod (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_mod (Ptr_
let get_mode (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_mode (Ptr.unsafe_get a0)
let get_mode_first_prefix (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_mode_first_prefix (Ptr.unsafe_get a0)
let get_mode_short_ud0 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_mode_short_ud0 (Ptr.unsafe_get a0)
let get_modep5 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_modep5 (Ptr.unsafe_get a0)
let get_modep55c (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_modep55c (Ptr.unsafe_get a0)
let get_modrm_byte (a0 : [>`Read]_ptr) : int =
Funcs.xed3_operand_get_modrm_byte (Ptr.unsafe_get a0)
let get_mpxmode (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_mpxmode (Ptr.unsafe_get a0)
let get_must_use_evex (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_must_use_evex (Ptr.unsafe_get a0)
let get_nd (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_nd (Ptr.unsafe_get a0)
let get_need_memdisp (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_need_memdisp (Ptr.unsafe_get a0)
let get_need_sib (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_need_sib (Ptr.unsafe_get a0)
let get_needrex (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_needrex (Ptr.unsafe_get a0)
let get_nelem (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_nelem (Ptr.unsafe_get a0)
let get_nf (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_nf (Ptr.unsafe_get a0)
let get_no_apx (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_no_apx (Ptr.unsafe_get a0)
let get_no_evex (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_no_evex (Ptr.unsafe_get a0)
let get_no_vex (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_no_vex (Ptr.unsafe_get a0)
let get_nominal_opcode (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_nominal_opcode (Ptr.unsafe_get a0)
let get_norex (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_norex (Ptr.unsafe_get a0)
let get_norex2 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_norex2 (Ptr.unsafe_get a0)
let get_nprefixes (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_nprefixes (Ptr.unsafe_get a0)
let get_nrexes (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_nrexes (Ptr.unsafe_get a0)
let get_nseg_prefixes (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_nseg_prefixes (Ptr.unsafe_get a0)
let get_osz (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_osz (Ptr.unsafe_get a0)
let get_out_of_bytes (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_out_of_bytes (Ptr.unsafe_get a0)
let get_outreg (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_outreg (Ptr.unsafe_get a0)
let get_p4 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_p4 (Ptr.unsafe_get a0)
let get_pos_disp (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_pos_disp (Ptr.unsafe_get a0)
let get_pos_imm (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_pos_imm (Ptr.unsafe_get a0)
let get_pos_imm1 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_pos_imm1 (Ptr.unsafe_get a0)
let get_pos_modrm (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_pos_modrm (Ptr.unsafe_get a0)
let get_pos_nominal_opcode (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_pos_nominal_opcode (Ptr.unsafe_get a0)
let get_pos_sib (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_pos_sib (Ptr.unsafe_get a0)
let get_prefix66 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_prefix66 (Ptr.unsafe_get a0)
let get_ptr (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_ptr (Ptr.unsafe_get a0)
let get_realmode (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_realmode (Ptr.unsafe_get a0)
let get_reg (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_reg (Ptr.unsafe_get a0)
let get_reg0 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_reg0 (Ptr.unsafe_get a0)
let get_reg1 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_reg1 (Ptr.unsafe_get a0)
let get_reg2 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_reg2 (Ptr.unsafe_get a0)
let get_reg3 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_reg3 (Ptr.unsafe_get a0)
let get_reg4 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_reg4 (Ptr.unsafe_get a0)
let get_reg5 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_reg5 (Ptr.unsafe_get a0)
let get_reg6 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_reg6 (Ptr.unsafe_get a0)
let get_reg7 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_reg7 (Ptr.unsafe_get a0)
let get_reg8 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_reg8 (Ptr.unsafe_get a0)
let get_reg9 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_reg9 (Ptr.unsafe_get a0)
let get_relbr (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_relbr (Ptr.unsafe_get a0)
let get_rep (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_rep (Ptr.unsafe_get a0)
let get_rex (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_rex (Ptr.unsafe_get a0)
let get_rex2 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_rex2 (Ptr.unsafe_get a0)
let get_rexb (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_rexb (Ptr.unsafe_get a0)
let get_rexb4 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_rexb4 (Ptr.unsafe_get a0)
let get_rexr (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_rexr (Ptr.unsafe_get a0)
let get_rexr4 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_rexr4 (Ptr.unsafe_get a0)
let get_rexw (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_rexw (Ptr.unsafe_get a0)
let get_rexx (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_rexx (Ptr.unsafe_get a0)
let get_rexx4 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_rexx4 (Ptr.unsafe_get a0)
let get_rm (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_rm (Ptr.unsafe_get a0)
let get_roundc (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_roundc (Ptr.unsafe_get a0)
let get_sae (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_sae (Ptr.unsafe_get a0)
let get_scale (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_scale (Ptr.unsafe_get a0)
let get_scc (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_scc (Ptr.unsafe_get a0)
let get_seg0 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_seg0 (Ptr.unsafe_get a0)
let get_seg1 (a0 : [>`Read] Types.decoded_inst_ptr) : XBEnums.reg =
Funcs.xed3_operand_get_seg1 (Ptr.unsafe_get a0)
let get_seg_ovd (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_seg_ovd (Ptr.unsafe_get a0)
let get_sibbase (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_sibbase (Ptr.unsafe_get a0)
let get_sibindex (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_sibindex (Ptr.unsafe_get a0)
let get_sibscale (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_sibscale (Ptr.unsafe_get a0)
let get_skip_osz (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_skip_osz (Ptr.unsafe_get a0)
let get_smode (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_smode (Ptr.unsafe_get a0)
let get_srm (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_srm (Ptr.unsafe_get a0)
let get_tzcnt (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_tzcnt (Ptr.unsafe_get a0)
let get_ubit (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_ubit (Ptr.unsafe_get a0)
let get_uimm0 (a0 : [>`Read] Types.decoded_inst_ptr) : Unsigned.UInt64.t =
Funcs.xed3_operand_get_uimm0 (Ptr.unsafe_get a0)
let get_uimm1 (a0 : [>`Read] Types.decoded_inst_ptr) : char =
Funcs.xed3_operand_get_uimm1 (Ptr.unsafe_get a0)
let get_using_default_segment0 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_using_default_segment0 (Ptr.unsafe_get a0)
let get_using_default_segment1 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_using_default_segment1 (Ptr.unsafe_get a0)
let get_vex_c4 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_vex_c4 (Ptr.unsafe_get a0)
let get_vex_prefix (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_vex_prefix (Ptr.unsafe_get a0)
let get_vexdest210 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_vexdest210 (Ptr.unsafe_get a0)
let get_vexdest3 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_vexdest3 (Ptr.unsafe_get a0)
let get_vexdest4 (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_vexdest4 (Ptr.unsafe_get a0)
let get_vexvalid (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_vexvalid (Ptr.unsafe_get a0)
let get_vl (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_vl (Ptr.unsafe_get a0)
let get_vl_ign (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_vl_ign (Ptr.unsafe_get a0)
let get_wbnoinvd (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_wbnoinvd (Ptr.unsafe_get a0)
let get_zeroing (a0 : [>`Read] Types.decoded_inst_ptr) : int =
Funcs.xed3_operand_get_zeroing (Ptr.unsafe_get a0)
let set_absbr (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_absbr (Ptr.unsafe_get a0) a1
let set_agen (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_agen (Ptr.unsafe_get a0) a1
let set_amd3dnow (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_amd3dnow (Ptr.unsafe_get a0) a1
let set_asz (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_asz (Ptr.unsafe_get a0) a1
let set_base0 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_base0 (Ptr.unsafe_get a0) a1
let set_base1 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_base1 (Ptr.unsafe_get a0) a1
let set_bcast (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_bcast (Ptr.unsafe_get a0) a1
let set_bcrc (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_bcrc (Ptr.unsafe_get a0) a1
let set_brdisp_width (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : char) : unit =
Funcs.xed3_operand_set_brdisp_width (Ptr.unsafe_get a0) a1
let set_cet (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_cet (Ptr.unsafe_get a0) a1
let set_chip (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.chip) : unit =
Funcs.xed3_operand_set_chip (Ptr.unsafe_get a0) a1
let set_cldemote (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_cldemote (Ptr.unsafe_get a0) a1
let set_default_seg (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_default_seg (Ptr.unsafe_get a0) a1
let set_df32 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_df32 (Ptr.unsafe_get a0) a1
let set_df64 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_df64 (Ptr.unsafe_get a0) a1
let set_disp (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Signed.Int64.t) : unit =
Funcs.xed3_operand_set_disp (Ptr.unsafe_get a0) a1
let set_disp_width (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : char) : unit =
Funcs.xed3_operand_set_disp_width (Ptr.unsafe_get a0) a1
let set_dummy (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_dummy (Ptr.unsafe_get a0) a1
let set_easz (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_easz (Ptr.unsafe_get a0) a1
let set_element_size (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_element_size (Ptr.unsafe_get a0) a1
let set_encode_force (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_encode_force (Ptr.unsafe_get a0) a1
let set_encoder_preferred (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_encoder_preferred (Ptr.unsafe_get a0) a1
let set_eosz (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_eosz (Ptr.unsafe_get a0) a1
let set_error (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.error) : unit =
Funcs.xed3_operand_set_error (Ptr.unsafe_get a0) a1
let set_esrc (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_esrc (Ptr.unsafe_get a0) a1
let set_evvspace (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_evvspace (Ptr.unsafe_get a0) a1
let set_first_f2f3 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_first_f2f3 (Ptr.unsafe_get a0) a1
let set_has_egpr (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_has_egpr (Ptr.unsafe_get a0) a1
let set_has_modrm (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_has_modrm (Ptr.unsafe_get a0) a1
let set_has_sib (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_has_sib (Ptr.unsafe_get a0) a1
let set_hint (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_hint (Ptr.unsafe_get a0) a1
let set_iclass (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.iclass) : unit =
Funcs.xed3_operand_set_iclass (Ptr.unsafe_get a0) a1
let set_ild_f2 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_ild_f2 (Ptr.unsafe_get a0) a1
let set_ild_f3 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_ild_f3 (Ptr.unsafe_get a0) a1
let set_ild_seg (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_ild_seg (Ptr.unsafe_get a0) a1
let set_imm0 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_imm0 (Ptr.unsafe_get a0) a1
let set_imm0signed (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_imm0signed (Ptr.unsafe_get a0) a1
let set_imm1 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_imm1 (Ptr.unsafe_get a0) a1
let set_imm1_bytes (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_imm1_bytes (Ptr.unsafe_get a0) a1
let set_imm_width (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : char) : unit =
Funcs.xed3_operand_set_imm_width (Ptr.unsafe_get a0) a1
let set_index (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_index (Ptr.unsafe_get a0) a1
let set_last_f2f3 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_last_f2f3 (Ptr.unsafe_get a0) a1
let set_llrc (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_llrc (Ptr.unsafe_get a0) a1
let set_lock (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_lock (Ptr.unsafe_get a0) a1
let set_lzcnt (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_lzcnt (Ptr.unsafe_get a0) a1
let set_map (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_map (Ptr.unsafe_get a0) a1
let set_mask (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_mask (Ptr.unsafe_get a0) a1
let set_max_bytes (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_max_bytes (Ptr.unsafe_get a0) a1
let set_mem0 (a0 : [>`Read|`Write] Types. (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_mem0 (Ptr.unsafe_get a0) a1
let set_mem1 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_mem1 (Ptr.unsafe_get a0) a1
let set_mem_width (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Unsigned.UInt16.t) : unit =
Funcs.xed3_operand_set_mem_width (Ptr.unsafe_get a0) a1
let set_mod (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_mod (Ptr.unsafe_get a0) a1
let set_mode (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_mode (Ptr.unsafe_get a0) a1
let set_mode_first_prefix (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_mode_first_prefix (Ptr.unsafe_get a0) a1
let set_mode_short_ud0 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_mode_short_ud0 (Ptr.unsafe_get a0) a1
let set_modep5 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_modep5 (Ptr.unsafe_get a0) a1
let set_modep55c (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_modep55c (Ptr.unsafe_get a0) a1
let set_modrm_byte (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_modrm_byte (Ptr.unsafe_get a0) a1
let set_mpxmode (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_mpxmode (Ptr.unsafe_get a0) a1
let set_must_use_evex (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_must_use_evex (Ptr.unsafe_get a0) a1
let set_nd (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_nd (Ptr.unsafe_get a0) a1
let set_need_memdisp (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_need_memdisp (Ptr.unsafe_get a0) a1
let set_need_sib (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_need_sib (Ptr.unsafe_get a0) a1
let set_needrex (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_needrex (Ptr.unsafe_get a0) a1
let set_nelem (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_nelem (Ptr.unsafe_get a0) a1
let set_nf (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_nf (Ptr.unsafe_get a0) a1
let set_no_apx (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_no_apx (Ptr.unsafe_get a0) a1
let set_no_evex (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_no_evex (Ptr.unsafe_get a0) a1
let set_no_vex (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_no_vex (Ptr.unsafe_get a0) a1
let set_nominal_opcode (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_nominal_opcode (Ptr.unsafe_get a0) a1
let set_norex (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_norex (Ptr.unsafe_get a0) a1
let set_norex2 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_norex2 (Ptr.unsafe_get a0) a1
let set_nprefixes (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_nprefixes (Ptr.unsafe_get a0) a1
let set_nrexes (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_nrexes (Ptr.unsafe_get a0) a1
let set_nseg_prefixes (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_nseg_prefixes (Ptr.unsafe_get a0) a1
let set_osz (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_osz (Ptr.unsafe_get a0) a1
let set_out_of_bytes (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_out_of_bytes (Ptr.unsafe_get a0) a1
let set_outreg (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_outreg (Ptr.unsafe_get a0) a1
let set_p4 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_p4 (Ptr.unsafe_get a0) a1
let set_pos_disp (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_pos_disp (Ptr.unsafe_get a0) a1
let set_pos_imm (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_pos_imm (Ptr.unsafe_get a0) a1
let set_pos_imm1 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_pos_imm1 (Ptr.unsafe_get a0) a1
let set_pos_modrm (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_pos_modrm (Ptr.unsafe_get a0) a1
let set_pos_nominal_opcode (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_pos_nominal_opcode (Ptr.unsafe_get a0) a1
let set_pos_sib (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_pos_sib (Ptr.unsafe_get a0) a1
let set_prefix66 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_prefix66 (Ptr.unsafe_get a0) a1
let set_ptr (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_ptr (Ptr.unsafe_get a0) a1
let set_realmode (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_realmode (Ptr.unsafe_get a0) a1
let set_reg (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_reg (Ptr.unsafe_get a0) a1
let set_reg0 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_reg0 (Ptr.unsafe_get a0) a1
let set_reg1 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_reg1 (Ptr.unsafe_get a0) a1
let set_reg2 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_reg2 (Ptr.unsafe_get a0) a1
let set_reg3 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_reg3 (Ptr.unsafe_get a0) a1
let set_reg4 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_reg4 (Ptr.unsafe_get a0) a1
let set_reg5 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_reg5 (Ptr.unsafe_get a0) a1
let set_reg6 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_reg6 (Ptr.unsafe_get a0) a1
let set_reg7 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_reg7 (Ptr.unsafe_get a0) a1
let set_reg8 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_reg8 (Ptr.unsafe_get a0) a1
let set_reg9 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_reg9 (Ptr.unsafe_get a0) a1
let set_relbr (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_relbr (Ptr.unsafe_get a0) a1
let set_rep (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_rep (Ptr.unsafe_get a0) a1
let set_rex (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_rex (Ptr.unsafe_get a0) a1
let set_rex2 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_rex2 (Ptr.unsafe_get a0) a1
let set_rexb (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_rexb (Ptr.unsafe_get a0) a1
let set_rexb4 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_rexb4 (Ptr.unsafe_get a0) a1
let set_rexr (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_rexr (Ptr.unsafe_get a0) a1
let set_rexr4 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_rexr4 (Ptr.unsafe_get a0) a1
let set_rexw (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_rexw (Ptr.unsafe_get a0) a1
let set_rexx (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_rexx (Ptr.unsafe_get a0) a1
let set_rexx4 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_rexx4 (Ptr.unsafe_get a0) a1
let set_rm (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_rm (Ptr.unsafe_get a0) a1
let set_roundc (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_roundc (Ptr.unsafe_get a0) a1
let set_sae (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_sae (Ptr.unsafe_get a0) a1
let set_scale (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_scale (Ptr.unsafe_get a0) a1
let set_scc (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_scc (Ptr.unsafe_get a0) a1
let set_seg0 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_seg0 (Ptr.unsafe_get a0) a1
let set_seg1 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : XBEnums.reg) : unit =
Funcs.xed3_operand_set_seg1 (Ptr.unsafe_get a0) a1
let set_seg_ovd (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_seg_ovd (Ptr.unsafe_get a0) a1
let set_sibbase (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_sibbase (Ptr.unsafe_get a) a1
let set_sibindex (a0 : [`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_sibindex (Ptr.unsafe_get a0) a1
let set_sibscale (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_sibscale (Ptr.unsafe_get a0) a1
let set_skip_osz (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_skip_osz (Ptr.unsafe_get a0) a1
let set_smode (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_smode (Ptr.unsafe_get a0) a1
let set_srm (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_srm (Ptr.unsafe_get a0) a1
let set_tzcnt (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_tzcnt (Ptr.unsafe_get a0) a1
let set_ubit (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_ubit (Ptr.unsafe_get a0) a1
let set_uimm0 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : Unsigned.UInt64.t) : unit =
Funcs.xed3_operand_set_uimm0 (Ptr.unsafe_get a0) a1
let set_uimm1 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : char) : unit =
Funcs.xed3_operand_set_uimm1 (Ptr.unsafe_get a0) a1
let set_using_default_segment0 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_using_default_segment0 (Ptr.unsafe_get a0) a1
let set_using_default_segment1 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_using_default_segment1 (Ptr.unsafe_get a0) a1
let set_vex_c4 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_vex_c4 (Ptr.unsafe_get a0) a1
let set_vex_prefix (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_vex_prefix (Ptr.unsafe_get a0) a1
let set_vexdest210 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_vexdest210 (Ptr.unsafe_get a0) a1
let set_vexdest3 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_vexdest3 (Ptr.unsafe_get a0) a1
let set_vexdest4 (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_vexdest4 (Ptr.unsafe_get a0) a1
let set_vexvalid (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_vexvalid (Ptr.unsafe_get a0) a1
let set_vl (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_vl (Ptr.unsafe_get a0) a1
let set_vl_ign (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_vl_ign (Ptr.unsafe_get a0) a1
let set_wbnoinvd (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_wbnoinvd (Ptr.unsafe_get a0) a1
let set_zeroing (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed3_operand_set_zeroing (Ptr.unsafe_get a0) a1
end
module OperandValues = struct
type -'perm t = (Types.operand_values Ctypes.abstract, 'perm) Ptr.t
let uninit () = Ptr.rw @@ Ctypes.allocate_n ~count:1 Types.operand_values
let accesses_memory (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_accesses_memory (Ptr.unsafe_get a0)
let branch_not_taken_hint (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_branch_not_taken_hint (Ptr.unsafe_get a0)
let branch_taken_hint (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_branch_taken_hint (Ptr.unsafe_get a0)
let cet_no_track (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_cet_no_track (Ptr.unsafe_get a0)
let clear_rep (a0 : [>`Read|`Write] Types.operand_values_ptr) : unit =
Funcs.xed_operand_values_clear_rep (Ptr.unsafe_get a0)
let dump (a0 : [>`Read] Types.operand_values_ptr) (a1 : bytes) : unit =
Funcs.xed_operand_values_dump (Ptr.unsafe_get a0) (Ctypes.ocaml_bytes_start a1) (Bytes.length a1)
let get_atomic (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_get_atomic (Ptr.unsafe_get a0)
let get_base_reg (a0 : [>`Read] Types.operand_values_ptr) (a1 : int) : XBEnums.reg =
assert (a1 >= 0);
Funcs.xed_operand_values_get_base_reg (Ptr.unsafe_get a0) a1
let get_branch_displacement_byte (a0 : [>`Read] Types.operand_values_ptr) (a1 : int) : char =
assert (a1 >= 0);
Funcs.xed_operand_values_get_branch_displacement_byte (Ptr.unsafe_get a0) a1
let get_branch_displacement_int64 (a0 : [>`Read] Types.operand_values_ptr) : Signed.Int64.t =
Funcs.xed_operand_values_get_branch_displacement_int64 (Ptr.unsafe_get a0)
let get_branch_displacement_length (a0 : [>`Read] Types.operand_values_ptr) : Unsigned.UInt32.t =
Funcs.xed_operand_values_get_branch_displacement_length (Ptr.unsafe_get a0)
let get_branch_displacement_length_bits (a0 : [>`Read] Types.operand_values_ptr) : Unsigned.UInt32.t =
Funcs.xed_operand_values_get_branch_displacement_length_bits (Ptr.unsafe_get a0)
let get_displacement_for_memop (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_get_displacement_for_memop (Ptr.unsafe_get a0)
let get_effective_address_width (a0 : [>`Read] Types.operand_values_ptr) : Unsigned.UInt32.t =
Funcs.xed_operand_values_get_effective_address_width (Ptr.unsafe_get a0)
let get_effective_operand_width (a0 : [>`Read] Types.operand_values_ptr) : Unsigned.UInt32.t =
Funcs.xed_operand_values_get_effective_operand_width (Ptr.unsafe_get a0)
let get_iclass (a0 : [>`Read] Types.operand_values_ptr) : XBEnums.iclass =
Funcs.xed_operand_values_get_iclass (Ptr.unsafe_get a0)
let get_immediate_byte (a0 : [>`Read] Types.operand_values_ptr) (a1 : int) : char =
assert (a1 >= 0);
Funcs.xed_operand_values_get_immediate_byte (Ptr.unsafe_get a0) a1
let get_immediate_int64 (a0 : [>`Read] Types.operand_values_ptr) : Signed.Int64.t =
Funcs.xed_operand_values_get_immediate_int64 (Ptr.unsafe_get a0)
let get_immediate_is_signed (a0 : [>`Read] Types.operand_values_ptr) : int =
Funcs.xed_operand_values_get_immediate_is_signed (Ptr.unsafe_get a0)
let get_immediate_uint64 (a0 : [>`Read] Types.operand_values_ptr) : Unsigned.UInt64.t =
Funcs.xed_operand_values_get_immediate_uint64 (Ptr.unsafe_get a0)
let get_index_reg (a0 : [>`Read] Types.operand_values_ptr) (a1 : int) : XBEnums.reg =
assert (a1 >= 0);
Funcs.xed_operand_values_get_index_reg (Ptr.unsafe_get a0) a1
let get_long_mode (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_get_long_mode (Ptr.unsafe_get a0)
let get_memory_displacement_byte (a0 : [>`Read] Types.operand_values_ptr) (a1 : int) : char =
assert (a1 >= 0);
Funcs.xed_operand_values_get_memory_displacement_byte (Ptr.unsafe_get a0) a1
let get_memory_displacement_int64 (a0 : [>`Read] Types.operand_values_ptr) : Signed.Int64.t =
Funcs.xed_operand_values_get_memory_displacement_int64 (Ptr.unsafe_get a0)
let get_memory_displacement_int64_raw (a0 : [>`Read] Types.operand_values_ptr) : Signed.Int64.t =
Funcs.xed_operand_values_get_memory_displacement_int64_raw (Ptr.unsafe_get a0)
let get_memory_displacement_length (a0 : [>`Read] Types.operand_values_ptr) : Unsigned.UInt32.t =
Funcs.xed_operand_values_get_memory_displacement_length (Ptr.unsafe_get a0)
let get_memory_displacement_length_bits (a0 : [>`Read] Types.operand_values_ptr) : Unsigned.UInt32.t =
Funcs.xed_operand_values_get_memory_displacement_length_bits (Ptr.unsafe_get a0)
let get_memory_displacement_length_bits_raw (a0 : [>`Read] Types.operand_values_ptr) : Unsigned.UInt32.t =
Funcs.xed_operand_values_get_memory_displacement_length_bits_raw (Ptr.unsafe_get a0)
let get_memory_operand_length (a0 : [>`Read] Types.operand_values_ptr) (a1 : int) : int =
assert (a1 >= 0);
Funcs.xed_operand_values_get_memory_operand_length (Ptr.unsafe_get a0) a1
let get_pp_vex_prefix (a0 : [>`Read] Types.operand_values_ptr) : int =
Funcs.xed_operand_values_get_pp_vex_prefix (Ptr.unsafe_get a0)
let get_real_mode (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_get_real_mode (Ptr.unsafe_get a0)
let get_scale (a0 : [>`Read] Types.operand_values_ptr) : int =
Funcs.xed_operand_values_get_scale (Ptr.unsafe_get a0)
let get_second_immediate (a0 : [>`Read] Types.operand_values_ptr) : char =
Funcs.xed_operand_values_get_second_immediate (Ptr.unsafe_get a0)
let get_seg_reg (a0 : [>`Read] Types.operand_values_ptr) (a1 : int) : XBEnums.reg =
assert (a1 >= 0);
Funcs.xed_operand_values_get_seg_reg (Ptr.unsafe_get a0) a1
let get_stack_address_width (a0 : [>`Read] Types.operand_values_ptr) : Unsigned.UInt32.t =
Funcs.xed_operand_values_get_stack_address_width (Ptr.unsafe_get a0)
let has_66_prefix (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_66_prefix (Ptr.unsafe_get a0)
let has_address_size_prefix (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_address_size_prefix (Ptr.unsafe_get a0)
let has_branch_displacement (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_branch_displacement (Ptr.unsafe_get a0)
let has_displacement (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_displacement (Ptr.unsafe_get a0)
let has_immediate (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_immediate (Ptr.unsafe_get a0)
let has_lock_prefix (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_lock_prefix (Ptr.unsafe_get a0)
let has_memory_displacement (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_memory_displacement (Ptr.unsafe_get a0)
let has_modrm_byte (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_modrm_byte (Ptr.unsafe_get a0)
let has_operand_size_prefix (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_operand_size_prefix (Ptr.unsafe_get a0)
let has_real_rep (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_real_rep (Ptr.unsafe_get a0)
let has_rep_prefix (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_rep_prefix (Ptr.unsafe_get a0)
let has_repne_prefix (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_repne_prefix (Ptr.unsafe_get a0)
let has_rexw_prefix (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_rexw_prefix (Ptr.unsafe_get a0)
let has_segment_prefix (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_segment_prefix (Ptr.unsafe_get a0)
let has_sib_byte (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_has_sib_byte (Ptr.unsafe_get a0)
let init () : [<`Read|`Write] t =
let a0 = uninit () in
Funcs.xed_operand_values_init (Ptr.get a0);
a0
let init_keep_mode (a1 : [>`Read] Types.operand_values_ptr) : [<`Read|`Write] t =
let a0 = uninit () in
Funcs.xed_operand_values_init_keep_mode (Ptr.get a0) (Ptr.unsafe_get a1);
a0
let init_set_mode (a1 : [>`Read] Types.state_ptr) : [<`Read|`Write] t =
let a0 = uninit () in
Funcs.xed_operand_values_init_set_mode (Ptr.get a0) (Ptr.unsafe_get a1);
a0
let is_nop (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_is_nop (Ptr.unsafe_get a0)
let lockable (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_lockable (Ptr.unsafe_get a0)
let mandatory_66_prefix (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_mandatory_66_prefix (Ptr.unsafe_get a0)
let memop_without_modrm (a0 : [>`Read] Types.operand_values_ptr) : bool =
Funcs.xed_operand_values_memop_without_modrm (Ptr.unsafe_get a0)
let number_of_memory_operands (a0 : [>`Read] Types.operand_values_ptr) : int =
Funcs.xed_operand_values_number_of_memory_operands (Ptr.unsafe_get a0)
let print_short (a0 : [>`Read] Types.operand_values_ptr) (a1 : bytes) : unit =
Funcs.xed_operand_values_print_short (Ptr.unsafe_get a0) (Ctypes.ocaml_bytes_start a1) (Bytes.length a1)
let segment_prefix (a0 : [>`Read] Types.operand_values_ptr) : XBEnums.reg =
Funcs.xed_operand_values_segment_prefix (Ptr.unsafe_get a0)
let set_absbr (a0 : [>`Read|`Write] Types.operand_values_ptr) : unit =
Funcs.xed_operand_values_set_absbr (Ptr.unsafe_get a0)
let set_base_reg (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : int) (a2 : XBEnums.reg) : unit =
assert (a1 >= 0);
Funcs.xed_operand_values_set_base_reg (Ptr.unsafe_get a0) a1 a2
let set_branch_displacement (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : Signed.Int64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_operand_values_set_branch_displacement (Ptr.unsafe_get a0) a1 a2
let set_branch_displacement_bits (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : Signed.Int64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_operand_values_set_branch_displacement_bits (Ptr.unsafe_get a0) a1 a2
let set_effective_address_width (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed_operand_values_set_effective_address_width (Ptr.unsafe_get a0) a1
let set_effective_operand_width (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed_operand_values_set_effective_operand_width (Ptr.unsafe_get a0) a1
let set_iclass (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : XBEnums.iclass) : unit =
Funcs.xed_operand_values_set_iclass (Ptr.unsafe_get a0) a1
let set_immediate_signed (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : Signed.Int32.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_operand_values_set_immediate_signed (Ptr.unsafe_get a0) a1 a2
let set_immediate_signed_bits (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : Signed.Int32.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_operand_values_set_immediate_signed_bits (Ptr.unsafe_get a0) a1 a2
let set_immediate_unsigned (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : Unsigned.UInt64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_operand_values_set_immediate_unsigned (Ptr.unsafe_get a0) a1 a2
let set_immediate_unsigned_bits (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : Unsigned.UInt64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_operand_values_set_immediate_unsigned_bits (Ptr.unsafe_get a0) a1 a2
let set_index_reg (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : int) (a2 : XBEnums.reg) : unit =
assert (a1 >= 0);
Funcs.xed_operand_values_set_index_reg (Ptr.unsafe_get a0) a1 a2
let set_lock (a0 : [>`Read|`Write] Types.operand_values_ptr) : unit =
Funcs.xed_operand_values_set_lock (Ptr.unsafe_get a0)
let set_memory_displacement (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : Signed.Int64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_operand_values_set_memory_displacement (Ptr.unsafe_get a0) a1 a2
let set_memory_displacement_bits (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : Signed.Int64.t) (a2 : int) : unit =
assert (a2 >= 0);
Funcs.xed_operand_values_set_memory_displacement_bits (Ptr.unsafe_get a0) a1 a2
let set_memory_operand_length (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed_operand_values_set_memory_operand_length (Ptr.unsafe_get a0) a1
let set_mode (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : [>`Read] Types.state_ptr) : unit =
Funcs.xed_operand_values_set_mode (Ptr.unsafe_get a0) (Ptr.unsafe_get a1)
let set_operand_reg (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : XBEnums.operand) (a2 : XBEnums.reg) : unit =
Funcs.xed_operand_values_set_operand_reg (Ptr.unsafe_get a0) a1 a2
let set_relbr (a0 : [>`Read|`Write] Types.operand_values_ptr) : unit =
Funcs.xed_operand_values_set_relbr (Ptr.unsafe_get a0)
let set_scale (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : int) (a2 : int) : unit =
assert (a1 >= 0 && a2 >= 0);
Funcs.xed_operand_values_set_scale (Ptr.unsafe_get a0) a1 a2
let set_seg_reg (a0 : [>`Read|`Write] Types.operand_values_ptr) (a1 : int) (a2 : XBEnums.reg) : unit =
assert (a1 >= 0);
Funcs.xed_operand_values_set_seg_reg (Ptr.unsafe_get a0) a1 a2
let using_default_segment (a0 : [>`Read] Types.operand_values_ptr) (a1 : int) : bool =
assert (a1 >= 0);
Funcs.xed_operand_values_using_default_segment (Ptr.unsafe_get a0) a1
let zero_branch_displacement (a0 : [>`Read|`Write] Types.operand_values_ptr) : unit =
Funcs.xed_operand_values_zero_branch_displacement (Ptr.unsafe_get a0)
let zero_immediate (a0 : [>`Read|`Write] Types.operand_values_ptr) : unit =
Funcs.xed_operand_values_zero_immediate (Ptr.unsafe_get a0)
let zero_memory_displacement (a0 : [>`Read|`Write] Types.operand_values_ptr) : unit =
Funcs.xed_operand_values_zero_memory_displacement (Ptr.unsafe_get a0)
let zero_segment_override (a0 : [>`Read|`Write] Types.operand_values_ptr) : unit =
Funcs.xed_operand_values_zero_segment_override (Ptr.unsafe_get a0)
end
module SimpleFlag = struct
type -'perm t = (Types.simple_flag Ctypes.abstract, 'perm) Ptr.t
let uninit () = Ptr.rw @@ Ctypes.allocate_n ~count:1 Types.simple_flag
let get_flag_action (a0 : [>`Read] Types.simple_flag_ptr) (a1 : int) : [<`Read] Types.flag_action_ptr =
assert (a1 >= 0);
Funcs.xed_simple_flag_get_flag_action (Ptr.unsafe_get a0) a1 |> Ptr.ro
let get_may_write (a0 : [>`Read] Types.simple_flag_ptr) : bool =
Funcs.xed_simple_flag_get_may_write (Ptr.unsafe_get a0)
let get_must_write (a0 : [>`Read] Types.simple_flag_ptr) : bool =
Funcs.xed_simple_flag_get_must_write (Ptr.unsafe_get a0)
let get_nflags (a0 : [>`Read] Types.simple_flag_ptr) : int =
Funcs.xed_simple_flag_get_nflags (Ptr.unsafe_get a0)
let get_read_flag_set (a0 : [>`Read] Types.simple_flag_ptr) : [<`Read] Types.flag_set_ptr =
Funcs.xed_simple_flag_get_read_flag_set (Ptr.unsafe_get a0) |> Ptr.ro
let get_undefined_flag_set (a0 : [>`Read] Types.simple_flag_ptr) : [<`Read] Types.flag_set_ptr =
Funcs.xed_simple_flag_get_undefined_flag_set (Ptr.unsafe_get a0) |> Ptr.ro
let get_written_flag_set (a0 : [>`Read] Types.simple_flag_ptr) : [<`Read] Types.flag_set_ptr =
Funcs.xed_simple_flag_get_written_flag_set (Ptr.unsafe_get a0) |> Ptr.ro
let print (a0 : [>`Read] Types.simple_flag_ptr) (a1 : bytes) : int =
Funcs.xed_simple_flag_print (Ptr.unsafe_get a0) (Ctypes.ocaml_bytes_start a1) (Bytes.length a1)
let reads_flags (a0 : [>`Read] Types.simple_flag_ptr) : bool =
Funcs.xed_simple_flag_reads_flags (Ptr.unsafe_get a0)
let writes_flags (a0 : [>`Read] Types.simple_flag_ptr) : bool =
Funcs.xed_simple_flag_writes_flags (Ptr.unsafe_get a0)
end
module State = struct
type -'perm t = (Types.state Ctypes.abstract, 'perm) Ptr.t
let uninit () = Ptr.rw @@ Ctypes.allocate_n ~count:1 Types.state
let get_address_width (a0 : [>`Read] Types.state_ptr) : XBEnums.address_width =
Funcs.xed_state_get_address_width (Ptr.unsafe_get a0)
let get_machine_mode (a0 : [>`Read] Types.state_ptr) : XBEnums.machine_mode =
Funcs.xed_state_get_machine_mode (Ptr.unsafe_get a0)
let get_stack_address_width (a0 : [>`Read] Types.state_ptr) : XBEnums.address_width =
Funcs.xed_state_get_stack_address_width (Ptr.unsafe_get a0)
let init (a1 : XBEnums.machine_mode) (a2 : XBEnums.address_width) (a3 : XBEnums.address_width) : [<`Read|`Write] t =
let a0 = uninit () in
Funcs.xed_state_init (Ptr.get a0) a1 a2 a3;
a0
let init2 (a1 : XBEnums.machine_mode) (a2 : XBEnums.address_width) : [<`Read|`Write] t =
let a0 = uninit () in
Funcs.xed_state_init2 (Ptr.get a0) a1 a2;
a0
let long64_mode (a0 : [>`Read] Types.state_ptr) : bool =
Funcs.xed_state_long64_mode (Ptr.unsafe_get a0)
let mode_width_16 (a0 : [>`Read] Types.state_ptr) : bool =
Funcs.xed_state_mode_width_16 (Ptr.unsafe_get a0)
let mode_width_32 (a0 : [>`Read] Types.state_ptr) : bool =
Funcs.xed_state_mode_width_32 (Ptr.unsafe_get a0)
let print (a0 : [>`Read] Types.state_ptr) (a1 : bytes) : int =
Funcs.xed_state_print (Ptr.unsafe_get a0) (Ctypes.ocaml_bytes_start a1) (Bytes.length a1)
let real_mode (a0 : [>`Read] Types.state_ptr) : bool =
Funcs.xed_state_real_mode (Ptr.unsafe_get a0)
let set_machine_mode (a0 : [>`Read|`Write] Types.state_ptr) (a1 : XBEnums.machine_mode) : unit =
Funcs.xed_state_set_machine_mode (Ptr.unsafe_get a0) a1
let set_stack_address_width (a0 : [>`Read|`Write] Types.state_ptr) (a1 : XBEnums.address_width) : unit =
Funcs.xed_state_set_stack_address_width (Ptr.unsafe_get a0) a1
let zero (a0 : [>`Read|`Write] Types.state_ptr) : unit =
Funcs.xed_state_zero (Ptr.unsafe_get a0)
end
module Constants = struct
let emit_messages = 0
let enc_groups = 567
let encode_fb_values_table_size = 9834
let encode_max_emit_patterns = 226
let encode_max_fb_patterns = 164
let encode_max_iforms = 10263
let encode_order_max_entries = 37
let encode_order_max_operands = 5
let encoder_operands_max = 8
let feature_vector_max = 6
let iclass_name_str_max = 176
let info2_verbose = 0
let info_verbose = 0
let max_attribute_count = 104
let max_convert_patterns = 7
let max_cpuid_groups_per_isa_set = 2
let max_cpuid_recs_per_group = 4
let max_decorations_per_operand = 3
let max_displacement_bytes = 8
let max_global_flag_actions = 492
let max_iforms_per_iclass = 48
let max_immediate_bytes = 8
let max_inst_table_nodes = 10235
let max_instruction_bytes = 15
let max_map_evex = 7
let max_map_vex = 7
let max_operand_sequences = 10112
let max_operand_table_nodes = 1679
let max_required_attributes = 262
let max_required_complex_flags_entries = 149
let max_required_simple_flags_entries = 101
let more_verbose = 0
let verbose = 0
let very_verbose = 0
end
module Enum = struct
include XBEnums
let address_width_of_string (a0 : string) : XBEnums.address_width =
Funcs.str2xed_address_width_enum_t a0
let address_width_to_string (a0 : XBEnums.address_width) : string =
Funcs.xed_address_width_enum_t2str a0
let attribute_of_string (a0 : string) : XBEnums.attribute =
Funcs.str2xed_attribute_enum_t a0
let attribute_to_string (a0 : XBEnums.attribute) : string =
Funcs.xed_attribute_enum_t2str a0
let category_of_string (a0 : string) : XBEnums.category =
Funcs.str2xed_category_enum_t a0
let category_to_string (a0 : XBEnums.category) : string =
Funcs.xed_category_enum_t2str a0
let chip_of_string (a0 : string) : XBEnums.chip =
Funcs.str2xed_chip_enum_t a0
let chip_to_string (a0 : XBEnums.chip) : string =
Funcs.xed_chip_enum_t2str a0
let cpuid_group_of_string (a0 : string) : XBEnums.cpuid_group =
Funcs.str2xed_cpuid_group_enum_t a0
let cpuid_group_to_string (a0 : XBEnums.cpuid_group) : string =
Funcs.xed_cpuid_group_enum_t2str a0
let cpuid_rec_of_string (a0 : string) : XBEnums.cpuid_rec =
Funcs.str2xed_cpuid_rec_enum_t a0
let cpuid_rec_to_string (a0 : XBEnums.cpuid_rec) : string =
Funcs.xed_cpuid_rec_enum_t2str a0
let error_of_string (a0 : string) : XBEnums.error =
Funcs.str2xed_error_enum_t a0
let error_to_string (a0 : XBEnums.error) : string =
Funcs.xed_error_enum_t2str a0
let exception_of_string (a0 : string) : XBEnums.iexception =
Funcs.str2xed_exception_enum_t a0
let exception_to_string (a0 : XBEnums.iexception) : string =
Funcs.xed_exception_enum_t2str a0
let extension_of_string (a0 : string) : XBEnums.extension =
Funcs.str2xed_extension_enum_t a0
let extension_to_string (a0 : XBEnums.extension) : string =
Funcs.xed_extension_enum_t2str a0
let flag_action_of_string (a0 : string) : XBEnums.flag_action =
Funcs.str2xed_flag_action_enum_t a0
let flag_action_to_string (a0 : XBEnums.flag_action) : string =
Funcs.xed_flag_action_enum_t2str a0
let flag_of_string (a0 : string) : XBEnums.flag =
Funcs.str2xed_flag_enum_t a0
let flag_to_string (a0 : XBEnums.flag) : string =
Funcs.xed_flag_enum_t2str a0
let iclass_of_string (a0 : string) : XBEnums.iclass =
Funcs.str2xed_iclass_enum_t a0
let iclass_to_string (a0 : XBEnums.iclass) : string =
Funcs.xed_iclass_enum_t2str a0
let iform_of_string (a0 : string) : XBEnums.iform =
Funcs.str2xed_iform_enum_t a0
let iform_to_string (a0 : XBEnums.iform) : string =
Funcs.xed_iform_enum_t2str a0
let isa_set_of_string (a0 : string) : XBEnums.isa_set =
Funcs.str2xed_isa_set_enum_t a0
let isa_set_to_string (a0 : XBEnums.isa_set) : string =
Funcs.xed_isa_set_enum_t2str a0
let machine_mode_of_string (a0 : string) : XBEnums.machine_mode =
Funcs.str2xed_machine_mode_enum_t a0
let machine_mode_to_string (a0 : XBEnums.machine_mode) : string =
Funcs.xed_machine_mode_enum_t2str a0
let nonterminal_of_string (a0 : string) : XBEnums.nonterminal =
Funcs.str2xed_nonterminal_enum_t a0
let nonterminal_to_string (a0 : XBEnums.nonterminal) : string =
Funcs.xed_nonterminal_enum_t2str a0
let operand_action_of_string (a0 : string) : XBEnums.operand_action =
Funcs.str2xed_operand_action_enum_t a0
let operand_action_to_string (a0 : XBEnums.operand_action) : string =
Funcs.xed_operand_action_enum_t2str a0
let operand_convert_of_string (a0 : string) : XBEnums.operand_convert =
Funcs.str2xed_operand_convert_enum_t a0
let operand_convert_to_string (a0 : XBEnums.operand_convert) : string =
Funcs.xed_operand_convert_enum_t2str a0
let operand_element_type_of_string (a0 : string) : XBEnums.operand_element_type =
Funcs.str2xed_operand_element_type_enum_t a0
let operand_element_type_to_string (a0 : XBEnums.operand_element_type) : string =
Funcs.xed_operand_element_type_enum_t2str a0
let operand_element_xtype_of_string (a0 : string) : XBEnums.operand_element_xtype =
Funcs.str2xed_operand_element_xtype_enum_t a0
let operand_element_xtype_to_string (a0 : XBEnums.operand_element_xtype) : string =
Funcs.xed_operand_element_xtype_enum_t2str a0
let operand_of_string (a0 : string) : XBEnums.operand =
Funcs.str2xed_operand_enum_t a0
let operand_to_string (a0 : XBEnums.operand) : string =
Funcs.xed_operand_enum_t2str a0
let operand_type_of_string (a0 : string) : XBEnums.operand_type =
Funcs.str2xed_operand_type_enum_t a0
let operand_type_to_string (a0 : XBEnums.operand_type) : string =
Funcs.xed_operand_type_enum_t2str a0
let operand_visibility_of_string (a0 : string) : XBEnums.operand_visibility =
Funcs.str2xed_operand_visibility_enum_t a0
let operand_visibility_to_string (a0 : XBEnums.operand_visibility) : string =
Funcs.xed_operand_visibility_enum_t2str a0
let operand_width_of_string (a0 : string) : XBEnums.operand_width =
Funcs.str2xed_operand_width_enum_t a0
let operand_width_to_string (a0 : XBEnums.operand_width) : string =
Funcs.xed_operand_width_enum_t2str a0
let reg_class_of_string (a0 : string) : XBEnums.reg_class =
Funcs.str2xed_reg_class_enum_t a0
let reg_class_to_string (a0 : XBEnums.reg_class) : string =
Funcs.xed_reg_class_enum_t2str a0
let reg_of_string (a0 : string) : XBEnums.reg =
Funcs.str2xed_reg_enum_t a0
let reg_to_string (a0 : XBEnums.reg) : string =
Funcs.xed_reg_enum_t2str a0
let syntax_of_string (a0 : string) : XBEnums.syntax =
Funcs.str2xed_syntax_enum_t a0
let syntax_to_string (a0 : XBEnums.syntax) : string =
Funcs.xed_syntax_enum_t2str a0
let cpuid_group_cpuid_rec_enum_for_group (a0 : XBEnums.cpuid_group) (a1 : int) : XBEnums.cpuid_rec =
assert (a1 >= 0);
Funcs.xed_get_cpuid_rec_enum_for_group a0 a1
let cpuid_group_enum_for_isa_set (a0 : XBEnums.isa_set) (a1 : int) : XBEnums.cpuid_group =
assert (a1 >= 0);
Funcs.xed_get_cpuid_group_enum_for_isa_set a0 a1
let flag_action_action_invalid (a0 : XBEnums.flag_action) : bool =
Funcs.xed_flag_action_action_invalid a0
let flag_action_read_action (a0 : XBEnums.flag_action) : bool =
Funcs.xed_flag_action_read_action a0
let flag_action_write_action (a0 : XBEnums.flag_action) : bool =
Funcs.xed_flag_action_write_action a0
let gpr_reg_class (a0 : XBEnums.reg) : XBEnums.reg_class =
Funcs.xed_gpr_reg_class a0
let iclass_norep_map (a0 : XBEnums.iclass) : XBEnums.iclass =
Funcs.xed_norep_map a0
let iclass_rep_map (a0 : XBEnums.iclass) : XBEnums.iclass =
Funcs.xed_rep_map a0
let iclass_rep_remove (a0 : XBEnums.iclass) : XBEnums.iclass =
Funcs.xed_rep_remove a0
let iclass_repe_map (a0 : XBEnums.iclass) : XBEnums.iclass =
Funcs.xed_repe_map a0
let iclass_repne_map (a0 : XBEnums.iclass) : XBEnums.iclass =
Funcs.xed_repne_map a0
let iform_first_per_iclass (a0 : XBEnums.iclass) : Unsigned.UInt32.t =
Funcs.xed_iform_first_per_iclass a0
let iform_max_per_iclass (a0 : XBEnums.iclass) : Unsigned.UInt32.t =
Funcs.xed_iform_max_per_iclass a0
let iform_to_category (a0 : XBEnums.iform) : XBEnums.category =
Funcs.xed_iform_to_category a0
let iform_to_extension (a0 : XBEnums.iform) : XBEnums.extension =
Funcs.xed_iform_to_extension a0
let iform_to_iclass (a0 : XBEnums.iform) : XBEnums.iclass =
Funcs.xed_iform_to_iclass a0
let iform_to_iclass_string_att (a0 : XBEnums.iform) : string =
Funcs.xed_iform_to_iclass_string_att a0
let iform_to_iclass_string_intel (a0 : XBEnums.iform) : string =
Funcs.xed_iform_to_iclass_string_intel a0
let iform_to_isa_set (a0 : XBEnums.iform) : XBEnums.isa_set =
Funcs.xed_iform_to_isa_set a0
let isa_set_is_valid_for_chip (a0 : XBEnums.isa_set) (a1 : XBEnums.chip) : bool =
Funcs.xed_isa_set_is_valid_for_chip a0 a1
let largest_enclosing_register (a0 : XBEnums.reg) : XBEnums.reg =
Funcs.xed_get_largest_enclosing_register a0
let largest_enclosing_register32 (a0 : XBEnums.reg) : XBEnums.reg =
Funcs.xed_get_largest_enclosing_register32 a0
let operand_action_conditional_read (a0 : XBEnums.operand_action) : int =
Funcs.xed_operand_action_conditional_read a0
let operand_action_conditional_write (a0 : XBEnums.operand_action) : int =
Funcs.xed_operand_action_conditional_write a0
let operand_action_read (a0 : XBEnums.operand_action) : int =
Funcs.xed_operand_action_read a0
let operand_action_read_and_written (a0 : XBEnums.operand_action) : int =
Funcs.xed_operand_action_read_and_written a0
let operand_action_read_only (a0 : XBEnums.operand_action) : int =
Funcs.xed_operand_action_read_only a0
let operand_action_written (a0 : XBEnums.operand_action) : int =
Funcs.xed_operand_action_written a0
let operand_action_written_only (a0 : XBEnums.operand_action) : int =
Funcs.xed_operand_action_writte a0
let operand_is_memory_addressing_register (a0 : XBEnums.operand) : int =
Funcs.xed_operand_is_memory_addressing_register a0
let operand_is_register (a0 : XBEnums.operand) : int =
Funcs.xed_operand_is_register a0
let reg_class (a0 : XBEnums.reg) : XBEnums.reg_class =
Funcs.xed_reg_class a0
let register_width_bits (a0 : XBEnums.reg) : Unsigned.UInt32.t =
Funcs.xed_get_register_width_bits a0
let register_width_bits64 (a0 : XBEnums.reg) : Unsigned.UInt32.t =
Funcs.xed_get_register_width_bits64 a0
end
module Enc = struct
end
let xed_addr (a0 : [>`Read|`Write] Types.encoder_instruction_ptr) (a1 : int) : unit =
assert (a1 >= 0);
Funcs.xed_addr (Ptr.unsafe_get a0) a1
let xed_attribute (a0 : int) : XBEnums.attribute =
assert (a0 >= 0);
Funcs.xed_attribute a0
let xed_attribute_max () : int =
Funcs.xed_attribute_max ()
let xed_decode (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : string) : XBEnums.error =
Funcs.xed_decode (Ptr.unsafe_get a0) (Ctypes.ocaml_string_start a1) (String.length a1)
let xed_decode_with_features (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : string) (a3 : [>`Read|`Write] Types.chip_features_ptr) : XBEnums.error =
Funcs.xed_decode_with_features (Ptr.unsafe_get a0) (Ctypes.ocaml_string_start a1) (String.length a1) (Ptr.unsafe_get a3)
let xed_encode_nop (a0 : bytes) : XBEnums.error =
Funcs.xed_encode_nop (Ctypes.ocaml_bytes_start a0) (Bytes.length a0)
let xed_encode_request_print (a0 : [>`Read] Types.encoder_request_ptr) (a1 : bytes) : unit =
Funcs.xed_encode_request_print (Ptr.unsafe_get a0) (Ctypes.ocaml_bytes_start a1) (Bytes.length a1)
let xed_flag_dfv_get_default_flags_values (a0 : XBEnums.reg) (a1 : [>`Read|`Write] Types.flag_dfv_ptr) : bool =
Funcs.xed_flag_dfv_get_default_flags_values a0 (Ptr.unsafe_get a1)
let xed_get_copyright () : string =
Funcs.xed_get_copyright ()
let xed_get_version () : string =
Funcs.xed_get_version ()
let xed_ild_decode (a0 : [>`Read|`Write] Types.decoded_inst_ptr) (a1 : string) : XBEnums.error =
Funcs.xed_ild_decode (Ptr.unsafe_get a0) (Ctypes.ocaml_string_start a1) (String.length a1)
let xed_rep (a0 : [>`Read|`Write] Types.encoder_instruction_ptr) : unit =
Funcs.xed_rep (Ptr.unsafe_get a0)
let xed_repne (a0 : [>`Read|`Write] Types.encoder_instruction_ptr) : unit =
Funcs.xed_repne (Ptr.unsafe_get a0)
let xed_set_verbosity (a0 : int) : unit =
Funcs.xed_set_verbosity a0
let xed_tables_init () : unit =
Funcs.xed_tables_init ()