zig/lib/std/target/sparc.zig
2020-01-19 20:53:19 -05:00

490 lines
9.8 KiB
Zig

const Feature = @import("std").target.Feature;
const Cpu = @import("std").target.Cpu;
pub const feature_hardQuadFloat = Feature{
.name = "hardQuadFloat",
.llvm_name = "hard-quad-float",
.description = "Enable quad-word floating point instructions",
.dependencies = &[_]*const Feature {
},
};
pub const feature_leon = Feature{
.name = "leon",
.llvm_name = "leon",
.description = "Enable LEON extensions",
.dependencies = &[_]*const Feature {
},
};
pub const feature_noFmuls = Feature{
.name = "noFmuls",
.llvm_name = "no-fmuls",
.description = "Disable the fmuls instruction.",
.dependencies = &[_]*const Feature {
},
};
pub const feature_noFsmuld = Feature{
.name = "noFsmuld",
.llvm_name = "no-fsmuld",
.description = "Disable the fsmuld instruction.",
.dependencies = &[_]*const Feature {
},
};
pub const feature_leonpwrpsr = Feature{
.name = "leonpwrpsr",
.llvm_name = "leonpwrpsr",
.description = "Enable the PWRPSR instruction",
.dependencies = &[_]*const Feature {
},
};
pub const feature_softFloat = Feature{
.name = "softFloat",
.llvm_name = "soft-float",
.description = "Use software emulation for floating point",
.dependencies = &[_]*const Feature {
},
};
pub const feature_softMulDiv = Feature{
.name = "softMulDiv",
.llvm_name = "soft-mul-div",
.description = "Use software emulation for integer multiply and divide",
.dependencies = &[_]*const Feature {
},
};
pub const feature_deprecatedV8 = Feature{
.name = "deprecatedV8",
.llvm_name = "deprecated-v8",
.description = "Enable deprecated V8 instructions in V9 mode",
.dependencies = &[_]*const Feature {
},
};
pub const feature_v9 = Feature{
.name = "v9",
.llvm_name = "v9",
.description = "Enable SPARC-V9 instructions",
.dependencies = &[_]*const Feature {
},
};
pub const feature_vis = Feature{
.name = "vis",
.llvm_name = "vis",
.description = "Enable UltraSPARC Visual Instruction Set extensions",
.dependencies = &[_]*const Feature {
},
};
pub const feature_vis2 = Feature{
.name = "vis2",
.llvm_name = "vis2",
.description = "Enable Visual Instruction Set extensions II",
.dependencies = &[_]*const Feature {
},
};
pub const feature_vis3 = Feature{
.name = "vis3",
.llvm_name = "vis3",
.description = "Enable Visual Instruction Set extensions III",
.dependencies = &[_]*const Feature {
},
};
pub const features = &[_]*const Feature {
&feature_hardQuadFloat,
&feature_leon,
&feature_noFmuls,
&feature_noFsmuld,
&feature_leonpwrpsr,
&feature_softFloat,
&feature_softMulDiv,
&feature_deprecatedV8,
&feature_v9,
&feature_vis,
&feature_vis2,
&feature_vis3,
};
pub const cpu_at697e = Cpu{
.name = "at697e",
.llvm_name = "at697e",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_at697f = Cpu{
.name = "at697f",
.llvm_name = "at697f",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_f934 = Cpu{
.name = "f934",
.llvm_name = "f934",
.dependencies = &[_]*const Feature {
},
};
pub const cpu_generic = Cpu{
.name = "generic",
.llvm_name = "generic",
.dependencies = &[_]*const Feature {
},
};
pub const cpu_gr712rc = Cpu{
.name = "gr712rc",
.llvm_name = "gr712rc",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_gr740 = Cpu{
.name = "gr740",
.llvm_name = "gr740",
.dependencies = &[_]*const Feature {
&feature_leon,
&feature_leonpwrpsr,
},
};
pub const cpu_hypersparc = Cpu{
.name = "hypersparc",
.llvm_name = "hypersparc",
.dependencies = &[_]*const Feature {
},
};
pub const cpu_leon2 = Cpu{
.name = "leon2",
.llvm_name = "leon2",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_leon3 = Cpu{
.name = "leon3",
.llvm_name = "leon3",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_leon4 = Cpu{
.name = "leon4",
.llvm_name = "leon4",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_ma2080 = Cpu{
.name = "ma2080",
.llvm_name = "ma2080",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_ma2085 = Cpu{
.name = "ma2085",
.llvm_name = "ma2085",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_ma2100 = Cpu{
.name = "ma2100",
.llvm_name = "ma2100",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_ma2150 = Cpu{
.name = "ma2150",
.llvm_name = "ma2150",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_ma2155 = Cpu{
.name = "ma2155",
.llvm_name = "ma2155",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_ma2450 = Cpu{
.name = "ma2450",
.llvm_name = "ma2450",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_ma2455 = Cpu{
.name = "ma2455",
.llvm_name = "ma2455",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_ma2480 = Cpu{
.name = "ma2480",
.llvm_name = "ma2480",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_ma2485 = Cpu{
.name = "ma2485",
.llvm_name = "ma2485",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_ma2x5x = Cpu{
.name = "ma2x5x",
.llvm_name = "ma2x5x",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_ma2x8x = Cpu{
.name = "ma2x8x",
.llvm_name = "ma2x8x",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_myriad2 = Cpu{
.name = "myriad2",
.llvm_name = "myriad2",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_myriad21 = Cpu{
.name = "myriad21",
.llvm_name = "myriad2.1",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_myriad22 = Cpu{
.name = "myriad22",
.llvm_name = "myriad2.2",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_myriad23 = Cpu{
.name = "myriad23",
.llvm_name = "myriad2.3",
.dependencies = &[_]*const Feature {
&feature_leon,
},
};
pub const cpu_niagara = Cpu{
.name = "niagara",
.llvm_name = "niagara",
.dependencies = &[_]*const Feature {
&feature_deprecatedV8,
&feature_v9,
&feature_vis,
&feature_vis2,
},
};
pub const cpu_niagara2 = Cpu{
.name = "niagara2",
.llvm_name = "niagara2",
.dependencies = &[_]*const Feature {
&feature_deprecatedV8,
&feature_v9,
&feature_vis,
&feature_vis2,
},
};
pub const cpu_niagara3 = Cpu{
.name = "niagara3",
.llvm_name = "niagara3",
.dependencies = &[_]*const Feature {
&feature_deprecatedV8,
&feature_v9,
&feature_vis,
&feature_vis2,
},
};
pub const cpu_niagara4 = Cpu{
.name = "niagara4",
.llvm_name = "niagara4",
.dependencies = &[_]*const Feature {
&feature_deprecatedV8,
&feature_v9,
&feature_vis,
&feature_vis2,
&feature_vis3,
},
};
pub const cpu_sparclet = Cpu{
.name = "sparclet",
.llvm_name = "sparclet",
.dependencies = &[_]*const Feature {
},
};
pub const cpu_sparclite = Cpu{
.name = "sparclite",
.llvm_name = "sparclite",
.dependencies = &[_]*const Feature {
},
};
pub const cpu_sparclite86x = Cpu{
.name = "sparclite86x",
.llvm_name = "sparclite86x",
.dependencies = &[_]*const Feature {
},
};
pub const cpu_supersparc = Cpu{
.name = "supersparc",
.llvm_name = "supersparc",
.dependencies = &[_]*const Feature {
},
};
pub const cpu_tsc701 = Cpu{
.name = "tsc701",
.llvm_name = "tsc701",
.dependencies = &[_]*const Feature {
},
};
pub const cpu_ultrasparc = Cpu{
.name = "ultrasparc",
.llvm_name = "ultrasparc",
.dependencies = &[_]*const Feature {
&feature_deprecatedV8,
&feature_v9,
&feature_vis,
},
};
pub const cpu_ultrasparc3 = Cpu{
.name = "ultrasparc3",
.llvm_name = "ultrasparc3",
.dependencies = &[_]*const Feature {
&feature_deprecatedV8,
&feature_v9,
&feature_vis,
&feature_vis2,
},
};
pub const cpu_ut699 = Cpu{
.name = "ut699",
.llvm_name = "ut699",
.dependencies = &[_]*const Feature {
&feature_leon,
&feature_noFmuls,
&feature_noFsmuld,
},
};
pub const cpu_v7 = Cpu{
.name = "v7",
.llvm_name = "v7",
.dependencies = &[_]*const Feature {
&feature_noFsmuld,
&feature_softMulDiv,
},
};
pub const cpu_v8 = Cpu{
.name = "v8",
.llvm_name = "v8",
.dependencies = &[_]*const Feature {
},
};
pub const cpu_v9 = Cpu{
.name = "v9",
.llvm_name = "v9",
.dependencies = &[_]*const Feature {
&feature_v9,
},
};
pub const cpus = &[_]*const Cpu {
&cpu_at697e,
&cpu_at697f,
&cpu_f934,
&cpu_generic,
&cpu_gr712rc,
&cpu_gr740,
&cpu_hypersparc,
&cpu_leon2,
&cpu_leon3,
&cpu_leon4,
&cpu_ma2080,
&cpu_ma2085,
&cpu_ma2100,
&cpu_ma2150,
&cpu_ma2155,
&cpu_ma2450,
&cpu_ma2455,
&cpu_ma2480,
&cpu_ma2485,
&cpu_ma2x5x,
&cpu_ma2x8x,
&cpu_myriad2,
&cpu_myriad21,
&cpu_myriad22,
&cpu_myriad23,
&cpu_niagara,
&cpu_niagara2,
&cpu_niagara3,
&cpu_niagara4,
&cpu_sparclet,
&cpu_sparclite,
&cpu_sparclite86x,
&cpu_supersparc,
&cpu_tsc701,
&cpu_ultrasparc,
&cpu_ultrasparc3,
&cpu_ut699,
&cpu_v7,
&cpu_v8,
&cpu_v9,
};