-
Notifications
You must be signed in to change notification settings - Fork 17.4k
/
tables.go
9552 lines (9549 loc) · 267 KB
/
tables.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 armasm
const (
_ Op = iota
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
ADC_EQ
ADC_NE
ADC_CS
ADC_CC
ADC_MI
ADC_PL
ADC_VS
ADC_VC
ADC_HI
ADC_LS
ADC_GE
ADC_LT
ADC_GT
ADC_LE
ADC
ADC_ZZ
ADC_S_EQ
ADC_S_NE
ADC_S_CS
ADC_S_CC
ADC_S_MI
ADC_S_PL
ADC_S_VS
ADC_S_VC
ADC_S_HI
ADC_S_LS
ADC_S_GE
ADC_S_LT
ADC_S_GT
ADC_S_LE
ADC_S
ADC_S_ZZ
ADD_EQ
ADD_NE
ADD_CS
ADD_CC
ADD_MI
ADD_PL
ADD_VS
ADD_VC
ADD_HI
ADD_LS
ADD_GE
ADD_LT
ADD_GT
ADD_LE
ADD
ADD_ZZ
ADD_S_EQ
ADD_S_NE
ADD_S_CS
ADD_S_CC
ADD_S_MI
ADD_S_PL
ADD_S_VS
ADD_S_VC
ADD_S_HI
ADD_S_LS
ADD_S_GE
ADD_S_LT
ADD_S_GT
ADD_S_LE
ADD_S
ADD_S_ZZ
AND_EQ
AND_NE
AND_CS
AND_CC
AND_MI
AND_PL
AND_VS
AND_VC
AND_HI
AND_LS
AND_GE
AND_LT
AND_GT
AND_LE
AND
AND_ZZ
AND_S_EQ
AND_S_NE
AND_S_CS
AND_S_CC
AND_S_MI
AND_S_PL
AND_S_VS
AND_S_VC
AND_S_HI
AND_S_LS
AND_S_GE
AND_S_LT
AND_S_GT
AND_S_LE
AND_S
AND_S_ZZ
ASR_EQ
ASR_NE
ASR_CS
ASR_CC
ASR_MI
ASR_PL
ASR_VS
ASR_VC
ASR_HI
ASR_LS
ASR_GE
ASR_LT
ASR_GT
ASR_LE
ASR
ASR_ZZ
ASR_S_EQ
ASR_S_NE
ASR_S_CS
ASR_S_CC
ASR_S_MI
ASR_S_PL
ASR_S_VS
ASR_S_VC
ASR_S_HI
ASR_S_LS
ASR_S_GE
ASR_S_LT
ASR_S_GT
ASR_S_LE
ASR_S
ASR_S_ZZ
B_EQ
B_NE
B_CS
B_CC
B_MI
B_PL
B_VS
B_VC
B_HI
B_LS
B_GE
B_LT
B_GT
B_LE
B
B_ZZ
BFC_EQ
BFC_NE
BFC_CS
BFC_CC
BFC_MI
BFC_PL
BFC_VS
BFC_VC
BFC_HI
BFC_LS
BFC_GE
BFC_LT
BFC_GT
BFC_LE
BFC
BFC_ZZ
BFI_EQ
BFI_NE
BFI_CS
BFI_CC
BFI_MI
BFI_PL
BFI_VS
BFI_VC
BFI_HI
BFI_LS
BFI_GE
BFI_LT
BFI_GT
BFI_LE
BFI
BFI_ZZ
BIC_EQ
BIC_NE
BIC_CS
BIC_CC
BIC_MI
BIC_PL
BIC_VS
BIC_VC
BIC_HI
BIC_LS
BIC_GE
BIC_LT
BIC_GT
BIC_LE
BIC
BIC_ZZ
BIC_S_EQ
BIC_S_NE
BIC_S_CS
BIC_S_CC
BIC_S_MI
BIC_S_PL
BIC_S_VS
BIC_S_VC
BIC_S_HI
BIC_S_LS
BIC_S_GE
BIC_S_LT
BIC_S_GT
BIC_S_LE
BIC_S
BIC_S_ZZ
BKPT_EQ
BKPT_NE
BKPT_CS
BKPT_CC
BKPT_MI
BKPT_PL
BKPT_VS
BKPT_VC
BKPT_HI
BKPT_LS
BKPT_GE
BKPT_LT
BKPT_GT
BKPT_LE
BKPT
BKPT_ZZ
BL_EQ
BL_NE
BL_CS
BL_CC
BL_MI
BL_PL
BL_VS
BL_VC
BL_HI
BL_LS
BL_GE
BL_LT
BL_GT
BL_LE
BL
BL_ZZ
BLX_EQ
BLX_NE
BLX_CS
BLX_CC
BLX_MI
BLX_PL
BLX_VS
BLX_VC
BLX_HI
BLX_LS
BLX_GE
BLX_LT
BLX_GT
BLX_LE
BLX
BLX_ZZ
BX_EQ
BX_NE
BX_CS
BX_CC
BX_MI
BX_PL
BX_VS
BX_VC
BX_HI
BX_LS
BX_GE
BX_LT
BX_GT
BX_LE
BX
BX_ZZ
BXJ_EQ
BXJ_NE
BXJ_CS
BXJ_CC
BXJ_MI
BXJ_PL
BXJ_VS
BXJ_VC
BXJ_HI
BXJ_LS
BXJ_GE
BXJ_LT
BXJ_GT
BXJ_LE
BXJ
BXJ_ZZ
CLREX
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
CLZ_EQ
CLZ_NE
CLZ_CS
CLZ_CC
CLZ_MI
CLZ_PL
CLZ_VS
CLZ_VC
CLZ_HI
CLZ_LS
CLZ_GE
CLZ_LT
CLZ_GT
CLZ_LE
CLZ
CLZ_ZZ
CMN_EQ
CMN_NE
CMN_CS
CMN_CC
CMN_MI
CMN_PL
CMN_VS
CMN_VC
CMN_HI
CMN_LS
CMN_GE
CMN_LT
CMN_GT
CMN_LE
CMN
CMN_ZZ
CMP_EQ
CMP_NE
CMP_CS
CMP_CC
CMP_MI
CMP_PL
CMP_VS
CMP_VC
CMP_HI
CMP_LS
CMP_GE
CMP_LT
CMP_GT
CMP_LE
CMP
CMP_ZZ
DBG_EQ
DBG_NE
DBG_CS
DBG_CC
DBG_MI
DBG_PL
DBG_VS
DBG_VC
DBG_HI
DBG_LS
DBG_GE
DBG_LT
DBG_GT
DBG_LE
DBG
DBG_ZZ
DMB
DSB
_
_
_
_
_
_
_
_
_
_
_
_
_
_
EOR_EQ
EOR_NE
EOR_CS
EOR_CC
EOR_MI
EOR_PL
EOR_VS
EOR_VC
EOR_HI
EOR_LS
EOR_GE
EOR_LT
EOR_GT
EOR_LE
EOR
EOR_ZZ
EOR_S_EQ
EOR_S_NE
EOR_S_CS
EOR_S_CC
EOR_S_MI
EOR_S_PL
EOR_S_VS
EOR_S_VC
EOR_S_HI
EOR_S_LS
EOR_S_GE
EOR_S_LT
EOR_S_GT
EOR_S_LE
EOR_S
EOR_S_ZZ
ISB
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
LDM_EQ
LDM_NE
LDM_CS
LDM_CC
LDM_MI
LDM_PL
LDM_VS
LDM_VC
LDM_HI
LDM_LS
LDM_GE
LDM_LT
LDM_GT
LDM_LE
LDM
LDM_ZZ
LDMDA_EQ
LDMDA_NE
LDMDA_CS
LDMDA_CC
LDMDA_MI
LDMDA_PL
LDMDA_VS
LDMDA_VC
LDMDA_HI
LDMDA_LS
LDMDA_GE
LDMDA_LT
LDMDA_GT
LDMDA_LE
LDMDA
LDMDA_ZZ
LDMDB_EQ
LDMDB_NE
LDMDB_CS
LDMDB_CC
LDMDB_MI
LDMDB_PL
LDMDB_VS
LDMDB_VC
LDMDB_HI
LDMDB_LS
LDMDB_GE
LDMDB_LT
LDMDB_GT
LDMDB_LE
LDMDB
LDMDB_ZZ
LDMIB_EQ
LDMIB_NE
LDMIB_CS
LDMIB_CC
LDMIB_MI
LDMIB_PL
LDMIB_VS
LDMIB_VC
LDMIB_HI
LDMIB_LS
LDMIB_GE
LDMIB_LT
LDMIB_GT
LDMIB_LE
LDMIB
LDMIB_ZZ
LDR_EQ
LDR_NE
LDR_CS
LDR_CC
LDR_MI
LDR_PL
LDR_VS
LDR_VC
LDR_HI
LDR_LS
LDR_GE
LDR_LT
LDR_GT
LDR_LE
LDR
LDR_ZZ
LDRB_EQ
LDRB_NE
LDRB_CS
LDRB_CC
LDRB_MI
LDRB_PL
LDRB_VS
LDRB_VC
LDRB_HI
LDRB_LS
LDRB_GE
LDRB_LT
LDRB_GT
LDRB_LE
LDRB
LDRB_ZZ
LDRBT_EQ
LDRBT_NE
LDRBT_CS
LDRBT_CC
LDRBT_MI
LDRBT_PL
LDRBT_VS
LDRBT_VC
LDRBT_HI
LDRBT_LS
LDRBT_GE
LDRBT_LT
LDRBT_GT
LDRBT_LE
LDRBT
LDRBT_ZZ
LDRD_EQ
LDRD_NE
LDRD_CS
LDRD_CC
LDRD_MI
LDRD_PL
LDRD_VS
LDRD_VC
LDRD_HI
LDRD_LS
LDRD_GE
LDRD_LT
LDRD_GT
LDRD_LE
LDRD
LDRD_ZZ
LDREX_EQ
LDREX_NE
LDREX_CS
LDREX_CC
LDREX_MI
LDREX_PL
LDREX_VS
LDREX_VC
LDREX_HI
LDREX_LS
LDREX_GE
LDREX_LT
LDREX_GT
LDREX_LE
LDREX
LDREX_ZZ
LDREXB_EQ
LDREXB_NE
LDREXB_CS
LDREXB_CC
LDREXB_MI
LDREXB_PL
LDREXB_VS
LDREXB_VC
LDREXB_HI
LDREXB_LS
LDREXB_GE
LDREXB_LT
LDREXB_GT
LDREXB_LE
LDREXB
LDREXB_ZZ
LDREXD_EQ
LDREXD_NE
LDREXD_CS
LDREXD_CC
LDREXD_MI
LDREXD_PL
LDREXD_VS
LDREXD_VC
LDREXD_HI
LDREXD_LS
LDREXD_GE
LDREXD_LT
LDREXD_GT
LDREXD_LE
LDREXD
LDREXD_ZZ
LDREXH_EQ
LDREXH_NE
LDREXH_CS
LDREXH_CC
LDREXH_MI
LDREXH_PL
LDREXH_VS
LDREXH_VC
LDREXH_HI
LDREXH_LS
LDREXH_GE
LDREXH_LT
LDREXH_GT
LDREXH_LE
LDREXH
LDREXH_ZZ
LDRH_EQ
LDRH_NE
LDRH_CS
LDRH_CC
LDRH_MI
LDRH_PL
LDRH_VS
LDRH_VC
LDRH_HI
LDRH_LS
LDRH_GE
LDRH_LT
LDRH_GT
LDRH_LE
LDRH
LDRH_ZZ
LDRHT_EQ
LDRHT_NE
LDRHT_CS
LDRHT_CC
LDRHT_MI
LDRHT_PL
LDRHT_VS
LDRHT_VC
LDRHT_HI
LDRHT_LS
LDRHT_GE
LDRHT_LT
LDRHT_GT
LDRHT_LE
LDRHT
LDRHT_ZZ
LDRSB_EQ
LDRSB_NE
LDRSB_CS
LDRSB_CC
LDRSB_MI
LDRSB_PL
LDRSB_VS
LDRSB_VC
LDRSB_HI
LDRSB_LS
LDRSB_GE
LDRSB_LT
LDRSB_GT
LDRSB_LE
LDRSB
LDRSB_ZZ
LDRSBT_EQ
LDRSBT_NE
LDRSBT_CS
LDRSBT_CC
LDRSBT_MI
LDRSBT_PL
LDRSBT_VS
LDRSBT_VC
LDRSBT_HI
LDRSBT_LS
LDRSBT_GE
LDRSBT_LT
LDRSBT_GT
LDRSBT_LE
LDRSBT
LDRSBT_ZZ
LDRSH_EQ
LDRSH_NE
LDRSH_CS
LDRSH_CC
LDRSH_MI
LDRSH_PL
LDRSH_VS
LDRSH_VC
LDRSH_HI
LDRSH_LS
LDRSH_GE
LDRSH_LT
LDRSH_GT
LDRSH_LE
LDRSH
LDRSH_ZZ
LDRSHT_EQ
LDRSHT_NE
LDRSHT_CS
LDRSHT_CC
LDRSHT_MI
LDRSHT_PL
LDRSHT_VS
LDRSHT_VC
LDRSHT_HI
LDRSHT_LS
LDRSHT_GE
LDRSHT_LT
LDRSHT_GT
LDRSHT_LE
LDRSHT
LDRSHT_ZZ
LDRT_EQ
LDRT_NE
LDRT_CS
LDRT_CC
LDRT_MI
LDRT_PL
LDRT_VS
LDRT_VC
LDRT_HI
LDRT_LS
LDRT_GE
LDRT_LT
LDRT_GT
LDRT_LE
LDRT
LDRT_ZZ
LSL_EQ
LSL_NE
LSL_CS
LSL_CC
LSL_MI
LSL_PL
LSL_VS
LSL_VC
LSL_HI
LSL_LS
LSL_GE
LSL_LT
LSL_GT
LSL_LE
LSL
LSL_ZZ
LSL_S_EQ
LSL_S_NE
LSL_S_CS
LSL_S_CC
LSL_S_MI
LSL_S_PL
LSL_S_VS
LSL_S_VC
LSL_S_HI
LSL_S_LS
LSL_S_GE
LSL_S_LT
LSL_S_GT
LSL_S_LE
LSL_S
LSL_S_ZZ
LSR_EQ
LSR_NE
LSR_CS
LSR_CC
LSR_MI
LSR_PL
LSR_VS
LSR_VC
LSR_HI
LSR_LS
LSR_GE
LSR_LT
LSR_GT
LSR_LE
LSR
LSR_ZZ
LSR_S_EQ
LSR_S_NE
LSR_S_CS
LSR_S_CC
LSR_S_MI
LSR_S_PL
LSR_S_VS
LSR_S_VC
LSR_S_HI
LSR_S_LS
LSR_S_GE
LSR_S_LT
LSR_S_GT
LSR_S_LE
LSR_S
LSR_S_ZZ
MLA_EQ
MLA_NE
MLA_CS
MLA_CC
MLA_MI
MLA_PL
MLA_VS
MLA_VC
MLA_HI
MLA_LS
MLA_GE
MLA_LT
MLA_GT
MLA_LE
MLA
MLA_ZZ
MLA_S_EQ
MLA_S_NE
MLA_S_CS
MLA_S_CC
MLA_S_MI
MLA_S_PL
MLA_S_VS
MLA_S_VC
MLA_S_HI
MLA_S_LS
MLA_S_GE
MLA_S_LT
MLA_S_GT
MLA_S_LE
MLA_S
MLA_S_ZZ
MLS_EQ
MLS_NE
MLS_CS
MLS_CC
MLS_MI
MLS_PL
MLS_VS
MLS_VC
MLS_HI
MLS_LS
MLS_GE
MLS_LT
MLS_GT
MLS_LE
MLS
MLS_ZZ
MOV_EQ
MOV_NE
MOV_CS
MOV_CC
MOV_MI
MOV_PL
MOV_VS
MOV_VC
MOV_HI
MOV_LS
MOV_GE
MOV_LT
MOV_GT
MOV_LE
MOV
MOV_ZZ
MOV_S_EQ
MOV_S_NE
MOV_S_CS
MOV_S_CC
MOV_S_MI
MOV_S_PL
MOV_S_VS
MOV_S_VC
MOV_S_HI
MOV_S_LS
MOV_S_GE
MOV_S_LT
MOV_S_GT
MOV_S_LE
MOV_S
MOV_S_ZZ
MOVT_EQ
MOVT_NE
MOVT_CS
MOVT_CC
MOVT_MI
MOVT_PL
MOVT_VS
MOVT_VC
MOVT_HI
MOVT_LS
MOVT_GE
MOVT_LT
MOVT_GT
MOVT_LE
MOVT
MOVT_ZZ
MOVW_EQ
MOVW_NE
MOVW_CS
MOVW_CC
MOVW_MI
MOVW_PL
MOVW_VS
MOVW_VC
MOVW_HI
MOVW_LS
MOVW_GE
MOVW_LT
MOVW_GT
MOVW_LE
MOVW
MOVW_ZZ
MRS_EQ
MRS_NE
MRS_CS
MRS_CC
MRS_MI
MRS_PL
MRS_VS
MRS_VC
MRS_HI
MRS_LS
MRS_GE
MRS_LT
MRS_GT
MRS_LE
MRS
MRS_ZZ
MSR_EQ
MSR_NE
MSR_CS
MSR_CC
MSR_MI
MSR_PL
MSR_VS
MSR_VC
MSR_HI
MSR_LS
MSR_GE
MSR_LT
MSR_GT
MSR_LE
MSR
MSR_ZZ
MUL_EQ
MUL_NE
MUL_CS
MUL_CC
MUL_MI
MUL_PL
MUL_VS
MUL_VC
MUL_HI
MUL_LS
MUL_GE
MUL_LT
MUL_GT
MUL_LE
MUL
MUL_ZZ
MUL_S_EQ
MUL_S_NE
MUL_S_CS
MUL_S_CC
MUL_S_MI
MUL_S_PL
MUL_S_VS
MUL_S_VC
MUL_S_HI
MUL_S_LS
MUL_S_GE
MUL_S_LT
MUL_S_GT
MUL_S_LE
MUL_S
MUL_S_ZZ
MVN_EQ
MVN_NE
MVN_CS
MVN_CC
MVN_MI