diff options
Diffstat (limited to 'llvm/lib/Target/Sparc/LeonFeatures.td')
-rwxr-xr-x | llvm/lib/Target/Sparc/LeonFeatures.td | 21 |
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" +>; |