@@ -513,26 +513,24 @@ void RISCVInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
513
513
Register SrcReg, bool KillSrc,
514
514
bool RenamableDest, bool RenamableSrc) const {
515
515
const TargetRegisterInfo *TRI = STI.getRegisterInfo ();
516
+ unsigned KillFlag = getKillRegState (KillSrc);
516
517
517
518
if (RISCV::GPRRegClass.contains (DstReg, SrcReg)) {
518
519
BuildMI (MBB, MBBI, DL, get (RISCV::ADDI), DstReg)
519
- .addReg (SrcReg,
520
- getKillRegState (KillSrc) | getRenamableRegState (RenamableSrc))
520
+ .addReg (SrcReg, KillFlag | getRenamableRegState (RenamableSrc))
521
521
.addImm (0 );
522
522
return ;
523
523
}
524
524
525
525
if (RISCV::GPRF16RegClass.contains (DstReg, SrcReg)) {
526
526
BuildMI (MBB, MBBI, DL, get (RISCV::PseudoMV_FPR16INX), DstReg)
527
- .addReg (SrcReg,
528
- getKillRegState (KillSrc) | getRenamableRegState (RenamableSrc));
527
+ .addReg (SrcReg, KillFlag | getRenamableRegState (RenamableSrc));
529
528
return ;
530
529
}
531
530
532
531
if (RISCV::GPRF32RegClass.contains (DstReg, SrcReg)) {
533
532
BuildMI (MBB, MBBI, DL, get (RISCV::PseudoMV_FPR32INX), DstReg)
534
- .addReg (SrcReg,
535
- getKillRegState (KillSrc) | getRenamableRegState (RenamableSrc));
533
+ .addReg (SrcReg, KillFlag | getRenamableRegState (RenamableSrc));
536
534
return ;
537
535
}
538
536
@@ -547,11 +545,11 @@ void RISCVInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
547
545
// Emit an ADDI for both parts of GPRPair.
548
546
BuildMI (MBB, MBBI, DL, get (RISCV::ADDI),
549
547
TRI->getSubReg (DstReg, RISCV::sub_gpr_even))
550
- .addReg (EvenReg, getKillRegState (KillSrc) )
548
+ .addReg (EvenReg, KillFlag )
551
549
.addImm (0 );
552
550
BuildMI (MBB, MBBI, DL, get (RISCV::ADDI),
553
551
TRI->getSubReg (DstReg, RISCV::sub_gpr_odd))
554
- .addReg (OddReg, getKillRegState (KillSrc) )
552
+ .addReg (OddReg, KillFlag )
555
553
.addImm (0 );
556
554
return ;
557
555
}
@@ -581,52 +579,52 @@ void RISCVInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
581
579
Opc = RISCV::FSGNJ_S;
582
580
}
583
581
BuildMI (MBB, MBBI, DL, get (Opc), DstReg)
584
- .addReg (SrcReg, getKillRegState (KillSrc) )
585
- .addReg (SrcReg, getKillRegState (KillSrc) );
582
+ .addReg (SrcReg, KillFlag )
583
+ .addReg (SrcReg, KillFlag );
586
584
return ;
587
585
}
588
586
589
587
if (RISCV::FPR32RegClass.contains (DstReg, SrcReg)) {
590
588
BuildMI (MBB, MBBI, DL, get (RISCV::FSGNJ_S), DstReg)
591
- .addReg (SrcReg, getKillRegState (KillSrc) )
592
- .addReg (SrcReg, getKillRegState (KillSrc) );
589
+ .addReg (SrcReg, KillFlag )
590
+ .addReg (SrcReg, KillFlag );
593
591
return ;
594
592
}
595
593
596
594
if (RISCV::FPR64RegClass.contains (DstReg, SrcReg)) {
597
595
BuildMI (MBB, MBBI, DL, get (RISCV::FSGNJ_D), DstReg)
598
- .addReg (SrcReg, getKillRegState (KillSrc) )
599
- .addReg (SrcReg, getKillRegState (KillSrc) );
596
+ .addReg (SrcReg, KillFlag )
597
+ .addReg (SrcReg, KillFlag );
600
598
return ;
601
599
}
602
600
603
601
if (RISCV::FPR32RegClass.contains (DstReg) &&
604
602
RISCV::GPRRegClass.contains (SrcReg)) {
605
603
BuildMI (MBB, MBBI, DL, get (RISCV::FMV_W_X), DstReg)
606
- .addReg (SrcReg, getKillRegState (KillSrc) );
604
+ .addReg (SrcReg, KillFlag );
607
605
return ;
608
606
}
609
607
610
608
if (RISCV::GPRRegClass.contains (DstReg) &&
611
609
RISCV::FPR32RegClass.contains (SrcReg)) {
612
610
BuildMI (MBB, MBBI, DL, get (RISCV::FMV_X_W), DstReg)
613
- .addReg (SrcReg, getKillRegState (KillSrc) );
611
+ .addReg (SrcReg, KillFlag );
614
612
return ;
615
613
}
616
614
617
615
if (RISCV::FPR64RegClass.contains (DstReg) &&
618
616
RISCV::GPRRegClass.contains (SrcReg)) {
619
617
assert (STI.getXLen () == 64 && " Unexpected GPR size" );
620
618
BuildMI (MBB, MBBI, DL, get (RISCV::FMV_D_X), DstReg)
621
- .addReg (SrcReg, getKillRegState (KillSrc) );
619
+ .addReg (SrcReg, KillFlag );
622
620
return ;
623
621
}
624
622
625
623
if (RISCV::GPRRegClass.contains (DstReg) &&
626
624
RISCV::FPR64RegClass.contains (SrcReg)) {
627
625
assert (STI.getXLen () == 64 && " Unexpected GPR size" );
628
626
BuildMI (MBB, MBBI, DL, get (RISCV::FMV_X_D), DstReg)
629
- .addReg (SrcReg, getKillRegState (KillSrc) );
627
+ .addReg (SrcReg, KillFlag );
630
628
return ;
631
629
}
632
630
0 commit comments