diff options
author | Chris Dewhurst <chris.dewhurst@lero.ie> | 2016-06-19 12:56:42 +0000 |
---|---|---|
committer | Chris Dewhurst <chris.dewhurst@lero.ie> | 2016-06-19 12:56:42 +0000 |
commit | d03d5653bc459867865443d82f7741aa39f09dbf (patch) | |
tree | 605dd8ad872a047f0e925e7aa8f106470692ba3b /llvm/lib/Target/Sparc | |
parent | a294541c050208a3eda9e89a391c8f6397db8a70 (diff) | |
download | llvm-d03d5653bc459867865443d82f7741aa39f09dbf.zip llvm-d03d5653bc459867865443d82f7741aa39f09dbf.tar.gz llvm-d03d5653bc459867865443d82f7741aa39f09dbf.tar.bz2 |
[SPARC] Additional condition required for DelaySlot fixing erratum in revision r273108.
llvm-svn: 273111
Diffstat (limited to 'llvm/lib/Target/Sparc')
-rw-r--r-- | llvm/lib/Target/Sparc/DelaySlotFiller.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/DelaySlotFiller.cpp b/llvm/lib/Target/Sparc/DelaySlotFiller.cpp index 70acb50..944f355 100644 --- a/llvm/lib/Target/Sparc/DelaySlotFiller.cpp +++ b/llvm/lib/Target/Sparc/DelaySlotFiller.cpp @@ -278,6 +278,13 @@ bool Filler::delayHasHazard(MachineBasicBlock::iterator candidate, Opcode >= SP::LDDArr && Opcode <= SP::LDrr) return true; + // Same as above for FDIV and FSQRT on some LEON processors. + if (Subtarget->fixAllFDIVSQRT() + && + Opcode >= SP::FDIVD && Opcode <= SP::FSQRTD) + return true; + + return false; } |