@@ -1703,51 +1703,61 @@ void AArch64InstrInfo::storeRegToStackSlot(
17031703 else if (AArch64::DDRegClass.hasSubClassEq (RC)) {
17041704 assert (Subtarget.hasNEON () &&
17051705 " Unexpected register store without NEON" );
1706- Opc = AArch64::ST1Twov1d, Offset = false ;
1706+ Opc = AArch64::ST1Twov1d;
1707+ Offset = false ;
17071708 }
17081709 break ;
17091710 case 24 :
17101711 if (AArch64::DDDRegClass.hasSubClassEq (RC)) {
17111712 assert (Subtarget.hasNEON () &&
17121713 " Unexpected register store without NEON" );
1713- Opc = AArch64::ST1Threev1d, Offset = false ;
1714+ Opc = AArch64::ST1Threev1d;
1715+ Offset = false ;
17141716 }
17151717 break ;
17161718 case 32 :
17171719 if (AArch64::DDDDRegClass.hasSubClassEq (RC)) {
17181720 assert (Subtarget.hasNEON () &&
17191721 " Unexpected register store without NEON" );
1720- Opc = AArch64::ST1Fourv1d, Offset = false ;
1722+ Opc = AArch64::ST1Fourv1d;
1723+ Offset = false ;
17211724 } else if (AArch64::QQRegClass.hasSubClassEq (RC)) {
17221725 assert (Subtarget.hasNEON () &&
17231726 " Unexpected register store without NEON" );
1724- Opc = AArch64::ST1Twov2d, Offset = false ;
1727+ Opc = AArch64::ST1Twov2d;
1728+ Offset = false ;
17251729 }
17261730 break ;
17271731 case 48 :
17281732 if (AArch64::QQQRegClass.hasSubClassEq (RC)) {
17291733 assert (Subtarget.hasNEON () &&
17301734 " Unexpected register store without NEON" );
1731- Opc = AArch64::ST1Threev2d, Offset = false ;
1735+ Opc = AArch64::ST1Threev2d;
1736+ Offset = false ;
17321737 }
17331738 break ;
17341739 case 64 :
17351740 if (AArch64::QQQQRegClass.hasSubClassEq (RC)) {
17361741 assert (Subtarget.hasNEON () &&
17371742 " Unexpected register store without NEON" );
1738- Opc = AArch64::ST1Fourv2d, Offset = false ;
1743+ Opc = AArch64::ST1Fourv2d;
1744+ Offset = false ;
17391745 }
17401746 break ;
1747+ default :
1748+ assert (0 );
17411749 }
17421750 assert (Opc && " Unknown register class" );
17431751
1744- const MachineInstrBuilder &MI = BuildMI (MBB, MBBI, DL, get (Opc))
1745- .addReg (SrcReg, getKillRegState (isKill))
1746- .addFrameIndex (FI);
1747-
1748- if (Offset)
1749- MI.addImm (0 );
1750- MI.addMemOperand (MMO);
1752+ if (Offset) {
1753+ BuildMI (MBB, MBBI, DL, get (Opc))
1754+ .addReg (SrcReg, getKillRegState (isKill))
1755+ .addFrameIndex (FI).addImm (0 ).addMemOperand (MMO);
1756+ } else {
1757+ BuildMI (MBB, MBBI, DL, get (Opc))
1758+ .addReg (SrcReg, getKillRegState (isKill))
1759+ .addFrameIndex (FI).addMemOperand (MMO);
1760+ }
17511761}
17521762
17531763void AArch64InstrInfo::loadRegFromStackSlot (
@@ -1839,12 +1849,15 @@ void AArch64InstrInfo::loadRegFromStackSlot(
18391849 }
18401850 assert (Opc && " Unknown register class" );
18411851
1842- const MachineInstrBuilder &MI = BuildMI (MBB, MBBI, DL, get (Opc))
1843- .addReg (DestReg, getDefRegState (true ))
1844- .addFrameIndex (FI);
1845- if (Offset)
1846- MI.addImm (0 );
1847- MI.addMemOperand (MMO);
1852+ if (Offset) {
1853+ BuildMI (MBB, MBBI, DL, get (Opc))
1854+ .addReg (DestReg, getDefRegState (true ))
1855+ .addFrameIndex (FI).addImm (0 ).addMemOperand (MMO);
1856+ } else {
1857+ BuildMI (MBB, MBBI, DL, get (Opc))
1858+ .addReg (DestReg, getDefRegState (true ))
1859+ .addFrameIndex (FI).addMemOperand (MMO);
1860+ }
18481861}
18491862
18501863void llvm::emitFrameOffset (MachineBasicBlock &MBB,
0 commit comments