@@ -402,7 +402,6 @@ def C_NOP : RVInst16CI<0b000, 0b01, (outs), (ins), "c.nop", "">,
402
402
Sched<[WriteNop]> {
403
403
let rd = 0;
404
404
let imm = 0;
405
- let Inst{6-2} = 0;
406
405
}
407
406
408
407
let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in
@@ -411,7 +410,6 @@ def C_ADDI : RVInst16CI<0b000, 0b01, (outs GPRNoX0:$rd_wb),
411
410
"c.addi", "$rd, $imm">,
412
411
Sched<[WriteIALU, ReadIALU]> {
413
412
let Constraints = "$rd = $rd_wb";
414
- let Inst{6-2} = imm{4-0};
415
413
}
416
414
417
415
// Alternate syntax for c.nop. Converted to C_NOP by the assembler.
@@ -433,15 +431,12 @@ def C_ADDIW : RVInst16CI<0b001, 0b01, (outs GPRNoX0:$rd_wb),
433
431
"c.addiw", "$rd, $imm">,
434
432
Sched<[WriteIALU32, ReadIALU32]> {
435
433
let Constraints = "$rd = $rd_wb";
436
- let Inst{6-2} = imm{4-0};
437
434
}
438
435
439
436
let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in
440
437
def C_LI : RVInst16CI<0b010, 0b01, (outs GPRNoX0:$rd), (ins simm6:$imm),
441
438
"c.li", "$rd, $imm">,
442
- Sched<[WriteIALU]> {
443
- let Inst{6-2} = imm{4-0};
444
- }
439
+ Sched<[WriteIALU]>;
445
440
446
441
let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in
447
442
def C_ADDI16SP : RVInst16CI<0b011, 0b01, (outs SP:$rd_wb),
@@ -461,9 +456,7 @@ let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in
461
456
def C_LUI : RVInst16CI<0b011, 0b01, (outs GPRNoX0X2:$rd),
462
457
(ins c_lui_imm:$imm),
463
458
"c.lui", "$rd, $imm">,
464
- Sched<[WriteIALU]> {
465
- let Inst{6-2} = imm{4-0};
466
- }
459
+ Sched<[WriteIALU]>;
467
460
468
461
def C_SRLI : Shift_right<0b00, "c.srli", GPRC, uimmlog2xlennonzero>,
469
462
Sched<[WriteShiftImm, ReadShiftImm]>;
@@ -513,41 +506,35 @@ def C_SLLI : RVInst16CI<0b000, 0b10, (outs GPRNoX0:$rd_wb),
513
506
"c.slli", "$rd, $imm">,
514
507
Sched<[WriteShiftImm, ReadShiftImm]> {
515
508
let Constraints = "$rd = $rd_wb";
516
- let Inst{6-2} = imm{4-0};
517
509
}
518
510
519
511
let Predicates = [HasStdExtCOrZcd, HasStdExtD] in
520
512
def C_FLDSP : CStackLoad<0b001, "c.fldsp", FPR64, uimm9_lsb000>,
521
513
Sched<[WriteFLD64, ReadFMemBase]> {
522
- let Inst{6-5} = imm{4-3};
523
514
let Inst{4-2} = imm{8-6};
524
515
}
525
516
526
517
def C_LWSP : CStackLoad<0b010, "c.lwsp", GPRNoX0, uimm8_lsb00>,
527
518
Sched<[WriteLDW, ReadMemBase]> {
528
- let Inst{6-4} = imm{4-2};
529
519
let Inst{3-2} = imm{7-6};
530
520
}
531
521
532
522
let isCodeGenOnly = 1 in
533
523
def C_LWSP_INX : CStackLoad<0b010, "c.lwsp", GPRF32NoX0, uimm8_lsb00>,
534
524
Sched<[WriteLDW, ReadMemBase]> {
535
- let Inst{6-4} = imm{4-2};
536
525
let Inst{3-2} = imm{7-6};
537
526
}
538
527
539
528
let DecoderNamespace = "RISCV32Only_",
540
529
Predicates = [HasStdExtCOrZcfOrZce, HasStdExtF, IsRV32] in
541
530
def C_FLWSP : CStackLoad<0b011, "c.flwsp", FPR32, uimm8_lsb00>,
542
531
Sched<[WriteFLD32, ReadFMemBase]> {
543
- let Inst{6-4} = imm{4-2};
544
532
let Inst{3-2} = imm{7-6};
545
533
}
546
534
547
535
let Predicates = [HasStdExtCOrZca, IsRV64] in
548
536
def C_LDSP : CStackLoad<0b011, "c.ldsp", GPRNoX0, uimm9_lsb000>,
549
537
Sched<[WriteLDD, ReadMemBase]> {
550
- let Inst{6-5} = imm{4-3};
551
538
let Inst{4-2} = imm{8-6};
552
539
}
553
540
@@ -636,23 +623,20 @@ let Predicates = [HasStdExtCOrZca, HasRVCHints], hasSideEffects = 0, mayLoad = 0
636
623
def C_NOP_HINT : RVInst16CI<0b000, 0b01, (outs), (ins simm6nonzero:$imm),
637
624
"c.nop", "$imm">, Sched<[WriteNop]> {
638
625
let rd = 0;
639
- let Inst{6-2} = imm{4-0};
640
626
}
641
627
642
628
def C_ADDI_HINT_IMM_ZERO : RVInst16CI<0b000, 0b01, (outs GPRNoX0:$rd_wb),
643
629
(ins GPRNoX0:$rd, immzero:$imm),
644
630
"c.addi", "$rd, $imm">,
645
631
Sched<[WriteIALU, ReadIALU]> {
646
632
let Constraints = "$rd = $rd_wb";
647
- let Inst{12} = 0;
648
- let Inst{6-2} = 0;
633
+ let imm = 0;
649
634
let DecoderMethod = "decodeRVCInstrRdRs1ImmZero";
650
635
}
651
636
652
637
def C_LI_HINT : RVInst16CI<0b010, 0b01, (outs GPRX0:$rd), (ins simm6:$imm),
653
638
"c.li", "$rd, $imm">,
654
639
Sched<[WriteIALU]> {
655
- let Inst{6-2} = imm{4-0};
656
640
let Inst{11-7} = 0;
657
641
let DecoderMethod = "decodeRVCInstrRdSImm";
658
642
}
@@ -661,7 +645,6 @@ def C_LUI_HINT : RVInst16CI<0b011, 0b01, (outs GPRX0:$rd),
661
645
(ins c_lui_imm:$imm),
662
646
"c.lui", "$rd, $imm">,
663
647
Sched<[WriteIALU]> {
664
- let Inst{6-2} = imm{4-0};
665
648
let Inst{11-7} = 0;
666
649
let DecoderMethod = "decodeRVCInstrRdSImm";
667
650
}
@@ -686,7 +669,6 @@ def C_SLLI_HINT : RVInst16CI<0b000, 0b10, (outs GPRX0:$rd_wb),
686
669
"c.slli", "$rd, $imm">,
687
670
Sched<[WriteShiftImm, ReadShiftImm]> {
688
671
let Constraints = "$rd = $rd_wb";
689
- let Inst{6-2} = imm{4-0};
690
672
let Inst{11-7} = 0;
691
673
let DecoderMethod = "decodeRVCInstrRdRs1UImm";
692
674
}
@@ -695,8 +677,7 @@ def C_SLLI64_HINT : RVInst16CI<0b000, 0b10, (outs GPR:$rd_wb), (ins GPR:$rd),
695
677
"c.slli64", "$rd">,
696
678
Sched<[WriteShiftImm, ReadShiftImm]> {
697
679
let Constraints = "$rd = $rd_wb";
698
- let Inst{6-2} = 0;
699
- let Inst{12} = 0;
680
+ let imm = 0;
700
681
}
701
682
702
683
def C_SRLI64_HINT : RVInst16CB<0b100, 0b01, (outs GPRC:$rd),
0 commit comments