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