aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Target/Mips/MipsDelaySlotFiller.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/Target/Mips/MipsDelaySlotFiller.cpp b/lib/Target/Mips/MipsDelaySlotFiller.cpp
index e71c9327f3..8fc5d53741 100644
--- a/lib/Target/Mips/MipsDelaySlotFiller.cpp
+++ b/lib/Target/Mips/MipsDelaySlotFiller.cpp
@@ -173,9 +173,12 @@ bool Filler::findDelayInstr(MachineBasicBlock &MBB,
|| I->isPseudo()
// @LOCALMOD-START
// Don't put in delay slot instructions that could be masked.
- || IsDangerousLoad(*FI, &Dummy)
- || IsDangerousStore(*FI, &Dummy)
- || FI->modifiesRegister(Mips::SP, TM.getRegisterInfo())
+ || (Triple(TM.getTargetTriple()).getOS() == Triple::NativeClient &&
+ (IsDangerousLoad(*FI, &Dummy)
+ || IsDangerousStore(*FI, &Dummy)
+ || FI->modifiesRegister(Mips::SP, TM.getRegisterInfo())
+ )
+ )
// @LOCALMOD-END
//
// Should not allow: