summaryrefslogtreecommitdiff
path: root/lib/Target/Mips/MipsDelaySlotFiller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/Mips/MipsDelaySlotFiller.cpp')
-rw-r--r--lib/Target/Mips/MipsDelaySlotFiller.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Target/Mips/MipsDelaySlotFiller.cpp b/lib/Target/Mips/MipsDelaySlotFiller.cpp
index b56d9cd22b..6b25d2d97c 100644
--- a/lib/Target/Mips/MipsDelaySlotFiller.cpp
+++ b/lib/Target/Mips/MipsDelaySlotFiller.cpp
@@ -208,7 +208,7 @@ bool Filler::delayHasHazard(const MachineInstr &Candidate, bool &SawLoad,
// Loads or stores cannot be moved past a store to the delay slot
// and stores cannot be moved past a load.
- if (Candidate.mayStore()) {
+ if (Candidate.mayStore() || Candidate.hasOrderedMemoryRef()) {
HasHazard |= SawStore | SawLoad;
SawStore = true;
} else if (Candidate.mayLoad()) {