summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc/LeonFeatures.td
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/Sparc/LeonFeatures.td')
-rwxr-xr-xllvm/lib/Target/Sparc/LeonFeatures.td21
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/LeonFeatures.td b/llvm/lib/Target/Sparc/LeonFeatures.td
index 7de98407dac..e2282abbbdb 100755
--- a/llvm/lib/Target/Sparc/LeonFeatures.td
+++ b/llvm/lib/Target/Sparc/LeonFeatures.td
@@ -43,3 +43,24 @@ def InsertNOPLoad: SubtargetFeature<
"true",
"LEON3 erratum fix: Insert a NOP instruction after every single-cycle load instruction when the next instruction is another load/store instruction"
>;
+
+def FixFSMULD : SubtargetFeature<
+ "fixfsmuld",
+ "FixFSMULD",
+ "true",
+ "LEON erratum fix: Do not use FSMULD"
+>;
+
+def ReplaceFMULS : SubtargetFeature<
+ "replacefmuls",
+ "ReplaceFMULS",
+ "true",
+ "LEON erratum fix: Replace FMULS instruction with FMULD and relevant conversion instructions"
+>;
+
+def FixAllFDIVSQRT : SubtargetFeature<
+ "fixallfdivsqrt",
+ "FixAllFDIVSQRT",
+ "true",
+ "LEON erratum fix: Fix FDIVS/FDIVD/FSQRTS/FSQRTD instructions with NOPs and floating-point store"
+>;
OpenPOWER on IntegriCloud