mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 22:24:07 +00:00
Subtarget feature can now set any variable to any value
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25678 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -20,9 +20,9 @@ include "../Target.td"
|
|||||||
// Subtarget Features
|
// Subtarget Features
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
def FeatureCIX : SubtargetFeature<"CIX", "bool", "HasCT",
|
def FeatureCIX : SubtargetFeature<"CIX", "HasCT", "true",
|
||||||
"Enable CIX extentions">;
|
"Enable CIX extentions">;
|
||||||
def FeatureFIX : SubtargetFeature<"FIX", "bool", "HasF2I",
|
def FeatureFIX : SubtargetFeature<"FIX", "HasF2I", "true",
|
||||||
"Enable FIX extentions">;
|
"Enable FIX extentions">;
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
@ -19,15 +19,15 @@ include "../Target.td"
|
|||||||
// PowerPC Subtarget features.
|
// PowerPC Subtarget features.
|
||||||
//
|
//
|
||||||
|
|
||||||
def Feature64Bit : SubtargetFeature<"64bit", "bool", "Is64Bit",
|
def Feature64Bit : SubtargetFeature<"64bit","Is64Bit", "true",
|
||||||
"Enable 64-bit instructions">;
|
"Enable 64-bit instructions">;
|
||||||
def Feature64BitRegs : SubtargetFeature<"64bitregs", "bool", "Has64BitRegs",
|
def Feature64BitRegs : SubtargetFeature<"64bitregs","Has64BitRegs", "true",
|
||||||
"Enable 64-bit registers [beta]">;
|
"Enable 64-bit registers [beta]">;
|
||||||
def FeatureAltivec : SubtargetFeature<"altivec", "bool", "HasAltivec",
|
def FeatureAltivec : SubtargetFeature<"altivec","HasAltivec", "true",
|
||||||
"Enable Altivec instructions">;
|
"Enable Altivec instructions">;
|
||||||
def FeatureGPUL : SubtargetFeature<"gpul", "bool", "IsGigaProcessor",
|
def FeatureGPUL : SubtargetFeature<"gpul","IsGigaProcessor", "true",
|
||||||
"Enable GPUL instructions">;
|
"Enable GPUL instructions">;
|
||||||
def FeatureFSqrt : SubtargetFeature<"fsqrt", "bool", "HasFSQRT",
|
def FeatureFSqrt : SubtargetFeature<"fsqrt","HasFSQRT", "true",
|
||||||
"Enable the fsqrt instruction">;
|
"Enable the fsqrt instruction">;
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
@ -21,13 +21,13 @@ include "../Target.td"
|
|||||||
//
|
//
|
||||||
|
|
||||||
def FeatureV9
|
def FeatureV9
|
||||||
: SubtargetFeature<"v9", "bool", "IsV9",
|
: SubtargetFeature<"v9", "IsV9", "true",
|
||||||
"Enable SPARC-V9 instructions">;
|
"Enable SPARC-V9 instructions">;
|
||||||
def FeatureV8Deprecated
|
def FeatureV8Deprecated
|
||||||
: SubtargetFeature<"deprecated-v8", "bool", "V8DeprecatedInsts",
|
: SubtargetFeature<"deprecated-v8", "V8DeprecatedInsts", "true",
|
||||||
"Enable deprecated V8 instructions in V9 mode">;
|
"Enable deprecated V8 instructions in V9 mode">;
|
||||||
def FeatureVIS
|
def FeatureVIS
|
||||||
: SubtargetFeature<"vis", "bool", "IsVIS",
|
: SubtargetFeature<"vis", "IsVIS", "true",
|
||||||
"Enable UltraSPARC Visual Instruction Set extensions">;
|
"Enable UltraSPARC Visual Instruction Set extensions">;
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
@ -21,13 +21,13 @@ include "../Target.td"
|
|||||||
//
|
//
|
||||||
|
|
||||||
def FeatureV9
|
def FeatureV9
|
||||||
: SubtargetFeature<"v9", "bool", "IsV9",
|
: SubtargetFeature<"v9", "IsV9", "true",
|
||||||
"Enable SPARC-V9 instructions">;
|
"Enable SPARC-V9 instructions">;
|
||||||
def FeatureV8Deprecated
|
def FeatureV8Deprecated
|
||||||
: SubtargetFeature<"deprecated-v8", "bool", "V8DeprecatedInsts",
|
: SubtargetFeature<"deprecated-v8", "V8DeprecatedInsts", "true",
|
||||||
"Enable deprecated V8 instructions in V9 mode">;
|
"Enable deprecated V8 instructions in V9 mode">;
|
||||||
def FeatureVIS
|
def FeatureVIS
|
||||||
: SubtargetFeature<"vis", "bool", "IsVIS",
|
: SubtargetFeature<"vis", "IsVIS", "true",
|
||||||
"Enable UltraSPARC Visual Instruction Set extensions">;
|
"Enable UltraSPARC Visual Instruction Set extensions">;
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
@ -287,20 +287,20 @@ class Target {
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// SubtargetFeature - A characteristic of the chip set.
|
// SubtargetFeature - A characteristic of the chip set.
|
||||||
//
|
//
|
||||||
class SubtargetFeature<string n, string t, string a, string d> {
|
class SubtargetFeature<string n, string a, string v, string d> {
|
||||||
// Name - Feature name. Used by command line (-mattr=) to determine the
|
// Name - Feature name. Used by command line (-mattr=) to determine the
|
||||||
// appropriate target chip.
|
// appropriate target chip.
|
||||||
//
|
//
|
||||||
string Name = n;
|
string Name = n;
|
||||||
|
|
||||||
// Type - Type of attribute to be set by feature.
|
|
||||||
//
|
|
||||||
string Type = t;
|
|
||||||
|
|
||||||
// Attribute - Attribute to be set by feature.
|
// Attribute - Attribute to be set by feature.
|
||||||
//
|
//
|
||||||
string Attribute = a;
|
string Attribute = a;
|
||||||
|
|
||||||
|
// Value - Value the attribute to be set to by feature.
|
||||||
|
//
|
||||||
|
string Value = v;
|
||||||
|
|
||||||
// Desc - Feature description. Used by command line (-mattr=) to display help
|
// Desc - Feature description. Used by command line (-mattr=) to display help
|
||||||
// information.
|
// information.
|
||||||
//
|
//
|
||||||
|
@ -473,10 +473,11 @@ void SubtargetEmitter::ParseFeaturesFunction(std::ostream &OS) {
|
|||||||
Record *R = Features[i];
|
Record *R = Features[i];
|
||||||
std::string Instance = R->getName();
|
std::string Instance = R->getName();
|
||||||
std::string Name = R->getValueAsString("Name");
|
std::string Name = R->getValueAsString("Name");
|
||||||
std::string Type = R->getValueAsString("Type");
|
std::string Value = R->getValueAsString("Value");
|
||||||
std::string Attribute = R->getValueAsString("Attribute");
|
std::string Attribute = R->getValueAsString("Attribute");
|
||||||
|
|
||||||
OS << " " << Attribute << " = (Bits & " << Instance << ") != 0;\n";
|
OS << " if ((Bits & " << Instance << ") != 0) "
|
||||||
|
<< Attribute << " = " << Value << ";\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HasItineraries) {
|
if (HasItineraries) {
|
||||||
|
Reference in New Issue
Block a user