This repository has been archived by the owner on Jan 21, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
types.go
5719 lines (5488 loc) · 118 KB
/
types.go
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
package arm64
import (
"bytes"
"encoding/binary"
"errors"
"fmt"
"math"
"math/bits"
)
const MAX_OPERANDS = 5
type Operation uint32
const (
ARM64_UNDEFINED Operation = iota
ARM64_ABS
ARM64_ADC
ARM64_ADCS
ARM64_ADD
ARM64_ADDG //Added for MTE
ARM64_ADDHN
ARM64_ADDHN2
ARM64_ADDP
ARM64_ADDS
ARM64_ADDV
ARM64_ADR
ARM64_ADRP
ARM64_AESD
ARM64_AESE
ARM64_AESIMC
ARM64_AESMC
ARM64_AND
ARM64_ANDS
ARM64_ASR
ARM64_AT
ARM64_AUTDA //Added for 8.3
ARM64_AUTDB //Added for 8.3
ARM64_AUTDZA //Added for 8.3
ARM64_AUTDZB //Added for 8.3
ARM64_AUTIA //Added for 8.3
ARM64_AUTIA1716 //Added for 8.3
ARM64_AUTIASP //Added for 8.3
ARM64_AUTIAZ //Added for 8.3
ARM64_AUTIB //Added for 8.3
ARM64_AUTIB1716 //Added for 8.3
ARM64_AUTIBSP //Added for 8.3
ARM64_AUTIBZ //Added for 8.3
ARM64_AUTIZA //Added for 8.3
ARM64_AUTIZB //Added for 8.3
ARM64_B
ARM64_B_AL
ARM64_B_CC
ARM64_B_CS
ARM64_B_EQ
ARM64_BFC
ARM64_BFI
ARM64_BFM
ARM64_BFXIL
ARM64_B_GE
ARM64_B_GT
ARM64_B_HI
ARM64_BIC
ARM64_BICS
ARM64_BIF
ARM64_BIT
ARM64_BL
ARM64_B_LE
ARM64_BLR
ARM64_BLRAA
ARM64_BLRAAZ
ARM64_BLRAB
ARM64_BLRABZ
ARM64_B_HS
ARM64_B_LO
ARM64_B_LS
ARM64_B_LT
ARM64_B_MI
ARM64_B_NE
ARM64_B_NV
ARM64_B_PL
ARM64_BR
ARM64_BRAA
ARM64_BRAAZ
ARM64_BRAB
ARM64_BRABZ
ARM64_BRK
ARM64_BSL
ARM64_B_VC
ARM64_B_VS
ARM64_CASB
ARM64_CASAB
ARM64_CASALB
ARM64_CASLB
ARM64_CASH
ARM64_CASAH
ARM64_CASALH
ARM64_CASLH
ARM64_CASP
ARM64_CASPA
ARM64_CASPAL
ARM64_CASPL
ARM64_CAS
ARM64_CASA
ARM64_CASAL
ARM64_CASL
ARM64_CBNZ
ARM64_CBZ
ARM64_CCMN
ARM64_CCMP
ARM64_CINC
ARM64_CINV
ARM64_CLREX
ARM64_CLS
ARM64_CLZ
ARM64_CMEQ
ARM64_CMGE
ARM64_CMGT
ARM64_CMHI
ARM64_CMHS
ARM64_CMLE
ARM64_CMLT
ARM64_CMN
ARM64_CMP
ARM64_CMPP //Added for MTE
ARM64_CMTST
ARM64_CNEG
ARM64_CNT
ARM64_CRC32B
ARM64_CRC32CB
ARM64_CRC32CH
ARM64_CRC32CW
ARM64_CRC32CX
ARM64_CRC32H
ARM64_CRC32W
ARM64_CRC32X
ARM64_CSEL
ARM64_CSET
ARM64_CSETM
ARM64_CSINC
ARM64_CSINV
ARM64_CSNEG
ARM64_DC
ARM64_DCPS1
ARM64_DCPS2
ARM64_DCPS3
ARM64_DGH // ARMv8.6
ARM64_DMB
ARM64_DRPS
ARM64_DSB
ARM64_DUP
ARM64_EON
ARM64_EOR
ARM64_ERET
ARM64_ERETAA //Added for 8.3
ARM64_ERETAB //Added for 8.3
ARM64_ESB //Added for 8.2
ARM64_EXT
ARM64_EXTR
ARM64_FABD
ARM64_FABS
ARM64_FACGE
ARM64_FACGT
ARM64_FADD
ARM64_FADDP
ARM64_FCCMP
ARM64_FCCMPE
ARM64_FCMEQ
ARM64_FCMGE
ARM64_FCMGT
ARM64_FCMLE
ARM64_FCMLT
ARM64_FCMP
ARM64_FCMPE
ARM64_FCSEL
ARM64_FCTNS
ARM64_FCTNU
ARM64_FCVT
ARM64_FCVTAS
ARM64_FCVTAU
ARM64_FCVTL
ARM64_FCVTL2
ARM64_FCVTMS
ARM64_FCVTMU
ARM64_FCVTN
ARM64_FCVTN2
ARM64_FCVTNS
ARM64_FCVTNU
ARM64_FCVTPS
ARM64_FCVTPU
ARM64_FCVTXN
ARM64_FCVTXN2
ARM64_FCVTZS
ARM64_FCVTZU
ARM64_FDIV
ARM64_FMADD
ARM64_FMAX
ARM64_FMAXNM
ARM64_FMAXNMP
ARM64_FMAXNMV
ARM64_FMAXP
ARM64_FMAXV
ARM64_FMIN
ARM64_FMINNM
ARM64_FMINNMP
ARM64_FMINNMV
ARM64_FMINP
ARM64_FMINV
ARM64_FMLA
ARM64_FMLS
ARM64_FMOV
ARM64_FMSUB
ARM64_FMUL
ARM64_FMULX
ARM64_FNEG
ARM64_FNMADD
ARM64_FNMSUB
ARM64_FNMUL
ARM64_FRECPE
ARM64_FRECPS
ARM64_FRECPX
ARM64_FRINTA
ARM64_FRINTI
ARM64_FRINTM
ARM64_FRINTN
ARM64_FRINTP
ARM64_FRINTX
ARM64_FRINTZ
ARM64_FRSQRTE
ARM64_FRSQRTS
ARM64_FSQRT
ARM64_FSUB
ARM64_GMI //Added for MTE
ARM64_HINT
ARM64_HLT
ARM64_HVC
ARM64_IC
ARM64_INS
ARM64_IRG //Added for MTE
ARM64_ISB
ARM64_LDADDB // ARMv8.1
ARM64_LDADDAB // ARMv8.1
ARM64_LDADDALB // ARMv8.1
ARM64_LDADDLB // ARMv8.1
ARM64_LDADDH // ARMv8.1
ARM64_LDADDAH // ARMv8.1
ARM64_LDADDALH // ARMv8.1
ARM64_LDADDLH // ARMv8.1
ARM64_LDADD // ARMv8.1
ARM64_LDADDA // ARMv8.1
ARM64_LDADDAL // ARMv8.1
ARM64_LDADDL // ARMv8.1
ARM64_LD1
ARM64_LD1R
ARM64_LD2
ARM64_LD2R
ARM64_LD3
ARM64_LD3R
ARM64_LD4
ARM64_LD4R
ARM64_LDAPUR // Added for 8.4
ARM64_LDAPURB // Added for 8.4
ARM64_LDAPURH // Added for 8.4
ARM64_LDAPURSB // Added for 8.4
ARM64_LDAPURSH // Added for 8.4
ARM64_LDAPURSW // Added for 8.4
ARM64_LDAR
ARM64_LDARB
ARM64_LDARH
ARM64_LDAXP
ARM64_LDAXR
ARM64_LDAXRB
ARM64_LDAXRH
ARM64_LDCLRB // ARMv8.1
ARM64_LDCLRAB // ARMv8.1
ARM64_LDCLRALB // ARMv8.1
ARM64_LDCLRLB // ARMv8.1
ARM64_LDCLRH // ARMv8.1
ARM64_LDCLRAH // ARMv8.1
ARM64_LDCLRALH // ARMv8.1
ARM64_LDCLRLH // ARMv8.1
ARM64_LDCLR // ARMv8.1
ARM64_LDCLRA // ARMv8.1
ARM64_LDCLRAL // ARMv8.1
ARM64_LDCLRL // ARMv8.1
ARM64_LDEORB // ARMv8.1
ARM64_LDEORAB // ARMv8.1
ARM64_LDEORALB // ARMv8.1
ARM64_LDEORLB // ARMv8.1
ARM64_LDEORH // ARMv8.1
ARM64_LDEORAH // ARMv8.1
ARM64_LDEORALH // ARMv8.1
ARM64_LDEORLH // ARMv8.1
ARM64_LDEOR // ARMv8.1
ARM64_LDEORA // ARMv8.1
ARM64_LDEORAL // ARMv8.1
ARM64_LDEORL // ARMv8.1
ARM64_LDG //Added for MTE
ARM64_LDGM //Added for MTE
ARM64_LDLARB // ARMv8.1
ARM64_LDLARH // ARMv8.1
ARM64_LDLAR // ARMv8.1
ARM64_LDNP
ARM64_LDP
ARM64_LDPSW
ARM64_LDR
ARM64_LDRAA //Added for 8.3
ARM64_LDRAB //Added for 8.3
ARM64_LDRB
ARM64_LDRH
ARM64_LDRSB
ARM64_LDRSH
ARM64_LDRSW
ARM64_LDSETB // ARMv8.1
ARM64_LDSETAB // ARMv8.1
ARM64_LDSETALB // ARMv8.1
ARM64_LDSETLB // ARMv8.1
ARM64_LDSETH // ARMv8.1
ARM64_LDSETAH // ARMv8.1
ARM64_LDSETALH // ARMv8.1
ARM64_LDSETLH // ARMv8.1
ARM64_LDSET // ARMv8.1
ARM64_LDSETA // ARMv8.1
ARM64_LDSETAL // ARMv8.1
ARM64_LDSETL // ARMv8.1
ARM64_LDSMAXB // ARMv8.1
ARM64_LDSMAXAB // ARMv8.1
ARM64_LDSMAXALB // ARMv8.1
ARM64_LDSMAXLB // ARMv8.1
ARM64_LDSMAXH // ARMv8.1
ARM64_LDSMAXAH // ARMv8.1
ARM64_LDSMAXALH // ARMv8.1
ARM64_LDSMAXLH // ARMv8.1
ARM64_LDSMAX // ARMv8.1
ARM64_LDSMAXA // ARMv8.1
ARM64_LDSMAXAL // ARMv8.1
ARM64_LDSMAXL // ARMv8.1
ARM64_LDSMINB // ARMv8.1
ARM64_LDSMINAB // ARMv8.1
ARM64_LDSMINALB // ARMv8.1
ARM64_LDSMINLB // ARMv8.1
ARM64_LDSMINH // ARMv8.1
ARM64_LDSMINAH // ARMv8.1
ARM64_LDSMINALH // ARMv8.1
ARM64_LDSMINLH // ARMv8.1
ARM64_LDSMIN // ARMv8.1
ARM64_LDSMINA // ARMv8.1
ARM64_LDSMINAL // ARMv8.1
ARM64_LDSMINL // ARMv8.1
ARM64_LDTR
ARM64_LDTRB
ARM64_LDTRH
ARM64_LDTRSB
ARM64_LDTRSH
ARM64_LDTRSW
ARM64_LDUMAXB // ARMv8.1
ARM64_LDUMAXAB // ARMv8.1
ARM64_LDUMAXALB // ARMv8.1
ARM64_LDUMAXLB // ARMv8.1
ARM64_LDUMAXH // ARMv8.1
ARM64_LDUMAXAH // ARMv8.1
ARM64_LDUMAXALH // ARMv8.1
ARM64_LDUMAXLH // ARMv8.1
ARM64_LDUMAX // ARMv8.1
ARM64_LDUMAXA // ARMv8.1
ARM64_LDUMAXAL // ARMv8.1
ARM64_LDUMAXL // ARMv8.1
ARM64_LDUMINB // ARMv8.1
ARM64_LDUMINAB // ARMv8.1
ARM64_LDUMINALB // ARMv8.1
ARM64_LDUMINLB // ARMv8.1
ARM64_LDUMINH // ARMv8.1
ARM64_LDUMINAH // ARMv8.1
ARM64_LDUMINALH // ARMv8.1
ARM64_LDUMINLH // ARMv8.1
ARM64_LDUMIN // ARMv8.1
ARM64_LDUMINA // ARMv8.1
ARM64_LDUMINAL // ARMv8.1
ARM64_LDUMINL // ARMv8.1
ARM64_LDUR
ARM64_LDURB
ARM64_LDURH
ARM64_LDURSB
ARM64_LDURSH
ARM64_LDURSW
ARM64_LDXP
ARM64_LDXR
ARM64_LDXRB
ARM64_LDXRH
ARM64_LSL
ARM64_LSR
ARM64_MADD
ARM64_MLA
ARM64_MLS
ARM64_MNEG
ARM64_MOV
ARM64_MOVI
ARM64_MOVK
ARM64_MOVN
ARM64_MOVZ
ARM64_MRS
ARM64_MSR
ARM64_MSUB
ARM64_MUL
ARM64_MVN
ARM64_MVNI
ARM64_NEG
ARM64_NEGS
ARM64_NGC
ARM64_NGCS
ARM64_NOP
ARM64_NOT
ARM64_ORN
ARM64_ORR
ARM64_PACDA //Added for 8.3
ARM64_PACDB //Added for 8.3
ARM64_PACDZA //Added for 8.3
ARM64_PACDZB //Added for 8.3
ARM64_PACGA //Added for 8.3
ARM64_PACIA //Added for 8.3
ARM64_PACIA1716 //Added for 8.3
ARM64_PACIASP //Added for 8.3
ARM64_PACIAZ //Added for 8.3
ARM64_PACIB //Added for 8.3
ARM64_PACIB1716 //Added for 8.3
ARM64_PACIBSP //Added for 8.3
ARM64_PACIBZ //Added for 8.3
ARM64_PACIZA //Added for 8.3
ARM64_PACIZB //Added for 8.3
ARM64_PSSBB
ARM64_PMUL
ARM64_PMULL
ARM64_PMULL2
ARM64_PRFM
ARM64_PRFUM
ARM64_PSBCSYNC //Added for 8.2
ARM64_RADDHN
ARM64_RADDHN2
ARM64_RBIT
ARM64_RET
ARM64_RETAA //Added for 8.3
ARM64_RETAB //Added for 8.3
ARM64_REV
ARM64_REV16
ARM64_REV32
ARM64_REV64
ARM64_ROR
ARM64_RSHRN
ARM64_RSHRN2
ARM64_RSUBHN
ARM64_RSUBHN2
ARM64_SABA
ARM64_SABAL
ARM64_SABAL2
ARM64_SABD
ARM64_SABDL
ARM64_SABDL2
ARM64_SADALP
ARM64_SADDL
ARM64_SADDL2
ARM64_SADDLP
ARM64_SADDLV
ARM64_SADDW
ARM64_SADDW2
ARM64_SBC
ARM64_SBCS
ARM64_SBFIZ
ARM64_SBFM
ARM64_SBFX
ARM64_SCVTF
ARM64_SDIV
ARM64_SEV
ARM64_SEVL
ARM64_SHA1C
ARM64_SHA1H
ARM64_SHA1M
ARM64_SHA1P
ARM64_SHA1SU0
ARM64_SHA1SU1
ARM64_SHA256H
ARM64_SHA256H2
ARM64_SHA256SU0
ARM64_SHA256SU1
ARM64_SHADD
ARM64_SHL
ARM64_SHLL
ARM64_SHLL2
ARM64_SHRN
ARM64_SHRN2
ARM64_SHSUB
ARM64_SLI
ARM64_SMADDL
ARM64_SMAX
ARM64_SMAXP
ARM64_SMAXV
ARM64_SMC
ARM64_SMIN
ARM64_SMINP
ARM64_SMINV
ARM64_SMLAL
ARM64_SMLAL2
ARM64_SMLSL
ARM64_SMLSL2
ARM64_SMNEGL
ARM64_SMOV
ARM64_SMSUBL
ARM64_SMULH
ARM64_SMULL
ARM64_SMULL2
ARM64_SQABS
ARM64_SQADD
ARM64_SQDMLAL
ARM64_SQDMLAL2
ARM64_SQDMLSL
ARM64_SQDMLSL2
ARM64_SQDMULH
ARM64_SQDMULL
ARM64_SQDMULL2
ARM64_SQNEG
ARM64_SQRDMULH
ARM64_SQRSHL
ARM64_SQRSHRN
ARM64_SQRSHRN2
ARM64_SQRSHRUN
ARM64_SQRSHRUN2
ARM64_SQSHL
ARM64_SQSHLU
ARM64_SQSHRN
ARM64_SQSHRN2
ARM64_SQSHRUN
ARM64_SQSHRUN2
ARM64_SQSUB
ARM64_SQXTN
ARM64_SQXTN2
ARM64_SQXTUN
ARM64_SQXTUN2
ARM64_SRHADD
ARM64_SRI
ARM64_SRSHL
ARM64_SRSHR
ARM64_SRSRA
ARM64_SSBB
ARM64_SSHL
ARM64_SSHLL
ARM64_SSHLL2
ARM64_SSHR
ARM64_SSRA
ARM64_SSUBL
ARM64_SSUBL2
ARM64_SSUBW
ARM64_SSUBW2
ARM64_ST1
ARM64_ST2
ARM64_ST2G //Added for MTE
ARM64_ST3
ARM64_ST4
ARM64_STG //Added for MTE
ARM64_STGM //Added for MTE
ARM64_STGP //Added for MTE
ARM64_STLLRB // ARMv8.1
ARM64_STLLRH // ARMv8.1
ARM64_STLLR // ARMv8.1
ARM64_STLR
ARM64_STLRB
ARM64_STLRH
ARM64_STLUR // ARMv8.4
ARM64_STLURB // ARMv8.4
ARM64_STLURH // ARMv8.4
ARM64_STLXP
ARM64_STLXR
ARM64_STLXRB
ARM64_STLXRH
ARM64_STNP
ARM64_STP
ARM64_STR
ARM64_STRB
ARM64_STRH
ARM64_STTR
ARM64_STTRB
ARM64_STTRH
ARM64_STUR
ARM64_STURB
ARM64_STURH
ARM64_STXP
ARM64_STXR
ARM64_STXRB
ARM64_STXRH
ARM64_STZ2G //Added for MTE
ARM64_STZG //Added for MTE
ARM64_STZGM //Added for MTE
ARM64_SUB
ARM64_SUBG //Added for MTE
ARM64_SUBHN
ARM64_SUBHN2
ARM64_SUBP //Added for MTE
ARM64_SUBPS //Added for MTE
ARM64_SUBS
ARM64_SUQADD
ARM64_SVC
ARM64_SXTB
ARM64_SXTH
ARM64_SXTW
ARM64_SYS
ARM64_SYSL
ARM64_TBL
ARM64_TBNZ
ARM64_TBX
ARM64_TBZ
ARM64_TLBI
ARM64_TRN1
ARM64_TRN2
ARM64_TST
ARM64_UABA
ARM64_UABAL
ARM64_UABAL2
ARM64_UABD
ARM64_UABDL
ARM64_UABDL2
ARM64_UADALP
ARM64_UADDL
ARM64_UADDL2
ARM64_UADDLP
ARM64_UADDLV
ARM64_UADDW
ARM64_UADDW2
ARM64_UBFIZ
ARM64_UBFM
ARM64_UBFX
ARM64_UCVTF
ARM64_UDIV
ARM64_UHADD
ARM64_UHSUB
ARM64_UMADDL
ARM64_UMAX
ARM64_UMAXP
ARM64_UMAXV
ARM64_UMIN
ARM64_UMINP
ARM64_UMINV
ARM64_UMLAL
ARM64_UMLAL2
ARM64_UMLSL
ARM64_UMLSL2
ARM64_UMNEGL
ARM64_UMOV
ARM64_UMSUBL
ARM64_UMULH
ARM64_UMULL
ARM64_UMULL2
ARM64_UQADD
ARM64_UQRSHL
ARM64_UQRSHRN
ARM64_UQRSHRN2
ARM64_UQSHL
ARM64_UQSHRN
ARM64_UQSHRN2
ARM64_UQSUB
ARM64_UQXTN
ARM64_UQXTN2
ARM64_URECPE
ARM64_URHADD
ARM64_URSHL
ARM64_URSHR
ARM64_URSQRTE
ARM64_URSRA
ARM64_USHL
ARM64_USHLL
ARM64_USHLL2
ARM64_USHR
ARM64_USQADD
ARM64_USRA
ARM64_USUBL
ARM64_USUBL2
ARM64_USUBW
ARM64_USUBW2
ARM64_UXTB
ARM64_UXTH
ARM64_UZP1
ARM64_UZP2
ARM64_WFE
ARM64_WFI
ARM64_XPACD //Added for 8.3
ARM64_XPACI //Added for 8.3
ARM64_XPACLRI //Added for 8.3
ARM64_XTN
ARM64_XTN2
ARM64_YIELD
ARM64_ZIP1
ARM64_ZIP2
ARM64_BTI
AMD64_END_TYPE //Not real instruction
)
func (o Operation) String() string {
return []string{
"UNDEFINED",
"abs",
"adc",
"adcs",
"add",
"addg", //Added for MTE
"addhn",
"addhn2",
"addp",
"adds",
"addv",
"adr",
"adrp",
"aesd",
"aese",
"aesimc",
"aesmc",
"and",
"ands",
"asr",
"at",
"autda", //Added for 8.3
"autdb", //Added for 8.3
"autdza", //Added for 8.3
"autdzb", //Added for 8.3
"autia", //Added for 8.3
"autia1716", //Added for 8.3
"autiasp", //Added for 8.3
"autiaz", //Added for 8.3
"autib", //Added for 8.3
"autib1716", //Added for 8.3
"autibsp", //Added for 8.3
"autibz", //Added for 8.3
"autiza", //Added for 8.3
"autizb", //Added for 8.3
"b",
"b.al",
"b.cc",
"b.cs",
"b.eq",
"bfc",
"bfi",
"bfm",
"bfxil",
"b.ge",
"b.gt",
"b.hi",
"bic",
"bics",
"bif",
"bit",
"bl",
"b.le",
"blr",
"blraa",
"blraaz",
"blrab",
"blrabz",
"b.hs",
"b.lo",
"b.ls",
"b.lt",
"b.mi",
"b.ne",
"b.nv",
"b.pl",
"br",
"braa",
"braaz",
"brab",
"brabz",
"brk",
"bsl",
"b.vc",
"b.vs",
"casb",
"casab",
"casalb",
"caslb",
"cash",
"casah",
"casalh",
"caslh",
"casp",
"caspa",
"caspal",
"caspl",
"cas",
"casa",
"casal",
"casl",
"cbnz",
"cbz",
"ccmn",
"ccmp",
"cinc",
"cinv",
"clrex",
"cls",
"clz",
"cmeq",
"cmge",
"cmgt",
"cmhi",
"cmhs",
"cmle",
"cmlt",
"cmn",
"cmp",
"cmpp", //Added for MTE
"cmtst",
"cneg",
"cnt",
"crc32b",
"crc32cb",
"crc32ch",
"crc32cw",
"crc32cx",
"crc32h",
"crc32w",
"crc32x",
"csel",
"cset",
"csetm",
"csinc",
"csinv",
"csneg",
"dc",
"dcps1",
"dcps2",
"dcps3",
"dgh",
"dmb",
"drps",
"dsb",
"dup",
"eon",
"eor",
"eret",
"eretaa",
"eretab",
"esb", //Added for 8.2
"ext",
"extr",
"fabd",
"fabs",
"facge",
"facgt",
"fadd",
"faddp",
"fccmp",
"fccmpe",
"fcmeq",
"fcmge",
"fcmgt",
"fcmle",
"fcmlt",
"fcmp",
"fcmpe",
"fcsel",
"fctns",
"fctnu",
"fcvt",
"fcvtas",
"fcvtau",
"fcvtl",
"fcvtl2",
"fcvtms",
"fcvtmu",
"fcvtn",
"fcvtn2",
"fcvtns",
"fcvtnu",
"fcvtps",
"fcvtpu",
"fcvtxn",
"fcvtxn2",
"fcvtzs",
"fcvtzu",
"fdiv",
"fmadd",
"fmax",
"fmaxnm",
"fmaxnmp",
"fmaxnmv",
"fmaxp",
"fmaxv",
"fmin",
"fminnm",
"fminnmp",
"fminnmv",
"fminp",
"fminv",
"fmla",
"fmls",
"fmov",
"fmsub",
"fmul",
"fmulx",
"fneg",
"fnmadd",
"fnmsub",
"fnmul",
"frecpe",
"frecps",
"frecpx",
"frinta",
"frinti",
"frintm",
"frintn",
"frintp",
"frintx",
"frintz",
"frsqrte",
"frsqrts",
"fsqrt",
"fsub",
"gmi", //Added for MTE
"hint",
"hlt",
"hvc",
"ic",
"ins",
"irg", //Added for MTE
"isb",
"ldaddb", // ARMv8.1
"ldaddab", // ARMv8.1
"ldaddalb", // ARMv8.1
"ldaddlb", // ARMv8.1
"ldaddh", // ARMv8.1
"ldaddah", // ARMv8.1
"ldaddalh", // ARMv8.1
"ldaddlh", // ARMv8.1
"ldadd", // ARMv8.1
"ldadda", // ARMv8.1
"ldaddal", // ARMv8.1
"ldaddl", // ARMv8.1
"ld1",
"ld1r",
"ld2",
"ld2r",
"ld3",
"ld3r",
"ld4",
"ld4r",
"ldapur", // Added for 8.4
"ldapurb", // Added for 8.4
"ldapurh", // Added for 8.4
"ldapursb", // Added for 8.4
"ldapursh", // Added for 8.4
"ldapursw", // Added for 8.4
"ldar",
"ldarb",
"ldarh",
"ldaxp",
"ldaxr",
"ldaxrb",
"ldaxrh",
"ldclrb", // ARMv8.1
"ldclrab", // ARMv8.1
"ldclralb", // ARMv8.1
"ldclrlb", // ARMv8.1
"ldclrh", // ARMv8.1
"ldclrah", // ARMv8.1
"ldclralh", // ARMv8.1
"ldclrlh", // ARMv8.1
"ldclr", // ARMv8.1
"ldclra", // ARMv8.1
"ldclral", // ARMv8.1
"ldclrl", // ARMv8.1
"ldeorb", // ARMv8.1
"ldeorab", // ARMv8.1
"ldeoralb", // ARMv8.1
"ldeorlb", // ARMv8.1
"ldeorh", // ARMv8.1
"ldeorah", // ARMv8.1
"ldeoralh", // ARMv8.1
"ldeorlh", // ARMv8.1
"ldeor", // ARMv8.1
"ldeora", // ARMv8.1
"ldeoral", // ARMv8.1
"ldeorl", // ARMv8.1
"ldg", //Added for MTE
"ldgm", //Added for MTE
"ldlarb", // ARMv8.1
"ldlarh", // ARMv8.1
"ldlar", // ARMv8.1
"ldnp",
"ldp",
"ldpsw",
"ldr",
"ldraa",
"ldrab",
"ldrb",
"ldrh",
"ldrsb",
"ldrsh",
"ldrsw",
"ldsetb", // ARMv8.1
"ldsetab", // ARMv8.1
"ldsetalb", // ARMv8.1
"ldsetlb", // ARMv8.1