diff options
author | Chris Dewhurst <chris.dewhurst@lero.ie> | 2016-06-19 11:03:28 +0000 |
---|---|---|
committer | Chris Dewhurst <chris.dewhurst@lero.ie> | 2016-06-19 11:03:28 +0000 |
commit | 0c1e0026aa4d343e9aba0a79fa5577a10344acf2 (patch) | |
tree | a1bc9887aa405adf55b067bc98f63ed6028f658d /llvm/lib/Target/Sparc/SparcSubtarget.h | |
parent | 990952b6644e79da08c6925bddedff7c3b3ebe8a (diff) | |
download | bcm5719-llvm-0c1e0026aa4d343e9aba0a79fa5577a10344acf2.tar.gz bcm5719-llvm-0c1e0026aa4d343e9aba0a79fa5577a10344acf2.zip |
[SPARC] Fixes for hardware errata on LEON processor.
Passes to fix three hardware errata that appear on some LEON processor variants.
The instructions FSMULD, FMULS and FDIVS do not work as expected on some LEON processors. This change allows those instructions to be substituted for alternatives instruction sequences that are known to work.
These passes only run when selected individually, or as part of a processor defintion. They are not included in general SPARC processor compilations for non-LEON processors or for those LEON processors that do not have these hardware errata.
llvm-svn: 273108
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcSubtarget.h')
-rw-r--r-- | llvm/lib/Target/Sparc/SparcSubtarget.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/SparcSubtarget.h b/llvm/lib/Target/Sparc/SparcSubtarget.h index a69c2efd913..9122f54f7c8 100644 --- a/llvm/lib/Target/Sparc/SparcSubtarget.h +++ b/llvm/lib/Target/Sparc/SparcSubtarget.h @@ -45,6 +45,9 @@ class SparcSubtarget : public SparcGenSubtargetInfo { bool HasUmacSmac; bool HasLeonCasa; bool InsertNOPLoad; + bool FixFSMULD; + bool ReplaceFMULS; + bool FixAllFDIVSQRT; SparcInstrInfo InstrInfo; SparcTargetLowering TLInfo; @@ -85,6 +88,9 @@ public: bool hasUmacSmac() const { return HasUmacSmac; } bool hasLeonCasa() const { return HasLeonCasa; } bool insertNOPLoad() const { return InsertNOPLoad; } + bool fixFSMULD() const { return FixFSMULD; } + bool replaceFMULS() const { return ReplaceFMULS; } + bool fixAllFDIVSQRT() const { return FixAllFDIVSQRT; } /// ParseSubtargetFeatures - Parses features string setting specified /// subtarget options. Definition of function is auto generated by tblgen. |