aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
diff options
context:
space:
mode:
authorChris Dewhurst <chris.dewhurst@lero.ie>2016-06-19 12:56:42 +0000
committerChris Dewhurst <chris.dewhurst@lero.ie>2016-06-19 12:56:42 +0000
commitd03d5653bc459867865443d82f7741aa39f09dbf (patch)
tree605dd8ad872a047f0e925e7aa8f106470692ba3b /llvm/lib/Target/Sparc/DelaySlotFiller.cpp
parenta294541c050208a3eda9e89a391c8f6397db8a70 (diff)
downloadllvm-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/DelaySlotFiller.cpp')
-rw-r--r--llvm/lib/Target/Sparc/DelaySlotFiller.cpp7
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;
}