@@ -443,8 +443,8 @@ def : InstRW<[TSV110Wr_4cyc_1LdSt], (instrs LDRSWl)>;
443
443
def : InstRW<[TSV110Wr_4cyc_1LdSt], (instregex "^LDR(BB|HH|W|X)ui$")>;
444
444
def : InstRW<[TSV110Wr_4cyc_1LdSt], (instregex "^LDRS(BW|BX|HW|HX|W)ui$")>;
445
445
446
- def : InstRW<[TSV110Wr_4cyc_1LdSt, WriteAdr ], (instregex "^LDR(BB|HH|W|X)(post|pre)$")>;
447
- def : InstRW<[TSV110Wr_4cyc_1LdSt, WriteAdr ], (instregex "^LDRS(BW|BX|HW|HX|W)(post|pre)$")>;
446
+ def : InstRW<[WriteAdr, TSV110Wr_4cyc_1LdSt ], (instregex "^LDR(BB|HH|W|X)(post|pre)$")>;
447
+ def : InstRW<[WriteAdr, TSV110Wr_4cyc_1LdSt ], (instregex "^LDRS(BW|BX|HW|HX|W)(post|pre)$")>;
448
448
449
449
def : InstRW<[TSV110Wr_4cyc_1LdSt], (instregex "^LDTR(B|H|W|X)i$")>;
450
450
def : InstRW<[TSV110Wr_4cyc_1LdSt], (instregex "^LDUR(BB|HH|W|X)i$")>;
@@ -453,11 +453,11 @@ def : InstRW<[TSV110Wr_4cyc_1LdSt], (instregex "^LDURS(BW|BX|HW|HX|W)i$")>;
453
453
454
454
def : InstRW<[TSV110Wr_4cyc_1LdSt, WriteLDHi], (instregex "^LDNP(W|X)i$")>;
455
455
def : InstRW<[TSV110Wr_4cyc_1LdSt, WriteLDHi], (instregex "^LDP(W|X)i$")>;
456
- def : InstRW<[TSV110Wr_4cyc_1LdSt_1ALUAB, WriteLDHi, WriteAdr ],(instregex "^LDP(W|X)(post|pre)$")>;
456
+ def : InstRW<[WriteAdr, TSV110Wr_4cyc_1LdSt_1ALUAB, WriteLDHi ],(instregex "^LDP(W|X)(post|pre)$")>;
457
457
458
458
def : InstRW<[TSV110Wr_4cyc_1LdSt, WriteLDHi], (instrs LDPSWi)>;
459
- def : InstRW<[TSV110Wr_4cyc_1LdSt, WriteLDHi, WriteAdr ], (instrs LDPSWpost)>;
460
- def : InstRW<[TSV110Wr_4cyc_1LdSt, WriteLDHi, WriteAdr ], (instrs LDPSWpre)>;
459
+ def : InstRW<[WriteAdr, TSV110Wr_4cyc_1LdSt, WriteLDHi ], (instrs LDPSWpost)>;
460
+ def : InstRW<[WriteAdr, TSV110Wr_4cyc_1LdSt, WriteLDHi ], (instrs LDPSWpre)>;
461
461
462
462
def : InstRW<[TSV110Wr_4cyc_1LdSt], (instrs PRFMl)>;
463
463
def : InstRW<[TSV110Wr_4cyc_1LdSt], (instrs PRFUMi)>;
@@ -469,13 +469,13 @@ def : InstRW<[TSV110Wr_4cyc_1LdSt], (instregex "^PRFMro(W|X)$")>;
469
469
// -----------------------------------------------------------------------------
470
470
471
471
def : InstRW<[TSV110Wr_1cyc_1LdSt], (instregex "^STN?P(W|X)i$")>;
472
- def : InstRW<[TSV110Wr_1cyc_1LdSt, WriteAdr ], (instregex "^STP(W|X)(post|pre)$")>;
472
+ def : InstRW<[WriteAdr, TSV110Wr_1cyc_1LdSt ], (instregex "^STP(W|X)(post|pre)$")>;
473
473
def : InstRW<[TSV110Wr_1cyc_1LdSt], (instregex "^STUR(BB|HH|W|X)i$")>;
474
474
def : InstRW<[TSV110Wr_1cyc_1LdSt], (instregex "^STTR(B|H|W|X)i$")>;
475
475
def : InstRW<[TSV110Wr_1cyc_1LdSt], (instregex "^STR(BB|HH|W|X)ui$")>;
476
476
477
- def : InstRW<[TSV110Wr_1cyc_1LdSt, WriteAdr ], (instregex "^STR(BB|HH|W|X)(post|pre)$")>;
478
- def : InstRW<[TSV110Wr_1cyc_1LdSt, WriteAdr ], (instregex "^STR(BB|HH|W|X)ro(W|X)$")>;
477
+ def : InstRW<[WriteAdr, TSV110Wr_1cyc_1LdSt ], (instregex "^STR(BB|HH|W|X)(post|pre)$")>;
478
+ def : InstRW<[WriteAdr, TSV110Wr_1cyc_1LdSt ], (instregex "^STR(BB|HH|W|X)ro(W|X)$")>;
479
479
480
480
481
481
// FP Data Processing Instructions
@@ -524,11 +524,11 @@ def : InstRW<[TSV110Wr_2cyc_1F], (instregex "^FMOV[SD][ir]$")>;
524
524
525
525
def : InstRW<[TSV110Wr_5cyc_1LdSt], (instregex "^LDR[DSQ]l")>;
526
526
def : InstRW<[TSV110Wr_5cyc_1LdSt], (instregex "^LDUR[BDHSQ]i")>;
527
- def : InstRW<[TSV110Wr_5cyc_1LdSt, WriteAdr ], (instregex "^LDR[BDHSQ](post|pre)")>;
527
+ def : InstRW<[WriteAdr, TSV110Wr_5cyc_1LdSt ], (instregex "^LDR[BDHSQ](post|pre)")>;
528
528
def : InstRW<[TSV110Wr_5cyc_1LdSt], (instregex "^LDR[BDHSQ]ui")>;
529
529
def : InstRW<[TSV110Wr_6cyc_1LdSt_1ALUAB, ReadAdrBase], (instregex "^LDR(Q|D|H|S|B)ro(W|X)$")>;
530
530
def : InstRW<[TSV110Wr_5cyc_1LdSt, WriteLDHi], (instregex "^LDN?P[DQS]i")>;
531
- def : InstRW<[TSV110Wr_5cyc_1LdSt, WriteLDHi, WriteAdr ], (instregex "^LDP[DQS](post|pre)")>;
531
+ def : InstRW<[WriteAdr, TSV110Wr_5cyc_1LdSt, WriteLDHi ], (instregex "^LDP[DQS](post|pre)")>;
532
532
533
533
534
534
// FP Store Instructions
@@ -539,7 +539,7 @@ def : InstRW<[TSV110Wr_1cyc_1LdSt_1ALUAB, ReadAdrBase], (instregex "^STR[BHSDQ](
539
539
def : InstRW<[TSV110Wr_1cyc_1LdSt], (instregex "^STR[BHSDQ]ui")>;
540
540
def : InstRW<[TSV110Wr_2cyc_1LdSt_1ALUAB, ReadAdrBase], (instregex "^STR[BHSDQ]ro[WX]")>;
541
541
def : InstRW<[TSV110Wr_2cyc_2LdSt], (instregex "^STN?P[SDQ]i")>;
542
- def : InstRW<[TSV110Wr_2cyc_2LdSt, WriteAdr ], (instregex "^STP[SDQ](post|pre)")>;
542
+ def : InstRW<[WriteAdr, TSV110Wr_2cyc_2LdSt ], (instregex "^STP[SDQ](post|pre)")>;
543
543
544
544
545
545
// ASIMD Integer Instructions
@@ -704,70 +704,70 @@ def : InstRW<[TSV110Wr_3cyc_1F], (instregex "^[FU](RECP|RSQRT)(E|X)v")>;
704
704
// -----------------------------------------------------------------------------
705
705
706
706
def : InstRW<[TSV110Wr_7cyc_1F_1LdSt], (instregex "^LD1Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
707
- def : InstRW<[TSV110Wr_7cyc_1F_1LdSt, WriteAdr ], (instregex "^LD1Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
707
+ def : InstRW<[WriteAdr, TSV110Wr_7cyc_1F_1LdSt ], (instregex "^LD1Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
708
708
def : InstRW<[TSV110Wr_7cyc_2F_1LdSt], (instregex "^LD2Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
709
- def : InstRW<[TSV110Wr_7cyc_2F_1LdSt, WriteAdr ], (instregex "^LD2Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
709
+ def : InstRW<[WriteAdr, TSV110Wr_7cyc_2F_1LdSt ], (instregex "^LD2Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
710
710
def : InstRW<[TSV110Wr_8cyc_3F_1LdSt], (instregex "^LD3Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
711
- def : InstRW<[TSV110Wr_8cyc_3F_1LdSt, WriteAdr ], (instregex "^LD3Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
711
+ def : InstRW<[WriteAdr, TSV110Wr_8cyc_3F_1LdSt ], (instregex "^LD3Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
712
712
def : InstRW<[TSV110Wr_8cyc_3F_2LdSt], (instregex "^LD4Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
713
- def : InstRW<[TSV110Wr_8cyc_3F_2LdSt, WriteAdr ], (instregex "^LD4Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
713
+ def : InstRW<[WriteAdr, TSV110Wr_8cyc_3F_2LdSt ], (instregex "^LD4Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
714
714
715
715
def : InstRW<[TSV110Wr_7cyc_1F_1LdSt], (instregex "LD1i(8|16|32|64)$")>;
716
- def : InstRW<[TSV110Wr_7cyc_1F_1LdSt, WriteAdr ], (instregex "LD1i(8|16|32|64)_POST$")>;
716
+ def : InstRW<[WriteAdr, TSV110Wr_7cyc_1F_1LdSt ], (instregex "LD1i(8|16|32|64)_POST$")>;
717
717
def : InstRW<[TSV110Wr_7cyc_2F_1LdSt], (instregex "LD2i(8|16|32|64)$")>;
718
- def : InstRW<[TSV110Wr_7cyc_2F_1LdSt, WriteAdr ], (instregex "LD2i(8|16|32|64)_POST$")>;
718
+ def : InstRW<[WriteAdr, TSV110Wr_7cyc_2F_1LdSt ], (instregex "LD2i(8|16|32|64)_POST$")>;
719
719
def : InstRW<[TSV110Wr_8cyc_3F_1LdSt], (instregex "LD3i(8|16|32|64)$")>;
720
- def : InstRW<[TSV110Wr_8cyc_3F_1LdSt, WriteAdr ], (instregex "LD3i(8|16|32|64)_POST$")>;
720
+ def : InstRW<[WriteAdr, TSV110Wr_8cyc_3F_1LdSt ], (instregex "LD3i(8|16|32|64)_POST$")>;
721
721
def : InstRW<[TSV110Wr_8cyc_3F_2LdSt], (instregex "LD4i(8|16|32|64)$")>;
722
- def : InstRW<[TSV110Wr_8cyc_3F_2LdSt, WriteAdr ], (instregex "LD4i(8|16|32|64)_POST$")>;
722
+ def : InstRW<[WriteAdr, TSV110Wr_8cyc_3F_2LdSt ], (instregex "LD4i(8|16|32|64)_POST$")>;
723
723
724
724
def : InstRW<[TSV110Wr_5cyc_1LdSt], (instregex "^LD1Onev(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
725
- def : InstRW<[TSV110Wr_5cyc_1LdSt, WriteAdr ], (instregex "^LD1Onev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
725
+ def : InstRW<[WriteAdr, TSV110Wr_5cyc_1LdSt ], (instregex "^LD1Onev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
726
726
def : InstRW<[TSV110Wr_5cyc_1LdSt], (instregex "^LD1Twov(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
727
- def : InstRW<[TSV110Wr_5cyc_1LdSt, WriteAdr ], (instregex "^LD1Twov(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
727
+ def : InstRW<[WriteAdr, TSV110Wr_5cyc_1LdSt ], (instregex "^LD1Twov(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
728
728
def : InstRW<[TSV110Wr_6cyc_3LdSt], (instregex "^LD1Threev(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
729
- def : InstRW<[TSV110Wr_6cyc_3LdSt, WriteAdr ], (instregex "^LD1Threev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
729
+ def : InstRW<[WriteAdr, TSV110Wr_6cyc_3LdSt ], (instregex "^LD1Threev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
730
730
def : InstRW<[TSV110Wr_6cyc_2LdSt], (instregex "^LD1Fourv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
731
- def : InstRW<[TSV110Wr_6cyc_2LdSt, WriteAdr ], (instregex "^LD1Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
731
+ def : InstRW<[WriteAdr, TSV110Wr_6cyc_2LdSt ], (instregex "^LD1Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
732
732
733
733
def : InstRW<[TSV110Wr_7cyc_2F_1LdSt], (instregex "^LD2Twov(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
734
- def : InstRW<[TSV110Wr_7cyc_2F_1LdSt, WriteAdr ], (instregex "^LD2Twov(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
734
+ def : InstRW<[WriteAdr, TSV110Wr_7cyc_2F_1LdSt ], (instregex "^LD2Twov(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
735
735
736
736
def : InstRW<[TSV110Wr_8cyc_3F_1LdSt], (instregex "^LD3Threev(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
737
- def : InstRW<[TSV110Wr_8cyc_3F_1LdSt, WriteAdr ], (instregex "^LD3Threev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
737
+ def : InstRW<[WriteAdr, TSV110Wr_8cyc_3F_1LdSt ], (instregex "^LD3Threev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
738
738
739
739
def : InstRW<[TSV110Wr_10cyc_4F_4LdSt], (instregex "^LD4Fourv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
740
- def : InstRW<[TSV110Wr_10cyc_4F_4LdSt, WriteAdr ], (instregex "^LD4Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
740
+ def : InstRW<[WriteAdr, TSV110Wr_10cyc_4F_4LdSt ], (instregex "^LD4Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
741
741
742
742
743
743
// ASIMD Store Instructions
744
744
// -----------------------------------------------------------------------------
745
745
746
746
def : InstRW<[TSV110Wr_3cyc_1F], (instregex "ST1i(8|16|32|64)$")>;
747
- def : InstRW<[TSV110Wr_3cyc_1F, WriteAdr ], (instregex "ST1i(8|16|32|64)_POST$")>;
747
+ def : InstRW<[WriteAdr, TSV110Wr_3cyc_1F ], (instregex "ST1i(8|16|32|64)_POST$")>;
748
748
def : InstRW<[TSV110Wr_4cyc_1F], (instregex "ST2i(8|16|32|64)$")>;
749
- def : InstRW<[TSV110Wr_4cyc_1F, WriteAdr ], (instregex "ST2i(8|16|32|64)_POST$")>;
749
+ def : InstRW<[WriteAdr, TSV110Wr_4cyc_1F ], (instregex "ST2i(8|16|32|64)_POST$")>;
750
750
def : InstRW<[TSV110Wr_5cyc_1F], (instregex "ST3i(8|16|32|64)$")>;
751
- def : InstRW<[TSV110Wr_5cyc_1F, WriteAdr ], (instregex "ST3i(8|16|32|64)_POST$")>;
751
+ def : InstRW<[WriteAdr, TSV110Wr_5cyc_1F ], (instregex "ST3i(8|16|32|64)_POST$")>;
752
752
def : InstRW<[TSV110Wr_6cyc_1F], (instregex "ST4i(8|16|32|64)$")>;
753
- def : InstRW<[TSV110Wr_6cyc_1F, WriteAdr ], (instregex "ST4i(8|16|32|64)_POST$")>;
753
+ def : InstRW<[WriteAdr, TSV110Wr_6cyc_1F ], (instregex "ST4i(8|16|32|64)_POST$")>;
754
754
755
755
def : InstRW<[TSV110Wr_3cyc_1F], (instregex "^ST1Onev(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
756
- def : InstRW<[TSV110Wr_3cyc_1F, WriteAdr ], (instregex "^ST1Onev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
756
+ def : InstRW<[WriteAdr, TSV110Wr_3cyc_1F ], (instregex "^ST1Onev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
757
757
def : InstRW<[TSV110Wr_4cyc_1F], (instregex "^ST1Twov(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
758
- def : InstRW<[TSV110Wr_4cyc_1F, WriteAdr ], (instregex "^ST1Twov(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
758
+ def : InstRW<[WriteAdr, TSV110Wr_4cyc_1F ], (instregex "^ST1Twov(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
759
759
def : InstRW<[TSV110Wr_5cyc_1F], (instregex "^ST1Threev(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
760
- def : InstRW<[TSV110Wr_5cyc_1F, WriteAdr ], (instregex "^ST1Threev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
760
+ def : InstRW<[WriteAdr, TSV110Wr_5cyc_1F ], (instregex "^ST1Threev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
761
761
def : InstRW<[TSV110Wr_6cyc_1F], (instregex "^ST1Fourv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
762
- def : InstRW<[TSV110Wr_6cyc_1F, WriteAdr ], (instregex "^ST1Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
762
+ def : InstRW<[WriteAdr, TSV110Wr_6cyc_1F ], (instregex "^ST1Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
763
763
764
764
def : InstRW<[TSV110Wr_4cyc_1F], (instregex "^ST2Twov(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
765
- def : InstRW<[TSV110Wr_4cyc_1F, WriteAdr ], (instregex "^ST2Twov(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
765
+ def : InstRW<[WriteAdr, TSV110Wr_4cyc_1F ], (instregex "^ST2Twov(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
766
766
767
767
def : InstRW<[TSV110Wr_5cyc_1F], (instregex "^ST3Threev(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
768
- def : InstRW<[TSV110Wr_5cyc_1F, WriteAdr ], (instregex "^ST3Threev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
768
+ def : InstRW<[WriteAdr, TSV110Wr_5cyc_1F ], (instregex "^ST3Threev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
769
769
770
770
def : InstRW<[TSV110Wr_8cyc_1F], (instregex "^ST4Fourv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
771
- def : InstRW<[TSV110Wr_8cyc_1F, WriteAdr ], (instregex "^ST4Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
771
+ def : InstRW<[WriteAdr, TSV110Wr_8cyc_1F ], (instregex "^ST4Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
772
772
773
773
} // SchedModel = TSV110Model
0 commit comments