summaryrefslogtreecommitdiff
path: root/lib/Target/Hexagon/HexagonAsmPrinter.cpp
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-03-30 15:09:05 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-03-30 15:09:05 +0000
commitce765af4ed3e1b8d70ef95195d599dddf6637fc4 (patch)
treec399c3f06d6021c0bed3bce7320cbb45a984261d /lib/Target/Hexagon/HexagonAsmPrinter.cpp
parent849eeab8996b6aa9a7d00a221e73deb2c725a84d (diff)
[Hexagon] Fix printing :mem_noshuf on compiler-generated packets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328869 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Hexagon/HexagonAsmPrinter.cpp')
-rw-r--r--lib/Target/Hexagon/HexagonAsmPrinter.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/Target/Hexagon/HexagonAsmPrinter.cpp b/lib/Target/Hexagon/HexagonAsmPrinter.cpp
index 3a1821bf265..5be2cc9145e 100644
--- a/lib/Target/Hexagon/HexagonAsmPrinter.cpp
+++ b/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);