summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc/SparcSubtarget.h
diff options
context:
space:
mode:
authorChris Dewhurst <chris.dewhurst@lero.ie>2016-07-08 15:33:56 +0000
committerChris Dewhurst <chris.dewhurst@lero.ie>2016-07-08 15:33:56 +0000
commit3202f065b8d0ce93497760ed279372d108fc8506 (patch)
treedcf1df56547704a19dbb8d2ff75ff1ea719c5824 /llvm/lib/Target/Sparc/SparcSubtarget.h
parent1ee119f897125df5df7acaec00103e86da46898e (diff)
downloadbcm5719-llvm-3202f065b8d0ce93497760ed279372d108fc8506.tar.gz
bcm5719-llvm-3202f065b8d0ce93497760ed279372d108fc8506.zip
[Sparc] Leon errata fix passes.
Errata fixes for various errata in different versions of the Leon variants of the Sparc 32 bit processor. The nature of the errata are listed in the comments preceding the errata fix passes. Relevant unit tests are implemented for each of these. Note: Running clang-format has changed a few other lines too, unrelated to the implemented errata fixes. These have been left in as this keeps the code formatting consistent. Differential Revision: http://reviews.llvm.org/D21960 llvm-svn: 274856
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcSubtarget.h')
-rw-r--r--llvm/lib/Target/Sparc/SparcSubtarget.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/llvm/lib/Target/Sparc/SparcSubtarget.h b/llvm/lib/Target/Sparc/SparcSubtarget.h
index 9122f54f7c8..42d69369999 100644
--- a/llvm/lib/Target/Sparc/SparcSubtarget.h
+++ b/llvm/lib/Target/Sparc/SparcSubtarget.h
@@ -48,6 +48,14 @@ class SparcSubtarget : public SparcGenSubtargetInfo {
bool FixFSMULD;
bool ReplaceFMULS;
bool FixAllFDIVSQRT;
+ bool UseSoftFpu;
+ bool PerformSDIVReplace;
+ bool FixCallImmediates;
+ bool IgnoreZeroFlag;
+ bool InsertNOPDoublePrecision;
+ bool PreventRoundChange;
+ bool FlushCacheLineSWAP;
+ bool InsertNOPsLoadStore;
SparcInstrInfo InstrInfo;
SparcTargetLowering TLInfo;
@@ -85,12 +93,20 @@ public:
bool useSoftFloat() const { return UseSoftFloat; }
// Leon options
- bool hasUmacSmac() const { return HasUmacSmac; }
+ bool useSoftFpu() const { return UseSoftFpu; }
bool hasLeonCasa() const { return HasLeonCasa; }
- bool insertNOPLoad() const { return InsertNOPLoad; }
+ bool hasUmacSmac() const { return HasUmacSmac; }
+ bool performSDIVReplace() const { return PerformSDIVReplace; }
+ bool fixCallImmediates() const { return FixCallImmediates; }
+ bool ignoreZeroFlag() const { return IgnoreZeroFlag; }
+ bool insertNOPDoublePrecision() const { return InsertNOPDoublePrecision; }
bool fixFSMULD() const { return FixFSMULD; }
bool replaceFMULS() const { return ReplaceFMULS; }
+ bool preventRoundChange() const { return PreventRoundChange; }
bool fixAllFDIVSQRT() const { return FixAllFDIVSQRT; }
+ bool flushCacheLineSWAP() const { return FlushCacheLineSWAP; }
+ bool insertNOPsLoadStore() const { return InsertNOPsLoadStore; }
+ bool insertNOPLoad() const { return InsertNOPLoad; }
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
OpenPOWER on IntegriCloud