aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/Sparc/Sparc.td
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/Sparc/Sparc.td')
-rw-r--r--lib/Target/Sparc/Sparc.td26
1 files changed, 21 insertions, 5 deletions
diff --git a/lib/Target/Sparc/Sparc.td b/lib/Target/Sparc/Sparc.td
index 91cab00b2b651..9e0a297c88123 100644
--- a/lib/Target/Sparc/Sparc.td
+++ b/lib/Target/Sparc/Sparc.td
@@ -24,6 +24,13 @@ def FeatureSoftMulDiv
: SubtargetFeature<"soft-mul-div", "UseSoftMulDiv", "true",
"Use software emulation for integer multiply and divide">;
+def FeatureNoFSMULD
+ : SubtargetFeature<"no-fsmuld", "HasNoFSMULD", "true",
+ "Disable the fsmuld instruction.">;
+def FeatureNoFMULS
+ : SubtargetFeature<"no-fmuls", "HasNoFMULS", "true",
+ "Disable the fmuls instruction.">;
+
def FeatureV9
: SubtargetFeature<"v9", "IsV9", "true",
"Enable SPARC-V9 instructions">;
@@ -51,9 +58,9 @@ def UsePopc : SubtargetFeature<"popc", "UsePopc", "true",
"Use the popc (population count) instruction">;
def FeatureSoftFloat : SubtargetFeature<"soft-float", "UseSoftFloat", "true",
- "Use software emulation for floating point">;
+ "Use software emulation for floating point">;
-//==== Features added predmoninantly for LEON subtarget support
+//==== Features added predmoninantly for LEON subtarget support
include "LeonFeatures.td"
//===----------------------------------------------------------------------===//
@@ -79,7 +86,7 @@ class Proc<string Name, list<SubtargetFeature> Features>
: Processor<Name, NoItineraries, Features>;
def : Proc<"generic", []>;
-def : Proc<"v7", [FeatureSoftMulDiv]>;
+def : Proc<"v7", [FeatureSoftMulDiv, FeatureNoFSMULD]>;
def : Proc<"v8", []>;
def : Proc<"supersparc", []>;
def : Proc<"sparclite", []>;
@@ -91,9 +98,18 @@ def : Proc<"tsc701", []>;
def : Proc<"myriad2", [FeatureLeon, LeonCASA]>;
def : Proc<"myriad2.1", [FeatureLeon, LeonCASA]>;
def : Proc<"myriad2.2", [FeatureLeon, LeonCASA]>;
+def : Proc<"myriad2.3", [FeatureLeon, LeonCASA]>;
def : Proc<"ma2100", [FeatureLeon, LeonCASA]>;
def : Proc<"ma2150", [FeatureLeon, LeonCASA]>;
+def : Proc<"ma2155", [FeatureLeon, LeonCASA]>;
def : Proc<"ma2450", [FeatureLeon, LeonCASA]>;
+def : Proc<"ma2455", [FeatureLeon, LeonCASA]>;
+def : Proc<"ma2x5x", [FeatureLeon, LeonCASA]>;
+def : Proc<"ma2080", [FeatureLeon, LeonCASA]>;
+def : Proc<"ma2085", [FeatureLeon, LeonCASA]>;
+def : Proc<"ma2480", [FeatureLeon, LeonCASA]>;
+def : Proc<"ma2485", [FeatureLeon, LeonCASA]>;
+def : Proc<"ma2x8x", [FeatureLeon, LeonCASA]>;
def : Proc<"v9", [FeatureV9]>;
def : Proc<"ultrasparc", [FeatureV9, FeatureV8Deprecated, FeatureVIS]>;
def : Proc<"ultrasparc3", [FeatureV9, FeatureV8Deprecated, FeatureVIS,
@@ -128,8 +144,8 @@ def : Processor<"leon3", LEON3Itineraries,
// LEON 3 FT (UT699). Provides features for the UT699 processor
// - covers all the erratum fixes for LEON3, but does not support the CASA instruction.
-def : Processor<"ut699", LEON3Itineraries,
- [FeatureLeon, InsertNOPLoad, FixFSMULD, ReplaceFMULS, FixAllFDIVSQRT]>;
+def : Processor<"ut699", LEON3Itineraries,
+ [FeatureLeon, InsertNOPLoad, FeatureNoFSMULD, FeatureNoFMULS, FixAllFDIVSQRT]>;
// LEON3 FT (GR712RC). Provides features for the GR712RC processor.
// - covers all the erratum fixed for LEON3 and support for the CASA instruction.