Rename subfeatures -> dependencies
parent
51372200d3
commit
e4ecdefa9a
|
@ -862,14 +862,14 @@ pub const Feature = struct {
|
|||
name: []const u8,
|
||||
description: []const u8,
|
||||
|
||||
subfeatures: []*const Feature,
|
||||
dependencies: []*const Feature,
|
||||
};
|
||||
|
||||
pub const Cpu = struct {
|
||||
name: []const u8,
|
||||
llvm_name: []const u8,
|
||||
|
||||
subfeatures: []*const Feature,
|
||||
dependencies: []*const Feature,
|
||||
};
|
||||
|
||||
pub fn getFeaturesForArch(arch: @TagType(Target.Arch)) []*const Feature {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -4,21 +4,21 @@ const Cpu = @import("std").target.Cpu;
|
|||
pub const feature_alu32 = Feature{
|
||||
.name = "alu32",
|
||||
.description = "Enable ALU32 instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_dummy = Feature{
|
||||
.name = "dummy",
|
||||
.description = "unused feature",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_dwarfris = Feature{
|
||||
.name = "dwarfris",
|
||||
.description = "Disable MCAsmInfo DwarfUsesRelocationsAcrossSections",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -31,35 +31,35 @@ pub const features = &[_]*const Feature {
|
|||
pub const cpu_generic = Cpu{
|
||||
.name = "generic",
|
||||
.llvm_name = "generic",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_probe = Cpu{
|
||||
.name = "probe",
|
||||
.llvm_name = "probe",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_v1 = Cpu{
|
||||
.name = "v1",
|
||||
.llvm_name = "v1",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_v2 = Cpu{
|
||||
.name = "v2",
|
||||
.llvm_name = "v2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_v3 = Cpu{
|
||||
.name = "v3",
|
||||
.llvm_name = "v3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -4,35 +4,35 @@ const Cpu = @import("std").target.Cpu;
|
|||
pub const feature_duplex = Feature{
|
||||
.name = "duplex",
|
||||
.description = "Enable generation of duplex instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_longCalls = Feature{
|
||||
.name = "long-calls",
|
||||
.description = "Use constant-extended calls",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mem_noshuf = Feature{
|
||||
.name = "mem_noshuf",
|
||||
.description = "Supports mem_noshuf feature",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_memops = Feature{
|
||||
.name = "memops",
|
||||
.description = "Use memop instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_nvj = Feature{
|
||||
.name = "nvj",
|
||||
.description = "Support for new-value jumps",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_packets,
|
||||
},
|
||||
};
|
||||
|
@ -40,7 +40,7 @@ pub const feature_nvj = Feature{
|
|||
pub const feature_nvs = Feature{
|
||||
.name = "nvs",
|
||||
.description = "Support for new-value stores",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_packets,
|
||||
},
|
||||
};
|
||||
|
@ -48,28 +48,28 @@ pub const feature_nvs = Feature{
|
|||
pub const feature_noreturnStackElim = Feature{
|
||||
.name = "noreturn-stack-elim",
|
||||
.description = "Eliminate stack allocation in a noreturn function when possible",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_packets = Feature{
|
||||
.name = "packets",
|
||||
.description = "Support for instruction packets",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_reservedR19 = Feature{
|
||||
.name = "reserved-r19",
|
||||
.description = "Reserve register R19",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_smallData = Feature{
|
||||
.name = "small-data",
|
||||
.description = "Allow GP-relative addressing of global variables",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -89,7 +89,7 @@ pub const features = &[_]*const Feature {
|
|||
pub const cpu_generic = Cpu{
|
||||
.name = "generic",
|
||||
.llvm_name = "generic",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_duplex,
|
||||
&feature_memops,
|
||||
&feature_packets,
|
||||
|
@ -102,7 +102,7 @@ pub const cpu_generic = Cpu{
|
|||
pub const cpu_hexagonv5 = Cpu{
|
||||
.name = "hexagonv5",
|
||||
.llvm_name = "hexagonv5",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_duplex,
|
||||
&feature_memops,
|
||||
&feature_packets,
|
||||
|
@ -115,7 +115,7 @@ pub const cpu_hexagonv5 = Cpu{
|
|||
pub const cpu_hexagonv55 = Cpu{
|
||||
.name = "hexagonv55",
|
||||
.llvm_name = "hexagonv55",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_duplex,
|
||||
&feature_memops,
|
||||
&feature_packets,
|
||||
|
@ -128,7 +128,7 @@ pub const cpu_hexagonv55 = Cpu{
|
|||
pub const cpu_hexagonv60 = Cpu{
|
||||
.name = "hexagonv60",
|
||||
.llvm_name = "hexagonv60",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_duplex,
|
||||
&feature_memops,
|
||||
&feature_packets,
|
||||
|
@ -141,7 +141,7 @@ pub const cpu_hexagonv60 = Cpu{
|
|||
pub const cpu_hexagonv62 = Cpu{
|
||||
.name = "hexagonv62",
|
||||
.llvm_name = "hexagonv62",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_duplex,
|
||||
&feature_memops,
|
||||
&feature_packets,
|
||||
|
@ -154,7 +154,7 @@ pub const cpu_hexagonv62 = Cpu{
|
|||
pub const cpu_hexagonv65 = Cpu{
|
||||
.name = "hexagonv65",
|
||||
.llvm_name = "hexagonv65",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_duplex,
|
||||
&feature_mem_noshuf,
|
||||
&feature_memops,
|
||||
|
@ -168,7 +168,7 @@ pub const cpu_hexagonv65 = Cpu{
|
|||
pub const cpu_hexagonv66 = Cpu{
|
||||
.name = "hexagonv66",
|
||||
.llvm_name = "hexagonv66",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_duplex,
|
||||
&feature_mem_noshuf,
|
||||
&feature_memops,
|
||||
|
|
|
@ -4,43 +4,43 @@ const Cpu = @import("std").target.Cpu;
|
|||
pub const feature_abs2008 = Feature{
|
||||
.name = "abs2008",
|
||||
.description = "Disable IEEE 754-2008 abs.fmt mode",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_crc = Feature{
|
||||
.name = "crc",
|
||||
.description = "Mips R6 CRC ASE",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_cnmips = Feature{
|
||||
.name = "cnmips",
|
||||
.description = "Octeon cnMIPS Support",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_fp64,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_dsp = Feature{
|
||||
.name = "dsp",
|
||||
.description = "Mips DSP ASE",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_dspr2 = Feature{
|
||||
.name = "dspr2",
|
||||
.description = "Mips DSP-R2 ASE",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_dsp,
|
||||
},
|
||||
};
|
||||
|
@ -48,7 +48,7 @@ pub const feature_dspr2 = Feature{
|
|||
pub const feature_dspr3 = Feature{
|
||||
.name = "dspr3",
|
||||
.description = "Mips DSP-R3 ASE",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_dsp,
|
||||
},
|
||||
};
|
||||
|
@ -56,84 +56,84 @@ pub const feature_dspr3 = Feature{
|
|||
pub const feature_eva = Feature{
|
||||
.name = "eva",
|
||||
.description = "Mips EVA ASE",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_fp64 = Feature{
|
||||
.name = "fp64",
|
||||
.description = "Support 64-bit FP registers",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_fpxx = Feature{
|
||||
.name = "fpxx",
|
||||
.description = "Support for FPXX",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ginv = Feature{
|
||||
.name = "ginv",
|
||||
.description = "Mips Global Invalidate ASE",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_gp64 = Feature{
|
||||
.name = "gp64",
|
||||
.description = "General Purpose Registers are 64-bit wide",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_longCalls = Feature{
|
||||
.name = "long-calls",
|
||||
.description = "Disable use of the jal instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_msa = Feature{
|
||||
.name = "msa",
|
||||
.description = "Mips MSA ASE",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mt = Feature{
|
||||
.name = "mt",
|
||||
.description = "Mips MT ASE",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_nomadd4 = Feature{
|
||||
.name = "nomadd4",
|
||||
.description = "Disable 4-operand madd.fmt and related instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_micromips = Feature{
|
||||
.name = "micromips",
|
||||
.description = "microMips mode",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips1 = Feature{
|
||||
.name = "mips1",
|
||||
.description = "Mips I ISA Support [highly experimental]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips2 = Feature{
|
||||
.name = "mips2",
|
||||
.description = "Mips II ISA Support [highly experimental]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips1,
|
||||
},
|
||||
};
|
||||
|
@ -141,322 +141,322 @@ pub const feature_mips2 = Feature{
|
|||
pub const feature_mips3 = Feature{
|
||||
.name = "mips3",
|
||||
.description = "MIPS III ISA Support [highly experimental]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_fp64,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips3_32 = Feature{
|
||||
.name = "mips3_32",
|
||||
.description = "Subset of MIPS-III that is also in MIPS32 [highly experimental]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips3_32r2 = Feature{
|
||||
.name = "mips3_32r2",
|
||||
.description = "Subset of MIPS-III that is also in MIPS32r2 [highly experimental]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips4 = Feature{
|
||||
.name = "mips4",
|
||||
.description = "MIPS IV ISA Support",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_fp64,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips4_32 = Feature{
|
||||
.name = "mips4_32",
|
||||
.description = "Subset of MIPS-IV that is also in MIPS32 [highly experimental]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips4_32r2 = Feature{
|
||||
.name = "mips4_32r2",
|
||||
.description = "Subset of MIPS-IV that is also in MIPS32r2 [highly experimental]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips5 = Feature{
|
||||
.name = "mips5",
|
||||
.description = "MIPS V ISA Support [highly experimental]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips5_32r2 = Feature{
|
||||
.name = "mips5_32r2",
|
||||
.description = "Subset of MIPS-V that is also in MIPS32r2 [highly experimental]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips16 = Feature{
|
||||
.name = "mips16",
|
||||
.description = "Mips16 mode",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips32 = Feature{
|
||||
.name = "mips32",
|
||||
.description = "Mips32 ISA Support",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips1,
|
||||
&feature_mips4_32,
|
||||
&feature_mips3_32,
|
||||
&feature_mips4_32,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips32r2 = Feature{
|
||||
.name = "mips32r2",
|
||||
.description = "Mips32r2 ISA Support",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_mips4_32r2,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips32r3 = Feature{
|
||||
.name = "mips32r3",
|
||||
.description = "Mips32r3 ISA Support",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips3_32,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips32r5 = Feature{
|
||||
.name = "mips32r5",
|
||||
.description = "Mips32r5 ISA Support",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_mips4_32r2,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips32r6 = Feature{
|
||||
.name = "mips32r6",
|
||||
.description = "Mips32r6 ISA Support [experimental]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_abs2008,
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_nan2008,
|
||||
&feature_mips1,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips64 = Feature{
|
||||
.name = "mips64",
|
||||
.description = "Mips64 ISA Support",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_fp64,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips64r2 = Feature{
|
||||
.name = "mips64r2",
|
||||
.description = "Mips64r2 ISA Support",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips64r3 = Feature{
|
||||
.name = "mips64r3",
|
||||
.description = "Mips64r3 ISA Support",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_gp64,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips64r5 = Feature{
|
||||
.name = "mips64r5",
|
||||
.description = "Mips64r5 ISA Support",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mips64r6 = Feature{
|
||||
.name = "mips64r6",
|
||||
.description = "Mips64r6 ISA Support [experimental]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_abs2008,
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_nan2008,
|
||||
&feature_mips4_32,
|
||||
&feature_gp64,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_nan2008 = Feature{
|
||||
.name = "nan2008",
|
||||
.description = "IEEE 754-2008 NaN encoding",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_noabicalls = Feature{
|
||||
.name = "noabicalls",
|
||||
.description = "Disable SVR4-style position-independent code",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_nooddspreg = Feature{
|
||||
.name = "nooddspreg",
|
||||
.description = "Disable odd numbered single-precision registers",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ptr64 = Feature{
|
||||
.name = "ptr64",
|
||||
.description = "Pointers are 64-bit wide",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_singleFloat = Feature{
|
||||
.name = "single-float",
|
||||
.description = "Only supports single precision float",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_softFloat = Feature{
|
||||
.name = "soft-float",
|
||||
.description = "Does not support floating point instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sym32 = Feature{
|
||||
.name = "sym32",
|
||||
.description = "Symbols are 32 bit on Mips64",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_useIndirectJumpHazard = Feature{
|
||||
.name = "use-indirect-jump-hazard",
|
||||
.description = "Use indirect jump guards to prevent certain speculation based attacks",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_useTccInDiv = Feature{
|
||||
.name = "use-tcc-in-div",
|
||||
.description = "Force the assembler to use trapping",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_vfpu = Feature{
|
||||
.name = "vfpu",
|
||||
.description = "Enable vector FPU instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_virt = Feature{
|
||||
.name = "virt",
|
||||
.description = "Mips Virtualization ASE",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_xgot = Feature{
|
||||
.name = "xgot",
|
||||
.description = "Assume 32-bit GOT",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_p5600 = Feature{
|
||||
.name = "p5600",
|
||||
.description = "The P5600 Processor",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips3_32,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -516,7 +516,7 @@ pub const features = &[_]*const Feature {
|
|||
pub const cpu_mips1 = Cpu{
|
||||
.name = "mips1",
|
||||
.llvm_name = "mips1",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips1,
|
||||
},
|
||||
};
|
||||
|
@ -524,7 +524,7 @@ pub const cpu_mips1 = Cpu{
|
|||
pub const cpu_mips2 = Cpu{
|
||||
.name = "mips2",
|
||||
.llvm_name = "mips2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips1,
|
||||
&feature_mips2,
|
||||
},
|
||||
|
@ -533,12 +533,12 @@ pub const cpu_mips2 = Cpu{
|
|||
pub const cpu_mips3 = Cpu{
|
||||
.name = "mips3",
|
||||
.llvm_name = "mips3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_fp64,
|
||||
&feature_mips3,
|
||||
},
|
||||
};
|
||||
|
@ -546,10 +546,10 @@ pub const cpu_mips3 = Cpu{
|
|||
pub const cpu_mips32 = Cpu{
|
||||
.name = "mips32",
|
||||
.llvm_name = "mips32",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips1,
|
||||
&feature_mips4_32,
|
||||
&feature_mips3_32,
|
||||
&feature_mips4_32,
|
||||
&feature_mips32,
|
||||
},
|
||||
};
|
||||
|
@ -557,13 +557,13 @@ pub const cpu_mips32 = Cpu{
|
|||
pub const cpu_mips32r2 = Cpu{
|
||||
.name = "mips32r2",
|
||||
.llvm_name = "mips32r2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips32r2,
|
||||
},
|
||||
};
|
||||
|
@ -571,13 +571,13 @@ pub const cpu_mips32r2 = Cpu{
|
|||
pub const cpu_mips32r3 = Cpu{
|
||||
.name = "mips32r3",
|
||||
.llvm_name = "mips32r3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips3_32,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips32r3,
|
||||
},
|
||||
};
|
||||
|
@ -585,13 +585,13 @@ pub const cpu_mips32r3 = Cpu{
|
|||
pub const cpu_mips32r5 = Cpu{
|
||||
.name = "mips32r5",
|
||||
.llvm_name = "mips32r5",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips32r5,
|
||||
},
|
||||
};
|
||||
|
@ -599,16 +599,16 @@ pub const cpu_mips32r5 = Cpu{
|
|||
pub const cpu_mips32r6 = Cpu{
|
||||
.name = "mips32r6",
|
||||
.llvm_name = "mips32r6",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_abs2008,
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_nan2008,
|
||||
&feature_mips1,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
&feature_mips32r6,
|
||||
},
|
||||
};
|
||||
|
@ -616,14 +616,14 @@ pub const cpu_mips32r6 = Cpu{
|
|||
pub const cpu_mips4 = Cpu{
|
||||
.name = "mips4",
|
||||
.llvm_name = "mips4",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_fp64,
|
||||
&feature_mips4,
|
||||
},
|
||||
};
|
||||
|
@ -631,15 +631,15 @@ pub const cpu_mips4 = Cpu{
|
|||
pub const cpu_mips5 = Cpu{
|
||||
.name = "mips5",
|
||||
.llvm_name = "mips5",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
&feature_mips5,
|
||||
},
|
||||
};
|
||||
|
@ -647,15 +647,15 @@ pub const cpu_mips5 = Cpu{
|
|||
pub const cpu_mips64 = Cpu{
|
||||
.name = "mips64",
|
||||
.llvm_name = "mips64",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_fp64,
|
||||
&feature_mips64,
|
||||
},
|
||||
};
|
||||
|
@ -663,15 +663,15 @@ pub const cpu_mips64 = Cpu{
|
|||
pub const cpu_mips64r2 = Cpu{
|
||||
.name = "mips64r2",
|
||||
.llvm_name = "mips64r2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
&feature_mips64r2,
|
||||
},
|
||||
};
|
||||
|
@ -679,15 +679,15 @@ pub const cpu_mips64r2 = Cpu{
|
|||
pub const cpu_mips64r3 = Cpu{
|
||||
.name = "mips64r3",
|
||||
.llvm_name = "mips64r3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_gp64,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
&feature_mips64r3,
|
||||
},
|
||||
};
|
||||
|
@ -695,15 +695,15 @@ pub const cpu_mips64r3 = Cpu{
|
|||
pub const cpu_mips64r5 = Cpu{
|
||||
.name = "mips64r5",
|
||||
.llvm_name = "mips64r5",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
&feature_mips64r5,
|
||||
},
|
||||
};
|
||||
|
@ -711,17 +711,17 @@ pub const cpu_mips64r5 = Cpu{
|
|||
pub const cpu_mips64r6 = Cpu{
|
||||
.name = "mips64r6",
|
||||
.llvm_name = "mips64r6",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_abs2008,
|
||||
&feature_fp64,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_nan2008,
|
||||
&feature_mips4_32,
|
||||
&feature_gp64,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_fp64,
|
||||
&feature_mips64r6,
|
||||
},
|
||||
};
|
||||
|
@ -729,15 +729,15 @@ pub const cpu_mips64r6 = Cpu{
|
|||
pub const cpu_octeon = Cpu{
|
||||
.name = "octeon",
|
||||
.llvm_name = "octeon",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_fp64,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_gp64,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32,
|
||||
&feature_gp64,
|
||||
&feature_fp64,
|
||||
&feature_cnmips,
|
||||
&feature_mips64r2,
|
||||
},
|
||||
|
@ -746,13 +746,13 @@ pub const cpu_octeon = Cpu{
|
|||
pub const cpu_p5600 = Cpu{
|
||||
.name = "p5600",
|
||||
.llvm_name = "p5600",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
&feature_mips4_32r2,
|
||||
&feature_mips1,
|
||||
&feature_mips4_32,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips3_32r2,
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_mips3_32,
|
||||
&feature_mips1,
|
||||
&feature_mips3_32r2,
|
||||
&feature_mips5_32r2,
|
||||
&feature_mips4_32,
|
||||
&feature_mips4_32r2,
|
||||
&feature_p5600,
|
||||
},
|
||||
};
|
||||
|
|
|
@ -4,28 +4,28 @@ const Cpu = @import("std").target.Cpu;
|
|||
pub const feature_hwmult16 = Feature{
|
||||
.name = "hwmult16",
|
||||
.description = "Enable 16-bit hardware multiplier",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_hwmult32 = Feature{
|
||||
.name = "hwmult32",
|
||||
.description = "Enable 32-bit hardware multiplier",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_hwmultf5 = Feature{
|
||||
.name = "hwmultf5",
|
||||
.description = "Enable F5 series hardware multiplier",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ext = Feature{
|
||||
.name = "ext",
|
||||
.description = "Enable MSP430-X extensions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -39,21 +39,21 @@ pub const features = &[_]*const Feature {
|
|||
pub const cpu_generic = Cpu{
|
||||
.name = "generic",
|
||||
.llvm_name = "generic",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_msp430 = Cpu{
|
||||
.name = "msp430",
|
||||
.llvm_name = "msp430",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_msp430x = Cpu{
|
||||
.name = "msp430x",
|
||||
.llvm_name = "msp430x",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ext,
|
||||
},
|
||||
};
|
||||
|
|
|
@ -4,175 +4,175 @@ const Cpu = @import("std").target.Cpu;
|
|||
pub const feature_ptx32 = Feature{
|
||||
.name = "ptx32",
|
||||
.description = "Use PTX version 3.2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ptx40 = Feature{
|
||||
.name = "ptx40",
|
||||
.description = "Use PTX version 4.0",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ptx41 = Feature{
|
||||
.name = "ptx41",
|
||||
.description = "Use PTX version 4.1",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ptx42 = Feature{
|
||||
.name = "ptx42",
|
||||
.description = "Use PTX version 4.2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ptx43 = Feature{
|
||||
.name = "ptx43",
|
||||
.description = "Use PTX version 4.3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ptx50 = Feature{
|
||||
.name = "ptx50",
|
||||
.description = "Use PTX version 5.0",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ptx60 = Feature{
|
||||
.name = "ptx60",
|
||||
.description = "Use PTX version 6.0",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ptx61 = Feature{
|
||||
.name = "ptx61",
|
||||
.description = "Use PTX version 6.1",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ptx63 = Feature{
|
||||
.name = "ptx63",
|
||||
.description = "Use PTX version 6.3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ptx64 = Feature{
|
||||
.name = "ptx64",
|
||||
.description = "Use PTX version 6.4",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_20 = Feature{
|
||||
.name = "sm_20",
|
||||
.description = "Target SM 2.0",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_21 = Feature{
|
||||
.name = "sm_21",
|
||||
.description = "Target SM 2.1",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_30 = Feature{
|
||||
.name = "sm_30",
|
||||
.description = "Target SM 3.0",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_32 = Feature{
|
||||
.name = "sm_32",
|
||||
.description = "Target SM 3.2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_35 = Feature{
|
||||
.name = "sm_35",
|
||||
.description = "Target SM 3.5",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_37 = Feature{
|
||||
.name = "sm_37",
|
||||
.description = "Target SM 3.7",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_50 = Feature{
|
||||
.name = "sm_50",
|
||||
.description = "Target SM 5.0",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_52 = Feature{
|
||||
.name = "sm_52",
|
||||
.description = "Target SM 5.2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_53 = Feature{
|
||||
.name = "sm_53",
|
||||
.description = "Target SM 5.3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_60 = Feature{
|
||||
.name = "sm_60",
|
||||
.description = "Target SM 6.0",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_61 = Feature{
|
||||
.name = "sm_61",
|
||||
.description = "Target SM 6.1",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_62 = Feature{
|
||||
.name = "sm_62",
|
||||
.description = "Target SM 6.2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_70 = Feature{
|
||||
.name = "sm_70",
|
||||
.description = "Target SM 7.0",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_72 = Feature{
|
||||
.name = "sm_72",
|
||||
.description = "Target SM 7.2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_sm_75 = Feature{
|
||||
.name = "sm_75",
|
||||
.description = "Target SM 7.5",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -207,7 +207,7 @@ pub const features = &[_]*const Feature {
|
|||
pub const cpu_sm_20 = Cpu{
|
||||
.name = "sm_20",
|
||||
.llvm_name = "sm_20",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_sm_20,
|
||||
},
|
||||
};
|
||||
|
@ -215,7 +215,7 @@ pub const cpu_sm_20 = Cpu{
|
|||
pub const cpu_sm_21 = Cpu{
|
||||
.name = "sm_21",
|
||||
.llvm_name = "sm_21",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_sm_21,
|
||||
},
|
||||
};
|
||||
|
@ -223,7 +223,7 @@ pub const cpu_sm_21 = Cpu{
|
|||
pub const cpu_sm_30 = Cpu{
|
||||
.name = "sm_30",
|
||||
.llvm_name = "sm_30",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_sm_30,
|
||||
},
|
||||
};
|
||||
|
@ -231,7 +231,7 @@ pub const cpu_sm_30 = Cpu{
|
|||
pub const cpu_sm_32 = Cpu{
|
||||
.name = "sm_32",
|
||||
.llvm_name = "sm_32",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ptx40,
|
||||
&feature_sm_32,
|
||||
},
|
||||
|
@ -240,7 +240,7 @@ pub const cpu_sm_32 = Cpu{
|
|||
pub const cpu_sm_35 = Cpu{
|
||||
.name = "sm_35",
|
||||
.llvm_name = "sm_35",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_sm_35,
|
||||
},
|
||||
};
|
||||
|
@ -248,7 +248,7 @@ pub const cpu_sm_35 = Cpu{
|
|||
pub const cpu_sm_37 = Cpu{
|
||||
.name = "sm_37",
|
||||
.llvm_name = "sm_37",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ptx41,
|
||||
&feature_sm_37,
|
||||
},
|
||||
|
@ -257,7 +257,7 @@ pub const cpu_sm_37 = Cpu{
|
|||
pub const cpu_sm_50 = Cpu{
|
||||
.name = "sm_50",
|
||||
.llvm_name = "sm_50",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ptx40,
|
||||
&feature_sm_50,
|
||||
},
|
||||
|
@ -266,7 +266,7 @@ pub const cpu_sm_50 = Cpu{
|
|||
pub const cpu_sm_52 = Cpu{
|
||||
.name = "sm_52",
|
||||
.llvm_name = "sm_52",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ptx41,
|
||||
&feature_sm_52,
|
||||
},
|
||||
|
@ -275,7 +275,7 @@ pub const cpu_sm_52 = Cpu{
|
|||
pub const cpu_sm_53 = Cpu{
|
||||
.name = "sm_53",
|
||||
.llvm_name = "sm_53",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ptx42,
|
||||
&feature_sm_53,
|
||||
},
|
||||
|
@ -284,7 +284,7 @@ pub const cpu_sm_53 = Cpu{
|
|||
pub const cpu_sm_60 = Cpu{
|
||||
.name = "sm_60",
|
||||
.llvm_name = "sm_60",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ptx50,
|
||||
&feature_sm_60,
|
||||
},
|
||||
|
@ -293,7 +293,7 @@ pub const cpu_sm_60 = Cpu{
|
|||
pub const cpu_sm_61 = Cpu{
|
||||
.name = "sm_61",
|
||||
.llvm_name = "sm_61",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ptx50,
|
||||
&feature_sm_61,
|
||||
},
|
||||
|
@ -302,7 +302,7 @@ pub const cpu_sm_61 = Cpu{
|
|||
pub const cpu_sm_62 = Cpu{
|
||||
.name = "sm_62",
|
||||
.llvm_name = "sm_62",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ptx50,
|
||||
&feature_sm_62,
|
||||
},
|
||||
|
@ -311,7 +311,7 @@ pub const cpu_sm_62 = Cpu{
|
|||
pub const cpu_sm_70 = Cpu{
|
||||
.name = "sm_70",
|
||||
.llvm_name = "sm_70",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ptx60,
|
||||
&feature_sm_70,
|
||||
},
|
||||
|
@ -320,7 +320,7 @@ pub const cpu_sm_70 = Cpu{
|
|||
pub const cpu_sm_72 = Cpu{
|
||||
.name = "sm_72",
|
||||
.llvm_name = "sm_72",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ptx61,
|
||||
&feature_sm_72,
|
||||
},
|
||||
|
@ -329,7 +329,7 @@ pub const cpu_sm_72 = Cpu{
|
|||
pub const cpu_sm_75 = Cpu{
|
||||
.name = "sm_75",
|
||||
.llvm_name = "sm_75",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_ptx63,
|
||||
&feature_sm_75,
|
||||
},
|
||||
|
|
|
@ -4,21 +4,21 @@ const Cpu = @import("std").target.Cpu;
|
|||
pub const feature_bit64 = Feature{
|
||||
.name = "64bit",
|
||||
.description = "Enable 64-bit instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_bitregs64 = Feature{
|
||||
.name = "64bitregs",
|
||||
.description = "Enable 64-bit registers usage for ppc32 [beta]",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_altivec = Feature{
|
||||
.name = "altivec",
|
||||
.description = "Enable Altivec instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -26,14 +26,14 @@ pub const feature_altivec = Feature{
|
|||
pub const feature_bpermd = Feature{
|
||||
.name = "bpermd",
|
||||
.description = "Enable the bpermd instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_booke = Feature{
|
||||
.name = "booke",
|
||||
.description = "Enable Book E instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_icbt,
|
||||
},
|
||||
};
|
||||
|
@ -41,21 +41,21 @@ pub const feature_booke = Feature{
|
|||
pub const feature_cmpb = Feature{
|
||||
.name = "cmpb",
|
||||
.description = "Enable the cmpb instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_crbits = Feature{
|
||||
.name = "crbits",
|
||||
.description = "Use condition-register bits individually",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_directMove = Feature{
|
||||
.name = "direct-move",
|
||||
.description = "Enable Power8 direct move instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -63,21 +63,21 @@ pub const feature_directMove = Feature{
|
|||
pub const feature_e500 = Feature{
|
||||
.name = "e500",
|
||||
.description = "Enable E500/E500mc instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_extdiv = Feature{
|
||||
.name = "extdiv",
|
||||
.description = "Enable extended divide instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_fcpsgn = Feature{
|
||||
.name = "fcpsgn",
|
||||
.description = "Enable the fcpsgn instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -85,7 +85,7 @@ pub const feature_fcpsgn = Feature{
|
|||
pub const feature_fpcvt = Feature{
|
||||
.name = "fpcvt",
|
||||
.description = "Enable fc[ft]* (unsigned and single-precision) and lfiwzx instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -93,7 +93,7 @@ pub const feature_fpcvt = Feature{
|
|||
pub const feature_fprnd = Feature{
|
||||
.name = "fprnd",
|
||||
.description = "Enable the fri[mnpz] instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -101,7 +101,7 @@ pub const feature_fprnd = Feature{
|
|||
pub const feature_fpu = Feature{
|
||||
.name = "fpu",
|
||||
.description = "Enable classic FPU instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -109,7 +109,7 @@ pub const feature_fpu = Feature{
|
|||
pub const feature_fre = Feature{
|
||||
.name = "fre",
|
||||
.description = "Enable the fre instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -117,7 +117,7 @@ pub const feature_fre = Feature{
|
|||
pub const feature_fres = Feature{
|
||||
.name = "fres",
|
||||
.description = "Enable the fres instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -125,7 +125,7 @@ pub const feature_fres = Feature{
|
|||
pub const feature_frsqrte = Feature{
|
||||
.name = "frsqrte",
|
||||
.description = "Enable the frsqrte instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -133,7 +133,7 @@ pub const feature_frsqrte = Feature{
|
|||
pub const feature_frsqrtes = Feature{
|
||||
.name = "frsqrtes",
|
||||
.description = "Enable the frsqrtes instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -141,7 +141,7 @@ pub const feature_frsqrtes = Feature{
|
|||
pub const feature_fsqrt = Feature{
|
||||
.name = "fsqrt",
|
||||
.description = "Enable the fsqrt instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -149,7 +149,7 @@ pub const feature_fsqrt = Feature{
|
|||
pub const feature_float128 = Feature{
|
||||
.name = "float128",
|
||||
.description = "Enable the __float128 data type for IEEE-754R Binary128.",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -157,56 +157,56 @@ pub const feature_float128 = Feature{
|
|||
pub const feature_htm = Feature{
|
||||
.name = "htm",
|
||||
.description = "Enable Hardware Transactional Memory instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_hardFloat = Feature{
|
||||
.name = "hard-float",
|
||||
.description = "Enable floating-point instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_icbt = Feature{
|
||||
.name = "icbt",
|
||||
.description = "Enable icbt instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_isaV30Instructions = Feature{
|
||||
.name = "isa-v30-instructions",
|
||||
.description = "Enable instructions added in ISA 3.0.",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_isel = Feature{
|
||||
.name = "isel",
|
||||
.description = "Enable the isel instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_invariantFunctionDescriptors = Feature{
|
||||
.name = "invariant-function-descriptors",
|
||||
.description = "Assume function descriptors are invariant",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ldbrx = Feature{
|
||||
.name = "ldbrx",
|
||||
.description = "Enable the ldbrx instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_lfiwax = Feature{
|
||||
.name = "lfiwax",
|
||||
.description = "Enable the lfiwax instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -214,21 +214,21 @@ pub const feature_lfiwax = Feature{
|
|||
pub const feature_longcall = Feature{
|
||||
.name = "longcall",
|
||||
.description = "Always use indirect calls",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mfocrf = Feature{
|
||||
.name = "mfocrf",
|
||||
.description = "Enable the MFOCRF instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_msync = Feature{
|
||||
.name = "msync",
|
||||
.description = "Has only the msync instruction instead of sync",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_icbt,
|
||||
},
|
||||
};
|
||||
|
@ -236,7 +236,7 @@ pub const feature_msync = Feature{
|
|||
pub const feature_power8Altivec = Feature{
|
||||
.name = "power8-altivec",
|
||||
.description = "Enable POWER8 Altivec instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -244,7 +244,7 @@ pub const feature_power8Altivec = Feature{
|
|||
pub const feature_crypto = Feature{
|
||||
.name = "crypto",
|
||||
.description = "Enable POWER8 Crypto instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -252,7 +252,7 @@ pub const feature_crypto = Feature{
|
|||
pub const feature_power8Vector = Feature{
|
||||
.name = "power8-vector",
|
||||
.description = "Enable POWER8 vector instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -260,7 +260,7 @@ pub const feature_power8Vector = Feature{
|
|||
pub const feature_power9Altivec = Feature{
|
||||
.name = "power9-altivec",
|
||||
.description = "Enable POWER9 Altivec instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_isaV30Instructions,
|
||||
&feature_hardFloat,
|
||||
},
|
||||
|
@ -269,7 +269,7 @@ pub const feature_power9Altivec = Feature{
|
|||
pub const feature_power9Vector = Feature{
|
||||
.name = "power9-vector",
|
||||
.description = "Enable POWER9 vector instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_isaV30Instructions,
|
||||
&feature_hardFloat,
|
||||
},
|
||||
|
@ -278,49 +278,49 @@ pub const feature_power9Vector = Feature{
|
|||
pub const feature_popcntd = Feature{
|
||||
.name = "popcntd",
|
||||
.description = "Enable the popcnt[dw] instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ppc4xx = Feature{
|
||||
.name = "ppc4xx",
|
||||
.description = "Enable PPC 4xx instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ppc6xx = Feature{
|
||||
.name = "ppc6xx",
|
||||
.description = "Enable PPC 6xx instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ppcPostraSched = Feature{
|
||||
.name = "ppc-postra-sched",
|
||||
.description = "Use PowerPC post-RA scheduling strategy",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_ppcPreraSched = Feature{
|
||||
.name = "ppc-prera-sched",
|
||||
.description = "Use PowerPC pre-RA scheduling strategy",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_partwordAtomics = Feature{
|
||||
.name = "partword-atomics",
|
||||
.description = "Enable l[bh]arx and st[bh]cx.",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_qpx = Feature{
|
||||
.name = "qpx",
|
||||
.description = "Enable QPX instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -328,14 +328,14 @@ pub const feature_qpx = Feature{
|
|||
pub const feature_recipprec = Feature{
|
||||
.name = "recipprec",
|
||||
.description = "Assume higher precision reciprocal estimates",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_spe = Feature{
|
||||
.name = "spe",
|
||||
.description = "Enable SPE instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -343,7 +343,7 @@ pub const feature_spe = Feature{
|
|||
pub const feature_stfiwx = Feature{
|
||||
.name = "stfiwx",
|
||||
.description = "Enable the stfiwx instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -351,28 +351,28 @@ pub const feature_stfiwx = Feature{
|
|||
pub const feature_securePlt = Feature{
|
||||
.name = "secure-plt",
|
||||
.description = "Enable secure plt mode",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_slowPopcntd = Feature{
|
||||
.name = "slow-popcntd",
|
||||
.description = "Has slow popcnt[dw] instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_twoConstNr = Feature{
|
||||
.name = "two-const-nr",
|
||||
.description = "Requires two constant Newton-Raphson computation",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_vsx = Feature{
|
||||
.name = "vsx",
|
||||
.description = "Enable VSX instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -380,7 +380,7 @@ pub const feature_vsx = Feature{
|
|||
pub const feature_vectorsUseTwoUnits = Feature{
|
||||
.name = "vectors-use-two-units",
|
||||
.description = "Vectors use two units",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -441,7 +441,7 @@ pub const features = &[_]*const Feature {
|
|||
pub const cpu_440 = Cpu{
|
||||
.name = "440",
|
||||
.llvm_name = "440",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_icbt,
|
||||
&feature_booke,
|
||||
&feature_hardFloat,
|
||||
|
@ -455,7 +455,7 @@ pub const cpu_440 = Cpu{
|
|||
pub const cpu_450 = Cpu{
|
||||
.name = "450",
|
||||
.llvm_name = "450",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_icbt,
|
||||
&feature_booke,
|
||||
&feature_hardFloat,
|
||||
|
@ -469,7 +469,7 @@ pub const cpu_450 = Cpu{
|
|||
pub const cpu_601 = Cpu{
|
||||
.name = "601",
|
||||
.llvm_name = "601",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_fpu,
|
||||
},
|
||||
|
@ -478,7 +478,7 @@ pub const cpu_601 = Cpu{
|
|||
pub const cpu_602 = Cpu{
|
||||
.name = "602",
|
||||
.llvm_name = "602",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_fpu,
|
||||
},
|
||||
|
@ -487,7 +487,7 @@ pub const cpu_602 = Cpu{
|
|||
pub const cpu_603 = Cpu{
|
||||
.name = "603",
|
||||
.llvm_name = "603",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_fres,
|
||||
&feature_frsqrte,
|
||||
|
@ -497,7 +497,7 @@ pub const cpu_603 = Cpu{
|
|||
pub const cpu_e603 = Cpu{
|
||||
.name = "603e",
|
||||
.llvm_name = "603e",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_fres,
|
||||
&feature_frsqrte,
|
||||
|
@ -507,7 +507,7 @@ pub const cpu_e603 = Cpu{
|
|||
pub const cpu_ev603 = Cpu{
|
||||
.name = "603ev",
|
||||
.llvm_name = "603ev",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_fres,
|
||||
&feature_frsqrte,
|
||||
|
@ -517,7 +517,7 @@ pub const cpu_ev603 = Cpu{
|
|||
pub const cpu_604 = Cpu{
|
||||
.name = "604",
|
||||
.llvm_name = "604",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_fres,
|
||||
&feature_frsqrte,
|
||||
|
@ -527,7 +527,7 @@ pub const cpu_604 = Cpu{
|
|||
pub const cpu_e604 = Cpu{
|
||||
.name = "604e",
|
||||
.llvm_name = "604e",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_fres,
|
||||
&feature_frsqrte,
|
||||
|
@ -537,7 +537,7 @@ pub const cpu_e604 = Cpu{
|
|||
pub const cpu_620 = Cpu{
|
||||
.name = "620",
|
||||
.llvm_name = "620",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_fres,
|
||||
&feature_frsqrte,
|
||||
|
@ -547,7 +547,7 @@ pub const cpu_620 = Cpu{
|
|||
pub const cpu_7400 = Cpu{
|
||||
.name = "7400",
|
||||
.llvm_name = "7400",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
&feature_fres,
|
||||
|
@ -558,7 +558,7 @@ pub const cpu_7400 = Cpu{
|
|||
pub const cpu_7450 = Cpu{
|
||||
.name = "7450",
|
||||
.llvm_name = "7450",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
&feature_fres,
|
||||
|
@ -569,7 +569,7 @@ pub const cpu_7450 = Cpu{
|
|||
pub const cpu_750 = Cpu{
|
||||
.name = "750",
|
||||
.llvm_name = "750",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_fres,
|
||||
&feature_frsqrte,
|
||||
|
@ -579,7 +579,7 @@ pub const cpu_750 = Cpu{
|
|||
pub const cpu_970 = Cpu{
|
||||
.name = "970",
|
||||
.llvm_name = "970",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -594,7 +594,7 @@ pub const cpu_970 = Cpu{
|
|||
pub const cpu_a2 = Cpu{
|
||||
.name = "a2",
|
||||
.llvm_name = "a2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_icbt,
|
||||
&feature_booke,
|
||||
|
@ -621,7 +621,7 @@ pub const cpu_a2 = Cpu{
|
|||
pub const cpu_a2q = Cpu{
|
||||
.name = "a2q",
|
||||
.llvm_name = "a2q",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_icbt,
|
||||
&feature_booke,
|
||||
|
@ -649,7 +649,7 @@ pub const cpu_a2q = Cpu{
|
|||
pub const cpu_e500 = Cpu{
|
||||
.name = "e500",
|
||||
.llvm_name = "e500",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_icbt,
|
||||
&feature_booke,
|
||||
&feature_isel,
|
||||
|
@ -659,7 +659,7 @@ pub const cpu_e500 = Cpu{
|
|||
pub const cpu_e500mc = Cpu{
|
||||
.name = "e500mc",
|
||||
.llvm_name = "e500mc",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_icbt,
|
||||
&feature_booke,
|
||||
&feature_isel,
|
||||
|
@ -671,7 +671,7 @@ pub const cpu_e500mc = Cpu{
|
|||
pub const cpu_e5500 = Cpu{
|
||||
.name = "e5500",
|
||||
.llvm_name = "e5500",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_icbt,
|
||||
&feature_booke,
|
||||
|
@ -685,7 +685,7 @@ pub const cpu_e5500 = Cpu{
|
|||
pub const cpu_g3 = Cpu{
|
||||
.name = "g3",
|
||||
.llvm_name = "g3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_fres,
|
||||
&feature_frsqrte,
|
||||
|
@ -695,7 +695,7 @@ pub const cpu_g3 = Cpu{
|
|||
pub const cpu_g4 = Cpu{
|
||||
.name = "g4",
|
||||
.llvm_name = "g4",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
&feature_fres,
|
||||
|
@ -706,7 +706,7 @@ pub const cpu_g4 = Cpu{
|
|||
pub const cpu_g4Plus = Cpu{
|
||||
.name = "g4+",
|
||||
.llvm_name = "g4+",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
&feature_fres,
|
||||
|
@ -717,7 +717,7 @@ pub const cpu_g4Plus = Cpu{
|
|||
pub const cpu_g5 = Cpu{
|
||||
.name = "g5",
|
||||
.llvm_name = "g5",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -732,7 +732,7 @@ pub const cpu_g5 = Cpu{
|
|||
pub const cpu_generic = Cpu{
|
||||
.name = "generic",
|
||||
.llvm_name = "generic",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -740,7 +740,7 @@ pub const cpu_generic = Cpu{
|
|||
pub const cpu_ppc = Cpu{
|
||||
.name = "ppc",
|
||||
.llvm_name = "ppc",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -748,7 +748,7 @@ pub const cpu_ppc = Cpu{
|
|||
pub const cpu_ppc32 = Cpu{
|
||||
.name = "ppc32",
|
||||
.llvm_name = "ppc32",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_hardFloat,
|
||||
},
|
||||
};
|
||||
|
@ -756,7 +756,7 @@ pub const cpu_ppc32 = Cpu{
|
|||
pub const cpu_ppc64 = Cpu{
|
||||
.name = "ppc64",
|
||||
.llvm_name = "ppc64",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -771,7 +771,7 @@ pub const cpu_ppc64 = Cpu{
|
|||
pub const cpu_ppc64le = Cpu{
|
||||
.name = "ppc64le",
|
||||
.llvm_name = "ppc64le",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -808,7 +808,7 @@ pub const cpu_ppc64le = Cpu{
|
|||
pub const cpu_pwr3 = Cpu{
|
||||
.name = "pwr3",
|
||||
.llvm_name = "pwr3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -822,7 +822,7 @@ pub const cpu_pwr3 = Cpu{
|
|||
pub const cpu_pwr4 = Cpu{
|
||||
.name = "pwr4",
|
||||
.llvm_name = "pwr4",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -837,7 +837,7 @@ pub const cpu_pwr4 = Cpu{
|
|||
pub const cpu_pwr5 = Cpu{
|
||||
.name = "pwr5",
|
||||
.llvm_name = "pwr5",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -854,7 +854,7 @@ pub const cpu_pwr5 = Cpu{
|
|||
pub const cpu_pwr5x = Cpu{
|
||||
.name = "pwr5x",
|
||||
.llvm_name = "pwr5x",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -872,7 +872,7 @@ pub const cpu_pwr5x = Cpu{
|
|||
pub const cpu_pwr6 = Cpu{
|
||||
.name = "pwr6",
|
||||
.llvm_name = "pwr6",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -894,7 +894,7 @@ pub const cpu_pwr6 = Cpu{
|
|||
pub const cpu_pwr6x = Cpu{
|
||||
.name = "pwr6x",
|
||||
.llvm_name = "pwr6x",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -916,7 +916,7 @@ pub const cpu_pwr6x = Cpu{
|
|||
pub const cpu_pwr7 = Cpu{
|
||||
.name = "pwr7",
|
||||
.llvm_name = "pwr7",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -946,7 +946,7 @@ pub const cpu_pwr7 = Cpu{
|
|||
pub const cpu_pwr8 = Cpu{
|
||||
.name = "pwr8",
|
||||
.llvm_name = "pwr8",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
@ -983,7 +983,7 @@ pub const cpu_pwr8 = Cpu{
|
|||
pub const cpu_pwr9 = Cpu{
|
||||
.name = "pwr9",
|
||||
.llvm_name = "pwr9",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_hardFloat,
|
||||
&feature_altivec,
|
||||
|
|
|
@ -4,49 +4,49 @@ const Cpu = @import("std").target.Cpu;
|
|||
pub const feature_bit64 = Feature{
|
||||
.name = "64bit",
|
||||
.description = "Implements RV64",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_e = Feature{
|
||||
.name = "e",
|
||||
.description = "Implements RV32E (provides 16 rather than 32 GPRs)",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_rvcHints = Feature{
|
||||
.name = "rvc-hints",
|
||||
.description = "Enable RVC Hint Instructions.",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_relax = Feature{
|
||||
.name = "relax",
|
||||
.description = "Enable Linker relaxation.",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_a = Feature{
|
||||
.name = "a",
|
||||
.description = "'A' (Atomic Instructions)",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_c = Feature{
|
||||
.name = "c",
|
||||
.description = "'C' (Compressed Instructions)",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_d = Feature{
|
||||
.name = "d",
|
||||
.description = "'D' (Double-Precision Floating-Point)",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_f,
|
||||
},
|
||||
};
|
||||
|
@ -54,14 +54,14 @@ pub const feature_d = Feature{
|
|||
pub const feature_f = Feature{
|
||||
.name = "f",
|
||||
.description = "'F' (Single-Precision Floating-Point)",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_m = Feature{
|
||||
.name = "m",
|
||||
.description = "'M' (Integer Multiplication and Division)",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -80,7 +80,7 @@ pub const features = &[_]*const Feature {
|
|||
pub const cpu_genericRv32 = Cpu{
|
||||
.name = "generic-rv32",
|
||||
.llvm_name = "generic-rv32",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_rvcHints,
|
||||
},
|
||||
};
|
||||
|
@ -88,7 +88,7 @@ pub const cpu_genericRv32 = Cpu{
|
|||
pub const cpu_genericRv64 = Cpu{
|
||||
.name = "generic-rv64",
|
||||
.llvm_name = "generic-rv64",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_bit64,
|
||||
&feature_rvcHints,
|
||||
},
|
||||
|
|
|
@ -4,84 +4,84 @@ const Cpu = @import("std").target.Cpu;
|
|||
pub const feature_hardQuadFloat = Feature{
|
||||
.name = "hard-quad-float",
|
||||
.description = "Enable quad-word floating point instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_leon = Feature{
|
||||
.name = "leon",
|
||||
.description = "Enable LEON extensions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_noFmuls = Feature{
|
||||
.name = "no-fmuls",
|
||||
.description = "Disable the fmuls instruction.",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_noFsmuld = Feature{
|
||||
.name = "no-fsmuld",
|
||||
.description = "Disable the fsmuld instruction.",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_leonpwrpsr = Feature{
|
||||
.name = "leonpwrpsr",
|
||||
.description = "Enable the PWRPSR instruction",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_softFloat = Feature{
|
||||
.name = "soft-float",
|
||||
.description = "Use software emulation for floating point",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_softMulDiv = Feature{
|
||||
.name = "soft-mul-div",
|
||||
.description = "Use software emulation for integer multiply and divide",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_deprecatedV8 = Feature{
|
||||
.name = "deprecated-v8",
|
||||
.description = "Enable deprecated V8 instructions in V9 mode",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_v9 = Feature{
|
||||
.name = "v9",
|
||||
.description = "Enable SPARC-V9 instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_vis = Feature{
|
||||
.name = "vis",
|
||||
.description = "Enable UltraSPARC Visual Instruction Set extensions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_vis2 = Feature{
|
||||
.name = "vis2",
|
||||
.description = "Enable Visual Instruction Set extensions II",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_vis3 = Feature{
|
||||
.name = "vis3",
|
||||
.description = "Enable Visual Instruction Set extensions III",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -103,7 +103,7 @@ pub const features = &[_]*const Feature {
|
|||
pub const cpu_at697e = Cpu{
|
||||
.name = "at697e",
|
||||
.llvm_name = "at697e",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -111,7 +111,7 @@ pub const cpu_at697e = Cpu{
|
|||
pub const cpu_at697f = Cpu{
|
||||
.name = "at697f",
|
||||
.llvm_name = "at697f",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -119,21 +119,21 @@ pub const cpu_at697f = Cpu{
|
|||
pub const cpu_f934 = Cpu{
|
||||
.name = "f934",
|
||||
.llvm_name = "f934",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_generic = Cpu{
|
||||
.name = "generic",
|
||||
.llvm_name = "generic",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_gr712rc = Cpu{
|
||||
.name = "gr712rc",
|
||||
.llvm_name = "gr712rc",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -141,7 +141,7 @@ pub const cpu_gr712rc = Cpu{
|
|||
pub const cpu_gr740 = Cpu{
|
||||
.name = "gr740",
|
||||
.llvm_name = "gr740",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
&feature_leonpwrpsr,
|
||||
},
|
||||
|
@ -150,14 +150,14 @@ pub const cpu_gr740 = Cpu{
|
|||
pub const cpu_hypersparc = Cpu{
|
||||
.name = "hypersparc",
|
||||
.llvm_name = "hypersparc",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_leon2 = Cpu{
|
||||
.name = "leon2",
|
||||
.llvm_name = "leon2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -165,7 +165,7 @@ pub const cpu_leon2 = Cpu{
|
|||
pub const cpu_leon3 = Cpu{
|
||||
.name = "leon3",
|
||||
.llvm_name = "leon3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -173,7 +173,7 @@ pub const cpu_leon3 = Cpu{
|
|||
pub const cpu_leon4 = Cpu{
|
||||
.name = "leon4",
|
||||
.llvm_name = "leon4",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -181,7 +181,7 @@ pub const cpu_leon4 = Cpu{
|
|||
pub const cpu_ma2080 = Cpu{
|
||||
.name = "ma2080",
|
||||
.llvm_name = "ma2080",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -189,7 +189,7 @@ pub const cpu_ma2080 = Cpu{
|
|||
pub const cpu_ma2085 = Cpu{
|
||||
.name = "ma2085",
|
||||
.llvm_name = "ma2085",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -197,7 +197,7 @@ pub const cpu_ma2085 = Cpu{
|
|||
pub const cpu_ma2100 = Cpu{
|
||||
.name = "ma2100",
|
||||
.llvm_name = "ma2100",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -205,7 +205,7 @@ pub const cpu_ma2100 = Cpu{
|
|||
pub const cpu_ma2150 = Cpu{
|
||||
.name = "ma2150",
|
||||
.llvm_name = "ma2150",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -213,7 +213,7 @@ pub const cpu_ma2150 = Cpu{
|
|||
pub const cpu_ma2155 = Cpu{
|
||||
.name = "ma2155",
|
||||
.llvm_name = "ma2155",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -221,7 +221,7 @@ pub const cpu_ma2155 = Cpu{
|
|||
pub const cpu_ma2450 = Cpu{
|
||||
.name = "ma2450",
|
||||
.llvm_name = "ma2450",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -229,7 +229,7 @@ pub const cpu_ma2450 = Cpu{
|
|||
pub const cpu_ma2455 = Cpu{
|
||||
.name = "ma2455",
|
||||
.llvm_name = "ma2455",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -237,7 +237,7 @@ pub const cpu_ma2455 = Cpu{
|
|||
pub const cpu_ma2480 = Cpu{
|
||||
.name = "ma2480",
|
||||
.llvm_name = "ma2480",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -245,7 +245,7 @@ pub const cpu_ma2480 = Cpu{
|
|||
pub const cpu_ma2485 = Cpu{
|
||||
.name = "ma2485",
|
||||
.llvm_name = "ma2485",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -253,7 +253,7 @@ pub const cpu_ma2485 = Cpu{
|
|||
pub const cpu_ma2x5x = Cpu{
|
||||
.name = "ma2x5x",
|
||||
.llvm_name = "ma2x5x",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -261,7 +261,7 @@ pub const cpu_ma2x5x = Cpu{
|
|||
pub const cpu_ma2x8x = Cpu{
|
||||
.name = "ma2x8x",
|
||||
.llvm_name = "ma2x8x",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -269,7 +269,7 @@ pub const cpu_ma2x8x = Cpu{
|
|||
pub const cpu_myriad2 = Cpu{
|
||||
.name = "myriad2",
|
||||
.llvm_name = "myriad2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -277,7 +277,7 @@ pub const cpu_myriad2 = Cpu{
|
|||
pub const cpu_myriad21 = Cpu{
|
||||
.name = "myriad2.1",
|
||||
.llvm_name = "myriad2.1",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -285,7 +285,7 @@ pub const cpu_myriad21 = Cpu{
|
|||
pub const cpu_myriad22 = Cpu{
|
||||
.name = "myriad2.2",
|
||||
.llvm_name = "myriad2.2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -293,7 +293,7 @@ pub const cpu_myriad22 = Cpu{
|
|||
pub const cpu_myriad23 = Cpu{
|
||||
.name = "myriad2.3",
|
||||
.llvm_name = "myriad2.3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
},
|
||||
};
|
||||
|
@ -301,7 +301,7 @@ pub const cpu_myriad23 = Cpu{
|
|||
pub const cpu_niagara = Cpu{
|
||||
.name = "niagara",
|
||||
.llvm_name = "niagara",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_deprecatedV8,
|
||||
&feature_v9,
|
||||
&feature_vis,
|
||||
|
@ -312,7 +312,7 @@ pub const cpu_niagara = Cpu{
|
|||
pub const cpu_niagara2 = Cpu{
|
||||
.name = "niagara2",
|
||||
.llvm_name = "niagara2",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_deprecatedV8,
|
||||
&feature_v9,
|
||||
&feature_vis,
|
||||
|
@ -323,7 +323,7 @@ pub const cpu_niagara2 = Cpu{
|
|||
pub const cpu_niagara3 = Cpu{
|
||||
.name = "niagara3",
|
||||
.llvm_name = "niagara3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_deprecatedV8,
|
||||
&feature_v9,
|
||||
&feature_vis,
|
||||
|
@ -334,7 +334,7 @@ pub const cpu_niagara3 = Cpu{
|
|||
pub const cpu_niagara4 = Cpu{
|
||||
.name = "niagara4",
|
||||
.llvm_name = "niagara4",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_deprecatedV8,
|
||||
&feature_v9,
|
||||
&feature_vis,
|
||||
|
@ -346,42 +346,42 @@ pub const cpu_niagara4 = Cpu{
|
|||
pub const cpu_sparclet = Cpu{
|
||||
.name = "sparclet",
|
||||
.llvm_name = "sparclet",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_sparclite = Cpu{
|
||||
.name = "sparclite",
|
||||
.llvm_name = "sparclite",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_sparclite86x = Cpu{
|
||||
.name = "sparclite86x",
|
||||
.llvm_name = "sparclite86x",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_supersparc = Cpu{
|
||||
.name = "supersparc",
|
||||
.llvm_name = "supersparc",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_tsc701 = Cpu{
|
||||
.name = "tsc701",
|
||||
.llvm_name = "tsc701",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_ultrasparc = Cpu{
|
||||
.name = "ultrasparc",
|
||||
.llvm_name = "ultrasparc",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_deprecatedV8,
|
||||
&feature_v9,
|
||||
&feature_vis,
|
||||
|
@ -391,7 +391,7 @@ pub const cpu_ultrasparc = Cpu{
|
|||
pub const cpu_ultrasparc3 = Cpu{
|
||||
.name = "ultrasparc3",
|
||||
.llvm_name = "ultrasparc3",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_deprecatedV8,
|
||||
&feature_v9,
|
||||
&feature_vis,
|
||||
|
@ -402,7 +402,7 @@ pub const cpu_ultrasparc3 = Cpu{
|
|||
pub const cpu_ut699 = Cpu{
|
||||
.name = "ut699",
|
||||
.llvm_name = "ut699",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_leon,
|
||||
&feature_noFmuls,
|
||||
&feature_noFsmuld,
|
||||
|
@ -412,7 +412,7 @@ pub const cpu_ut699 = Cpu{
|
|||
pub const cpu_v7 = Cpu{
|
||||
.name = "v7",
|
||||
.llvm_name = "v7",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_noFsmuld,
|
||||
&feature_softMulDiv,
|
||||
},
|
||||
|
@ -421,14 +421,14 @@ pub const cpu_v7 = Cpu{
|
|||
pub const cpu_v8 = Cpu{
|
||||
.name = "v8",
|
||||
.llvm_name = "v8",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_v9 = Cpu{
|
||||
.name = "v9",
|
||||
.llvm_name = "v9",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_v9,
|
||||
},
|
||||
};
|
||||
|
|
|
@ -4,245 +4,245 @@ const Cpu = @import("std").target.Cpu;
|
|||
pub const feature_dfpPackedConversion = Feature{
|
||||
.name = "dfp-packed-conversion",
|
||||
.description = "Assume that the DFP packed-conversion facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_dfpZonedConversion = Feature{
|
||||
.name = "dfp-zoned-conversion",
|
||||
.description = "Assume that the DFP zoned-conversion facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_deflateConversion = Feature{
|
||||
.name = "deflate-conversion",
|
||||
.description = "Assume that the deflate-conversion facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_distinctOps = Feature{
|
||||
.name = "distinct-ops",
|
||||
.description = "Assume that the distinct-operands facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_enhancedDat2 = Feature{
|
||||
.name = "enhanced-dat-2",
|
||||
.description = "Assume that the enhanced-DAT facility 2 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_enhancedSort = Feature{
|
||||
.name = "enhanced-sort",
|
||||
.description = "Assume that the enhanced-sort facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_executionHint = Feature{
|
||||
.name = "execution-hint",
|
||||
.description = "Assume that the execution-hint facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_fpExtension = Feature{
|
||||
.name = "fp-extension",
|
||||
.description = "Assume that the floating-point extension facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_fastSerialization = Feature{
|
||||
.name = "fast-serialization",
|
||||
.description = "Assume that the fast-serialization facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_guardedStorage = Feature{
|
||||
.name = "guarded-storage",
|
||||
.description = "Assume that the guarded-storage facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_highWord = Feature{
|
||||
.name = "high-word",
|
||||
.description = "Assume that the high-word facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_insertReferenceBitsMultiple = Feature{
|
||||
.name = "insert-reference-bits-multiple",
|
||||
.description = "Assume that the insert-reference-bits-multiple facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_interlockedAccess1 = Feature{
|
||||
.name = "interlocked-access1",
|
||||
.description = "Assume that interlocked-access facility 1 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_loadAndTrap = Feature{
|
||||
.name = "load-and-trap",
|
||||
.description = "Assume that the load-and-trap facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_loadAndZeroRightmostByte = Feature{
|
||||
.name = "load-and-zero-rightmost-byte",
|
||||
.description = "Assume that the load-and-zero-rightmost-byte facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_loadStoreOnCond = Feature{
|
||||
.name = "load-store-on-cond",
|
||||
.description = "Assume that the load/store-on-condition facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_loadStoreOnCond2 = Feature{
|
||||
.name = "load-store-on-cond-2",
|
||||
.description = "Assume that the load/store-on-condition facility 2 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_messageSecurityAssistExtension3 = Feature{
|
||||
.name = "message-security-assist-extension3",
|
||||
.description = "Assume that the message-security-assist extension facility 3 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_messageSecurityAssistExtension4 = Feature{
|
||||
.name = "message-security-assist-extension4",
|
||||
.description = "Assume that the message-security-assist extension facility 4 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_messageSecurityAssistExtension5 = Feature{
|
||||
.name = "message-security-assist-extension5",
|
||||
.description = "Assume that the message-security-assist extension facility 5 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_messageSecurityAssistExtension7 = Feature{
|
||||
.name = "message-security-assist-extension7",
|
||||
.description = "Assume that the message-security-assist extension facility 7 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_messageSecurityAssistExtension8 = Feature{
|
||||
.name = "message-security-assist-extension8",
|
||||
.description = "Assume that the message-security-assist extension facility 8 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_messageSecurityAssistExtension9 = Feature{
|
||||
.name = "message-security-assist-extension9",
|
||||
.description = "Assume that the message-security-assist extension facility 9 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_miscellaneousExtensions = Feature{
|
||||
.name = "miscellaneous-extensions",
|
||||
.description = "Assume that the miscellaneous-extensions facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_miscellaneousExtensions2 = Feature{
|
||||
.name = "miscellaneous-extensions-2",
|
||||
.description = "Assume that the miscellaneous-extensions facility 2 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_miscellaneousExtensions3 = Feature{
|
||||
.name = "miscellaneous-extensions-3",
|
||||
.description = "Assume that the miscellaneous-extensions facility 3 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_populationCount = Feature{
|
||||
.name = "population-count",
|
||||
.description = "Assume that the population-count facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_processorAssist = Feature{
|
||||
.name = "processor-assist",
|
||||
.description = "Assume that the processor-assist facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_resetReferenceBitsMultiple = Feature{
|
||||
.name = "reset-reference-bits-multiple",
|
||||
.description = "Assume that the reset-reference-bits-multiple facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_transactionalExecution = Feature{
|
||||
.name = "transactional-execution",
|
||||
.description = "Assume that the transactional-execution facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_vector = Feature{
|
||||
.name = "vector",
|
||||
.description = "Assume that the vectory facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_vectorEnhancements1 = Feature{
|
||||
.name = "vector-enhancements-1",
|
||||
.description = "Assume that the vector enhancements facility 1 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_vectorEnhancements2 = Feature{
|
||||
.name = "vector-enhancements-2",
|
||||
.description = "Assume that the vector enhancements facility 2 is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_vectorPackedDecimal = Feature{
|
||||
.name = "vector-packed-decimal",
|
||||
.description = "Assume that the vector packed decimal facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_vectorPackedDecimalEnhancement = Feature{
|
||||
.name = "vector-packed-decimal-enhancement",
|
||||
.description = "Assume that the vector packed decimal enhancement facility is installed",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -287,7 +287,7 @@ pub const features = &[_]*const Feature {
|
|||
pub const cpu_arch10 = Cpu{
|
||||
.name = "arch10",
|
||||
.llvm_name = "arch10",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_dfpZonedConversion,
|
||||
&feature_distinctOps,
|
||||
&feature_enhancedDat2,
|
||||
|
@ -311,7 +311,7 @@ pub const cpu_arch10 = Cpu{
|
|||
pub const cpu_arch11 = Cpu{
|
||||
.name = "arch11",
|
||||
.llvm_name = "arch11",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_dfpPackedConversion,
|
||||
&feature_dfpZonedConversion,
|
||||
&feature_distinctOps,
|
||||
|
@ -340,7 +340,7 @@ pub const cpu_arch11 = Cpu{
|
|||
pub const cpu_arch12 = Cpu{
|
||||
.name = "arch12",
|
||||
.llvm_name = "arch12",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_dfpPackedConversion,
|
||||
&feature_dfpZonedConversion,
|
||||
&feature_distinctOps,
|
||||
|
@ -376,7 +376,7 @@ pub const cpu_arch12 = Cpu{
|
|||
pub const cpu_arch13 = Cpu{
|
||||
.name = "arch13",
|
||||
.llvm_name = "arch13",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_dfpPackedConversion,
|
||||
&feature_dfpZonedConversion,
|
||||
&feature_deflateConversion,
|
||||
|
@ -418,14 +418,14 @@ pub const cpu_arch13 = Cpu{
|
|||
pub const cpu_arch8 = Cpu{
|
||||
.name = "arch8",
|
||||
.llvm_name = "arch8",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_arch9 = Cpu{
|
||||
.name = "arch9",
|
||||
.llvm_name = "arch9",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_distinctOps,
|
||||
&feature_fpExtension,
|
||||
&feature_fastSerialization,
|
||||
|
@ -442,21 +442,21 @@ pub const cpu_arch9 = Cpu{
|
|||
pub const cpu_generic = Cpu{
|
||||
.name = "generic",
|
||||
.llvm_name = "generic",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_z10 = Cpu{
|
||||
.name = "z10",
|
||||
.llvm_name = "z10",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_z13 = Cpu{
|
||||
.name = "z13",
|
||||
.llvm_name = "z13",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_dfpPackedConversion,
|
||||
&feature_dfpZonedConversion,
|
||||
&feature_distinctOps,
|
||||
|
@ -485,7 +485,7 @@ pub const cpu_z13 = Cpu{
|
|||
pub const cpu_z14 = Cpu{
|
||||
.name = "z14",
|
||||
.llvm_name = "z14",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_dfpPackedConversion,
|
||||
&feature_dfpZonedConversion,
|
||||
&feature_distinctOps,
|
||||
|
@ -521,7 +521,7 @@ pub const cpu_z14 = Cpu{
|
|||
pub const cpu_z15 = Cpu{
|
||||
.name = "z15",
|
||||
.llvm_name = "z15",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_dfpPackedConversion,
|
||||
&feature_dfpZonedConversion,
|
||||
&feature_deflateConversion,
|
||||
|
@ -563,7 +563,7 @@ pub const cpu_z15 = Cpu{
|
|||
pub const cpu_z196 = Cpu{
|
||||
.name = "z196",
|
||||
.llvm_name = "z196",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_distinctOps,
|
||||
&feature_fpExtension,
|
||||
&feature_fastSerialization,
|
||||
|
@ -580,7 +580,7 @@ pub const cpu_z196 = Cpu{
|
|||
pub const cpu_zEC12 = Cpu{
|
||||
.name = "zEC12",
|
||||
.llvm_name = "zEC12",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_dfpZonedConversion,
|
||||
&feature_distinctOps,
|
||||
&feature_enhancedDat2,
|
||||
|
|
|
@ -4,70 +4,70 @@ const Cpu = @import("std").target.Cpu;
|
|||
pub const feature_atomics = Feature{
|
||||
.name = "atomics",
|
||||
.description = "Enable Atomics",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_bulkMemory = Feature{
|
||||
.name = "bulk-memory",
|
||||
.description = "Enable bulk memory operations",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_exceptionHandling = Feature{
|
||||
.name = "exception-handling",
|
||||
.description = "Enable Wasm exception handling",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_multivalue = Feature{
|
||||
.name = "multivalue",
|
||||
.description = "Enable multivalue blocks, instructions, and functions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_mutableGlobals = Feature{
|
||||
.name = "mutable-globals",
|
||||
.description = "Enable mutable globals",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_nontrappingFptoint = Feature{
|
||||
.name = "nontrapping-fptoint",
|
||||
.description = "Enable non-trapping float-to-int conversion operators",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_simd128 = Feature{
|
||||
.name = "simd128",
|
||||
.description = "Enable 128-bit SIMD",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_signExt = Feature{
|
||||
.name = "sign-ext",
|
||||
.description = "Enable sign extension operators",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_tailCall = Feature{
|
||||
.name = "tail-call",
|
||||
.description = "Enable tail call instructions",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const feature_unimplementedSimd128 = Feature{
|
||||
.name = "unimplemented-simd128",
|
||||
.description = "Enable 128-bit SIMD not yet implemented in engines",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_simd128,
|
||||
},
|
||||
};
|
||||
|
@ -88,7 +88,7 @@ pub const features = &[_]*const Feature {
|
|||
pub const cpu_bleedingEdge = Cpu{
|
||||
.name = "bleeding-edge",
|
||||
.llvm_name = "bleeding-edge",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
&feature_atomics,
|
||||
&feature_mutableGlobals,
|
||||
&feature_nontrappingFptoint,
|
||||
|
@ -100,14 +100,14 @@ pub const cpu_bleedingEdge = Cpu{
|
|||
pub const cpu_generic = Cpu{
|
||||
.name = "generic",
|
||||
.llvm_name = "generic",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
pub const cpu_mvp = Cpu{
|
||||
.name = "mvp",
|
||||
.llvm_name = "mvp",
|
||||
.subfeatures = &[_]*const Feature {
|
||||
.dependencies = &[_]*const Feature {
|
||||
},
|
||||
};
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
12
src/main.cpp
12
src/main.cpp
|
@ -135,7 +135,7 @@ static int print_full_usage(const char *arg0, FILE *file, int return_code) {
|
|||
"Targets Options:\n"
|
||||
" --list-features [arch] list available features for the given architecture\n"
|
||||
" --list-cpus [arch] list available cpus for the given architecture\n"
|
||||
" --show-subfeatures list subfeatures for each entry from --list-features or --list-cpus\n"
|
||||
" --show-dependencies list feature dependencies for each entry from --list-{features,cpus}\n"
|
||||
, arg0);
|
||||
return return_code;
|
||||
}
|
||||
|
@ -540,7 +540,7 @@ int main(int argc, char **argv) {
|
|||
|
||||
const char *targets_list_features_arch = nullptr;
|
||||
const char *targets_list_cpus_arch = nullptr;
|
||||
bool targets_show_subfeatures = false;
|
||||
bool targets_show_dependencies = false;
|
||||
|
||||
ZigList<const char *> llvm_argv = {0};
|
||||
llvm_argv.append("zig (LLVM option parsing)");
|
||||
|
@ -792,8 +792,8 @@ int main(int argc, char **argv) {
|
|||
cur_pkg = cur_pkg->parent;
|
||||
} else if (strcmp(arg, "-ffunction-sections") == 0) {
|
||||
function_sections = true;
|
||||
} else if (strcmp(arg, "--show-subfeatures") == 0) {
|
||||
targets_show_subfeatures = true;
|
||||
} else if (strcmp(arg, "--show-dependencies") == 0) {
|
||||
targets_show_dependencies = true;
|
||||
} else if (i + 1 >= argc) {
|
||||
fprintf(stderr, "Expected another argument after %s\n", arg);
|
||||
return print_error_usage(arg0);
|
||||
|
@ -1448,13 +1448,13 @@ int main(int argc, char **argv) {
|
|||
stage2_list_features_for_arch(
|
||||
targets_list_features_arch,
|
||||
strlen(targets_list_features_arch),
|
||||
targets_show_subfeatures);
|
||||
targets_show_dependencies);
|
||||
return 0;
|
||||
} else if (targets_list_cpus_arch != nullptr) {
|
||||
stage2_list_cpus_for_arch(
|
||||
targets_list_cpus_arch,
|
||||
strlen(targets_list_cpus_arch),
|
||||
targets_show_subfeatures);
|
||||
targets_show_dependencies);
|
||||
return 0;
|
||||
} else {
|
||||
return print_target_list(stdout);
|
||||
|
|
Loading…
Reference in New Issue