diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-03-30 15:09:05 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-03-30 15:09:05 +0000 |
| commit | 46abcb236bb4929a08d4905bf2169ec592202454 (patch) | |
| tree | 5a07d5d2663cd6f6dab5961252046cccad4aa627 /llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp | |
| parent | 71731fab24a861b3859654a7c19de1ff09959b76 (diff) | |
| download | bcm5719-llvm-46abcb236bb4929a08d4905bf2169ec592202454.tar.gz bcm5719-llvm-46abcb236bb4929a08d4905bf2169ec592202454.zip | |
[Hexagon] Fix printing :mem_noshuf on compiler-generated packets
llvm-svn: 328869
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); |

