diff options
-rw-r--r-- | lib/Target/Mips/MipsDelaySlotFiller.cpp | 9 |
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: |