diff options
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp b/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp index 3a1821bf265..5be2cc9145e 100644 --- a/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp +++ b/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp @@ -755,9 +755,14 @@ void HexagonAsmPrinter::EmitInstruction(const MachineInstr *MI) { for (++MII; MII != MBB->instr_end() && MII->isInsideBundle(); ++MII) if (!MII->isDebugValue() && !MII->isImplicitDef()) HexagonLowerToMC(MCII, &*MII, MCB, *this); - } - else + } else { HexagonLowerToMC(MCII, MI, MCB, *this); + } + + const MachineFunction &MF = *MI->getParent()->getParent(); + const auto &HII = *MF.getSubtarget<HexagonSubtarget>().getInstrInfo(); + if (MI->isBundle() && HII.getBundleNoShuf(*MI)) + HexagonMCInstrInfo::setMemReorderDisabled(MCB); bool Ok = HexagonMCInstrInfo::canonicalizePacket( MCII, *Subtarget, OutStreamer->getContext(), MCB, nullptr); |

