Remove llvm_name from features

master
Layne Gustafson 2019-12-20 20:07:29 -05:00 committed by Andrew Kelley
parent c131e50ea7
commit c8f1e0d6d8
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9
16 changed files with 3953 additions and 4779 deletions

View File

@ -861,7 +861,6 @@ pub const x86 = @import("target/x86.zig");
pub const Feature = struct {
name: []const u8,
description: []const u8,
llvm_name: []const u8,
subfeatures: []*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

View File

@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu;
pub const feature_alu32 = Feature{
.name = "alu32",
.description = "Enable ALU32 instructions",
.llvm_name = "alu32",
.subfeatures = &[_]*const Feature {
},
};
@ -12,7 +11,6 @@ pub const feature_alu32 = Feature{
pub const feature_dummy = Feature{
.name = "dummy",
.description = "unused feature",
.llvm_name = "dummy",
.subfeatures = &[_]*const Feature {
},
};
@ -20,7 +18,6 @@ pub const feature_dummy = Feature{
pub const feature_dwarfris = Feature{
.name = "dwarfris",
.description = "Disable MCAsmInfo DwarfUsesRelocationsAcrossSections",
.llvm_name = "dwarfris",
.subfeatures = &[_]*const Feature {
},
};

View File

@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu;
pub const feature_v5 = Feature{
.name = "v5",
.description = "Enable Hexagon V5 architecture",
.llvm_name = "v5",
.subfeatures = &[_]*const Feature {
},
};
@ -12,7 +11,6 @@ pub const feature_v5 = Feature{
pub const feature_v55 = Feature{
.name = "v55",
.description = "Enable Hexagon V55 architecture",
.llvm_name = "v55",
.subfeatures = &[_]*const Feature {
},
};
@ -20,7 +18,6 @@ pub const feature_v55 = Feature{
pub const feature_v60 = Feature{
.name = "v60",
.description = "Enable Hexagon V60 architecture",
.llvm_name = "v60",
.subfeatures = &[_]*const Feature {
},
};
@ -28,7 +25,6 @@ pub const feature_v60 = Feature{
pub const feature_v62 = Feature{
.name = "v62",
.description = "Enable Hexagon V62 architecture",
.llvm_name = "v62",
.subfeatures = &[_]*const Feature {
},
};
@ -36,7 +32,6 @@ pub const feature_v62 = Feature{
pub const feature_v65 = Feature{
.name = "v65",
.description = "Enable Hexagon V65 architecture",
.llvm_name = "v65",
.subfeatures = &[_]*const Feature {
},
};
@ -44,7 +39,6 @@ pub const feature_v65 = Feature{
pub const feature_v66 = Feature{
.name = "v66",
.description = "Enable Hexagon V66 architecture",
.llvm_name = "v66",
.subfeatures = &[_]*const Feature {
},
};
@ -52,7 +46,6 @@ pub const feature_v66 = Feature{
pub const feature_hvx = Feature{
.name = "hvx",
.description = "Hexagon HVX instructions",
.llvm_name = "hvx",
.subfeatures = &[_]*const Feature {
},
};
@ -60,7 +53,6 @@ pub const feature_hvx = Feature{
pub const feature_hvxLength64b = Feature{
.name = "hvx-length64b",
.description = "Hexagon HVX 64B instructions",
.llvm_name = "hvx-length64b",
.subfeatures = &[_]*const Feature {
&feature_hvx,
},
@ -69,7 +61,6 @@ pub const feature_hvxLength64b = Feature{
pub const feature_hvxLength128b = Feature{
.name = "hvx-length128b",
.description = "Hexagon HVX 128B instructions",
.llvm_name = "hvx-length128b",
.subfeatures = &[_]*const Feature {
&feature_hvx,
},
@ -78,7 +69,6 @@ pub const feature_hvxLength128b = Feature{
pub const feature_hvxv60 = Feature{
.name = "hvxv60",
.description = "Hexagon HVX instructions",
.llvm_name = "hvxv60",
.subfeatures = &[_]*const Feature {
&feature_hvx,
},
@ -87,7 +77,6 @@ pub const feature_hvxv60 = Feature{
pub const feature_hvxv62 = Feature{
.name = "hvxv62",
.description = "Hexagon HVX instructions",
.llvm_name = "hvxv62",
.subfeatures = &[_]*const Feature {
&feature_hvx,
},
@ -96,7 +85,6 @@ pub const feature_hvxv62 = Feature{
pub const feature_hvxv65 = Feature{
.name = "hvxv65",
.description = "Hexagon HVX instructions",
.llvm_name = "hvxv65",
.subfeatures = &[_]*const Feature {
&feature_hvx,
},
@ -105,7 +93,6 @@ pub const feature_hvxv65 = Feature{
pub const feature_hvxv66 = Feature{
.name = "hvxv66",
.description = "Hexagon HVX instructions",
.llvm_name = "hvxv66",
.subfeatures = &[_]*const Feature {
&feature_zreg,
&feature_hvx,
@ -115,7 +102,6 @@ pub const feature_hvxv66 = Feature{
pub const feature_zreg = Feature{
.name = "zreg",
.description = "Hexagon ZReg extension instructions",
.llvm_name = "zreg",
.subfeatures = &[_]*const Feature {
},
};
@ -123,7 +109,6 @@ pub const feature_zreg = Feature{
pub const feature_duplex = Feature{
.name = "duplex",
.description = "Enable generation of duplex instruction",
.llvm_name = "duplex",
.subfeatures = &[_]*const Feature {
},
};
@ -131,7 +116,6 @@ pub const feature_duplex = Feature{
pub const feature_longCalls = Feature{
.name = "long-calls",
.description = "Use constant-extended calls",
.llvm_name = "long-calls",
.subfeatures = &[_]*const Feature {
},
};
@ -139,7 +123,6 @@ pub const feature_longCalls = Feature{
pub const feature_mem_noshuf = Feature{
.name = "mem_noshuf",
.description = "Supports mem_noshuf feature",
.llvm_name = "mem_noshuf",
.subfeatures = &[_]*const Feature {
},
};
@ -147,7 +130,6 @@ pub const feature_mem_noshuf = Feature{
pub const feature_memops = Feature{
.name = "memops",
.description = "Use memop instructions",
.llvm_name = "memops",
.subfeatures = &[_]*const Feature {
},
};
@ -155,7 +137,6 @@ pub const feature_memops = Feature{
pub const feature_nvj = Feature{
.name = "nvj",
.description = "Support for new-value jumps",
.llvm_name = "nvj",
.subfeatures = &[_]*const Feature {
&feature_packets,
},
@ -164,7 +145,6 @@ pub const feature_nvj = Feature{
pub const feature_nvs = Feature{
.name = "nvs",
.description = "Support for new-value stores",
.llvm_name = "nvs",
.subfeatures = &[_]*const Feature {
&feature_packets,
},
@ -173,7 +153,6 @@ pub const feature_nvs = Feature{
pub const feature_noreturnStackElim = Feature{
.name = "noreturn-stack-elim",
.description = "Eliminate stack allocation in a noreturn function when possible",
.llvm_name = "noreturn-stack-elim",
.subfeatures = &[_]*const Feature {
},
};
@ -181,7 +160,6 @@ pub const feature_noreturnStackElim = Feature{
pub const feature_packets = Feature{
.name = "packets",
.description = "Support for instruction packets",
.llvm_name = "packets",
.subfeatures = &[_]*const Feature {
},
};
@ -189,7 +167,6 @@ pub const feature_packets = Feature{
pub const feature_reservedR19 = Feature{
.name = "reserved-r19",
.description = "Reserve register R19",
.llvm_name = "reserved-r19",
.subfeatures = &[_]*const Feature {
},
};
@ -197,7 +174,6 @@ pub const feature_reservedR19 = Feature{
pub const feature_smallData = Feature{
.name = "small-data",
.description = "Allow GP-relative addressing of global variables",
.llvm_name = "small-data",
.subfeatures = &[_]*const Feature {
},
};

View File

@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu;
pub const feature_abs2008 = Feature{
.name = "abs2008",
.description = "Disable IEEE 754-2008 abs.fmt mode",
.llvm_name = "abs2008",
.subfeatures = &[_]*const Feature {
},
};
@ -12,7 +11,6 @@ pub const feature_abs2008 = Feature{
pub const feature_crc = Feature{
.name = "crc",
.description = "Mips R6 CRC ASE",
.llvm_name = "crc",
.subfeatures = &[_]*const Feature {
},
};
@ -20,23 +18,21 @@ pub const feature_crc = Feature{
pub const feature_cnmips = Feature{
.name = "cnmips",
.description = "Octeon cnMIPS Support",
.llvm_name = "cnmips",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
},
};
pub const feature_dsp = Feature{
.name = "dsp",
.description = "Mips DSP ASE",
.llvm_name = "dsp",
.subfeatures = &[_]*const Feature {
},
};
@ -44,7 +40,6 @@ pub const feature_dsp = Feature{
pub const feature_dspr2 = Feature{
.name = "dspr2",
.description = "Mips DSP-R2 ASE",
.llvm_name = "dspr2",
.subfeatures = &[_]*const Feature {
&feature_dsp,
},
@ -53,7 +48,6 @@ pub const feature_dspr2 = Feature{
pub const feature_dspr3 = Feature{
.name = "dspr3",
.description = "Mips DSP-R3 ASE",
.llvm_name = "dspr3",
.subfeatures = &[_]*const Feature {
&feature_dsp,
},
@ -62,7 +56,6 @@ pub const feature_dspr3 = Feature{
pub const feature_eva = Feature{
.name = "eva",
.description = "Mips EVA ASE",
.llvm_name = "eva",
.subfeatures = &[_]*const Feature {
},
};
@ -70,7 +63,6 @@ pub const feature_eva = Feature{
pub const feature_fp64 = Feature{
.name = "fp64",
.description = "Support 64-bit FP registers",
.llvm_name = "fp64",
.subfeatures = &[_]*const Feature {
},
};
@ -78,7 +70,6 @@ pub const feature_fp64 = Feature{
pub const feature_fpxx = Feature{
.name = "fpxx",
.description = "Support for FPXX",
.llvm_name = "fpxx",
.subfeatures = &[_]*const Feature {
},
};
@ -86,7 +77,6 @@ pub const feature_fpxx = Feature{
pub const feature_ginv = Feature{
.name = "ginv",
.description = "Mips Global Invalidate ASE",
.llvm_name = "ginv",
.subfeatures = &[_]*const Feature {
},
};
@ -94,7 +84,6 @@ pub const feature_ginv = Feature{
pub const feature_gp64 = Feature{
.name = "gp64",
.description = "General Purpose Registers are 64-bit wide",
.llvm_name = "gp64",
.subfeatures = &[_]*const Feature {
},
};
@ -102,7 +91,6 @@ pub const feature_gp64 = Feature{
pub const feature_longCalls = Feature{
.name = "long-calls",
.description = "Disable use of the jal instruction",
.llvm_name = "long-calls",
.subfeatures = &[_]*const Feature {
},
};
@ -110,7 +98,6 @@ pub const feature_longCalls = Feature{
pub const feature_msa = Feature{
.name = "msa",
.description = "Mips MSA ASE",
.llvm_name = "msa",
.subfeatures = &[_]*const Feature {
},
};
@ -118,7 +105,6 @@ pub const feature_msa = Feature{
pub const feature_mt = Feature{
.name = "mt",
.description = "Mips MT ASE",
.llvm_name = "mt",
.subfeatures = &[_]*const Feature {
},
};
@ -126,7 +112,6 @@ pub const feature_mt = Feature{
pub const feature_nomadd4 = Feature{
.name = "nomadd4",
.description = "Disable 4-operand madd.fmt and related instructions",
.llvm_name = "nomadd4",
.subfeatures = &[_]*const Feature {
},
};
@ -134,7 +119,6 @@ pub const feature_nomadd4 = Feature{
pub const feature_micromips = Feature{
.name = "micromips",
.description = "microMips mode",
.llvm_name = "micromips",
.subfeatures = &[_]*const Feature {
},
};
@ -142,7 +126,6 @@ pub const feature_micromips = Feature{
pub const feature_mips1 = Feature{
.name = "mips1",
.description = "Mips I ISA Support [highly experimental]",
.llvm_name = "mips1",
.subfeatures = &[_]*const Feature {
},
};
@ -150,7 +133,6 @@ pub const feature_mips1 = Feature{
pub const feature_mips2 = Feature{
.name = "mips2",
.description = "Mips II ISA Support [highly experimental]",
.llvm_name = "mips2",
.subfeatures = &[_]*const Feature {
&feature_mips1,
},
@ -159,20 +141,18 @@ pub const feature_mips2 = Feature{
pub const feature_mips3 = Feature{
.name = "mips3",
.description = "MIPS III ISA Support [highly experimental]",
.llvm_name = "mips3",
.subfeatures = &[_]*const Feature {
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips3_32,
&feature_mips1,
&feature_fp64,
&feature_gp64,
},
};
pub const feature_mips3_32 = Feature{
.name = "mips3_32",
.description = "Subset of MIPS-III that is also in MIPS32 [highly experimental]",
.llvm_name = "mips3_32",
.subfeatures = &[_]*const Feature {
},
};
@ -180,7 +160,6 @@ pub const feature_mips3_32 = Feature{
pub const feature_mips3_32r2 = Feature{
.name = "mips3_32r2",
.description = "Subset of MIPS-III that is also in MIPS32r2 [highly experimental]",
.llvm_name = "mips3_32r2",
.subfeatures = &[_]*const Feature {
},
};
@ -188,22 +167,20 @@ pub const feature_mips3_32r2 = Feature{
pub const feature_mips4 = Feature{
.name = "mips4",
.description = "MIPS IV ISA Support",
.llvm_name = "mips4",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_gp64,
&feature_mips4_32,
},
};
pub const feature_mips4_32 = Feature{
.name = "mips4_32",
.description = "Subset of MIPS-IV that is also in MIPS32 [highly experimental]",
.llvm_name = "mips4_32",
.subfeatures = &[_]*const Feature {
},
};
@ -211,7 +188,6 @@ pub const feature_mips4_32 = Feature{
pub const feature_mips4_32r2 = Feature{
.name = "mips4_32r2",
.description = "Subset of MIPS-IV that is also in MIPS32r2 [highly experimental]",
.llvm_name = "mips4_32r2",
.subfeatures = &[_]*const Feature {
},
};
@ -219,23 +195,21 @@ pub const feature_mips4_32r2 = Feature{
pub const feature_mips5 = Feature{
.name = "mips5",
.description = "MIPS V ISA Support [highly experimental]",
.llvm_name = "mips5",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
},
};
pub const feature_mips5_32r2 = Feature{
.name = "mips5_32r2",
.description = "Subset of MIPS-V that is also in MIPS32r2 [highly experimental]",
.llvm_name = "mips5_32r2",
.subfeatures = &[_]*const Feature {
},
};
@ -243,7 +217,6 @@ pub const feature_mips5_32r2 = Feature{
pub const feature_mips16 = Feature{
.name = "mips16",
.description = "Mips16 mode",
.llvm_name = "mips16",
.subfeatures = &[_]*const Feature {
},
};
@ -251,159 +224,148 @@ pub const feature_mips16 = Feature{
pub const feature_mips32 = Feature{
.name = "mips32",
.description = "Mips32 ISA Support",
.llvm_name = "mips32",
.subfeatures = &[_]*const Feature {
&feature_mips1,
&feature_mips4_32,
&feature_mips3_32,
&feature_mips1,
},
};
pub const feature_mips32r2 = Feature{
.name = "mips32r2",
.description = "Mips32r2 ISA Support",
.llvm_name = "mips32r2",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_mips5_32r2,
&feature_mips4_32,
},
};
pub const feature_mips32r3 = Feature{
.name = "mips32r3",
.description = "Mips32r3 ISA Support",
.llvm_name = "mips32r3",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_mips5_32r2,
&feature_mips4_32,
},
};
pub const feature_mips32r5 = Feature{
.name = "mips32r5",
.description = "Mips32r5 ISA Support",
.llvm_name = "mips32r5",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_mips5_32r2,
&feature_mips4_32,
},
};
pub const feature_mips32r6 = Feature{
.name = "mips32r6",
.description = "Mips32r6 ISA Support [experimental]",
.llvm_name = "mips32r6",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_nan2008,
&feature_mips3_32r2,
&feature_mips3_32,
&feature_nan2008,
&feature_mips4_32r2,
&feature_mips1,
&feature_abs2008,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_fp64,
&feature_mips5_32r2,
&feature_mips4_32,
},
};
pub const feature_mips64 = Feature{
.name = "mips64",
.description = "Mips64 ISA Support",
.llvm_name = "mips64",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
},
};
pub const feature_mips64r2 = Feature{
.name = "mips64r2",
.description = "Mips64r2 ISA Support",
.llvm_name = "mips64r2",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
},
};
pub const feature_mips64r3 = Feature{
.name = "mips64r3",
.description = "Mips64r3 ISA Support",
.llvm_name = "mips64r3",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
},
};
pub const feature_mips64r5 = Feature{
.name = "mips64r5",
.description = "Mips64r5 ISA Support",
.llvm_name = "mips64r5",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
},
};
pub const feature_mips64r6 = Feature{
.name = "mips64r6",
.description = "Mips64r6 ISA Support [experimental]",
.llvm_name = "mips64r6",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_nan2008,
&feature_mips3_32r2,
&feature_mips3_32,
&feature_nan2008,
&feature_mips4_32r2,
&feature_mips1,
&feature_abs2008,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
},
};
pub const feature_nan2008 = Feature{
.name = "nan2008",
.description = "IEEE 754-2008 NaN encoding",
.llvm_name = "nan2008",
.subfeatures = &[_]*const Feature {
},
};
@ -411,7 +373,6 @@ pub const feature_nan2008 = Feature{
pub const feature_noabicalls = Feature{
.name = "noabicalls",
.description = "Disable SVR4-style position-independent code",
.llvm_name = "noabicalls",
.subfeatures = &[_]*const Feature {
},
};
@ -419,7 +380,6 @@ pub const feature_noabicalls = Feature{
pub const feature_nooddspreg = Feature{
.name = "nooddspreg",
.description = "Disable odd numbered single-precision registers",
.llvm_name = "nooddspreg",
.subfeatures = &[_]*const Feature {
},
};
@ -427,7 +387,6 @@ pub const feature_nooddspreg = Feature{
pub const feature_ptr64 = Feature{
.name = "ptr64",
.description = "Pointers are 64-bit wide",
.llvm_name = "ptr64",
.subfeatures = &[_]*const Feature {
},
};
@ -435,7 +394,6 @@ pub const feature_ptr64 = Feature{
pub const feature_singleFloat = Feature{
.name = "single-float",
.description = "Only supports single precision float",
.llvm_name = "single-float",
.subfeatures = &[_]*const Feature {
},
};
@ -443,7 +401,6 @@ pub const feature_singleFloat = Feature{
pub const feature_softFloat = Feature{
.name = "soft-float",
.description = "Does not support floating point instructions",
.llvm_name = "soft-float",
.subfeatures = &[_]*const Feature {
},
};
@ -451,7 +408,6 @@ pub const feature_softFloat = Feature{
pub const feature_sym32 = Feature{
.name = "sym32",
.description = "Symbols are 32 bit on Mips64",
.llvm_name = "sym32",
.subfeatures = &[_]*const Feature {
},
};
@ -459,7 +415,6 @@ pub const feature_sym32 = Feature{
pub const feature_useIndirectJumpHazard = Feature{
.name = "use-indirect-jump-hazard",
.description = "Use indirect jump guards to prevent certain speculation based attacks",
.llvm_name = "use-indirect-jump-hazard",
.subfeatures = &[_]*const Feature {
},
};
@ -467,7 +422,6 @@ pub const feature_useIndirectJumpHazard = Feature{
pub const feature_useTccInDiv = Feature{
.name = "use-tcc-in-div",
.description = "Force the assembler to use trapping",
.llvm_name = "use-tcc-in-div",
.subfeatures = &[_]*const Feature {
},
};
@ -475,7 +429,6 @@ pub const feature_useTccInDiv = Feature{
pub const feature_vfpu = Feature{
.name = "vfpu",
.description = "Enable vector FPU instructions",
.llvm_name = "vfpu",
.subfeatures = &[_]*const Feature {
},
};
@ -483,7 +436,6 @@ pub const feature_vfpu = Feature{
pub const feature_virt = Feature{
.name = "virt",
.description = "Mips Virtualization ASE",
.llvm_name = "virt",
.subfeatures = &[_]*const Feature {
},
};
@ -491,7 +443,6 @@ pub const feature_virt = Feature{
pub const feature_xgot = Feature{
.name = "xgot",
.description = "Assume 32-bit GOT",
.llvm_name = "xgot",
.subfeatures = &[_]*const Feature {
},
};
@ -499,14 +450,13 @@ pub const feature_xgot = Feature{
pub const feature_p5600 = Feature{
.name = "p5600",
.description = "The P5600 Processor",
.llvm_name = "p5600",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_mips5_32r2,
&feature_mips4_32,
},
};
@ -585,10 +535,10 @@ pub const cpu_mips3 = Cpu{
.llvm_name = "mips3",
.subfeatures = &[_]*const Feature {
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips3_32,
&feature_mips1,
&feature_fp64,
&feature_gp64,
&feature_mips3,
},
};
@ -597,9 +547,9 @@ pub const cpu_mips32 = Cpu{
.name = "mips32",
.llvm_name = "mips32",
.subfeatures = &[_]*const Feature {
&feature_mips1,
&feature_mips4_32,
&feature_mips3_32,
&feature_mips1,
&feature_mips32,
},
};
@ -608,12 +558,12 @@ pub const cpu_mips32r2 = Cpu{
.name = "mips32r2",
.llvm_name = "mips32r2",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_mips5_32r2,
&feature_mips4_32,
&feature_mips32r2,
},
};
@ -622,12 +572,12 @@ pub const cpu_mips32r3 = Cpu{
.name = "mips32r3",
.llvm_name = "mips32r3",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_mips5_32r2,
&feature_mips4_32,
&feature_mips32r3,
},
};
@ -636,12 +586,12 @@ pub const cpu_mips32r5 = Cpu{
.name = "mips32r5",
.llvm_name = "mips32r5",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_mips5_32r2,
&feature_mips4_32,
&feature_mips32r5,
},
};
@ -650,15 +600,15 @@ pub const cpu_mips32r6 = Cpu{
.name = "mips32r6",
.llvm_name = "mips32r6",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_nan2008,
&feature_mips3_32r2,
&feature_mips3_32,
&feature_nan2008,
&feature_mips4_32r2,
&feature_mips1,
&feature_abs2008,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_fp64,
&feature_mips5_32r2,
&feature_mips4_32,
&feature_mips32r6,
},
};
@ -667,13 +617,13 @@ pub const cpu_mips4 = Cpu{
.name = "mips4",
.llvm_name = "mips4",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_gp64,
&feature_mips4_32,
&feature_mips4,
},
};
@ -682,14 +632,14 @@ pub const cpu_mips5 = Cpu{
.name = "mips5",
.llvm_name = "mips5",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
&feature_mips5,
},
};
@ -698,14 +648,14 @@ pub const cpu_mips64 = Cpu{
.name = "mips64",
.llvm_name = "mips64",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
&feature_mips64,
},
};
@ -714,14 +664,14 @@ pub const cpu_mips64r2 = Cpu{
.name = "mips64r2",
.llvm_name = "mips64r2",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
&feature_mips64r2,
},
};
@ -730,14 +680,14 @@ pub const cpu_mips64r3 = Cpu{
.name = "mips64r3",
.llvm_name = "mips64r3",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
&feature_mips64r3,
},
};
@ -746,14 +696,14 @@ pub const cpu_mips64r5 = Cpu{
.name = "mips64r5",
.llvm_name = "mips64r5",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
&feature_mips64r5,
},
};
@ -762,16 +712,16 @@ pub const cpu_mips64r6 = Cpu{
.name = "mips64r6",
.llvm_name = "mips64r6",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_nan2008,
&feature_mips3_32r2,
&feature_mips3_32,
&feature_nan2008,
&feature_mips4_32r2,
&feature_mips1,
&feature_abs2008,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
&feature_mips64r6,
},
};
@ -780,14 +730,14 @@ pub const cpu_octeon = Cpu{
.name = "octeon",
.llvm_name = "octeon",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_gp64,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_fp64,
&feature_mips5_32r2,
&feature_gp64,
&feature_mips4_32,
&feature_cnmips,
&feature_mips64r2,
},
@ -797,12 +747,12 @@ pub const cpu_p5600 = Cpu{
.name = "p5600",
.llvm_name = "p5600",
.subfeatures = &[_]*const Feature {
&feature_mips4_32,
&feature_mips3_32r2,
&feature_mips1,
&feature_mips4_32r2,
&feature_mips5_32r2,
&feature_mips3_32,
&feature_mips4_32r2,
&feature_mips1,
&feature_mips5_32r2,
&feature_mips4_32,
&feature_p5600,
},
};

View File

@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu;
pub const feature_hwmult16 = Feature{
.name = "hwmult16",
.description = "Enable 16-bit hardware multiplier",
.llvm_name = "hwmult16",
.subfeatures = &[_]*const Feature {
},
};
@ -12,7 +11,6 @@ pub const feature_hwmult16 = Feature{
pub const feature_hwmult32 = Feature{
.name = "hwmult32",
.description = "Enable 32-bit hardware multiplier",
.llvm_name = "hwmult32",
.subfeatures = &[_]*const Feature {
},
};
@ -20,7 +18,6 @@ pub const feature_hwmult32 = Feature{
pub const feature_hwmultf5 = Feature{
.name = "hwmultf5",
.description = "Enable F5 series hardware multiplier",
.llvm_name = "hwmultf5",
.subfeatures = &[_]*const Feature {
},
};
@ -28,7 +25,6 @@ pub const feature_hwmultf5 = Feature{
pub const feature_ext = Feature{
.name = "ext",
.description = "Enable MSP430-X extensions",
.llvm_name = "ext",
.subfeatures = &[_]*const Feature {
},
};

View File

@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu;
pub const feature_ptx32 = Feature{
.name = "ptx32",
.description = "Use PTX version 3.2",
.llvm_name = "ptx32",
.subfeatures = &[_]*const Feature {
},
};
@ -12,7 +11,6 @@ pub const feature_ptx32 = Feature{
pub const feature_ptx40 = Feature{
.name = "ptx40",
.description = "Use PTX version 4.0",
.llvm_name = "ptx40",
.subfeatures = &[_]*const Feature {
},
};
@ -20,7 +18,6 @@ pub const feature_ptx40 = Feature{
pub const feature_ptx41 = Feature{
.name = "ptx41",
.description = "Use PTX version 4.1",
.llvm_name = "ptx41",
.subfeatures = &[_]*const Feature {
},
};
@ -28,7 +25,6 @@ pub const feature_ptx41 = Feature{
pub const feature_ptx42 = Feature{
.name = "ptx42",
.description = "Use PTX version 4.2",
.llvm_name = "ptx42",
.subfeatures = &[_]*const Feature {
},
};
@ -36,7 +32,6 @@ pub const feature_ptx42 = Feature{
pub const feature_ptx43 = Feature{
.name = "ptx43",
.description = "Use PTX version 4.3",
.llvm_name = "ptx43",
.subfeatures = &[_]*const Feature {
},
};
@ -44,7 +39,6 @@ pub const feature_ptx43 = Feature{
pub const feature_ptx50 = Feature{
.name = "ptx50",
.description = "Use PTX version 5.0",
.llvm_name = "ptx50",
.subfeatures = &[_]*const Feature {
},
};
@ -52,7 +46,6 @@ pub const feature_ptx50 = Feature{
pub const feature_ptx60 = Feature{
.name = "ptx60",
.description = "Use PTX version 6.0",
.llvm_name = "ptx60",
.subfeatures = &[_]*const Feature {
},
};
@ -60,7 +53,6 @@ pub const feature_ptx60 = Feature{
pub const feature_ptx61 = Feature{
.name = "ptx61",
.description = "Use PTX version 6.1",
.llvm_name = "ptx61",
.subfeatures = &[_]*const Feature {
},
};
@ -68,7 +60,6 @@ pub const feature_ptx61 = Feature{
pub const feature_ptx63 = Feature{
.name = "ptx63",
.description = "Use PTX version 6.3",
.llvm_name = "ptx63",
.subfeatures = &[_]*const Feature {
},
};
@ -76,7 +67,6 @@ pub const feature_ptx63 = Feature{
pub const feature_ptx64 = Feature{
.name = "ptx64",
.description = "Use PTX version 6.4",
.llvm_name = "ptx64",
.subfeatures = &[_]*const Feature {
},
};
@ -84,7 +74,6 @@ pub const feature_ptx64 = Feature{
pub const feature_sm_20 = Feature{
.name = "sm_20",
.description = "Target SM 2.0",
.llvm_name = "sm_20",
.subfeatures = &[_]*const Feature {
},
};
@ -92,7 +81,6 @@ pub const feature_sm_20 = Feature{
pub const feature_sm_21 = Feature{
.name = "sm_21",
.description = "Target SM 2.1",
.llvm_name = "sm_21",
.subfeatures = &[_]*const Feature {
},
};
@ -100,7 +88,6 @@ pub const feature_sm_21 = Feature{
pub const feature_sm_30 = Feature{
.name = "sm_30",
.description = "Target SM 3.0",
.llvm_name = "sm_30",
.subfeatures = &[_]*const Feature {
},
};
@ -108,7 +95,6 @@ pub const feature_sm_30 = Feature{
pub const feature_sm_32 = Feature{
.name = "sm_32",
.description = "Target SM 3.2",
.llvm_name = "sm_32",
.subfeatures = &[_]*const Feature {
},
};
@ -116,7 +102,6 @@ pub const feature_sm_32 = Feature{
pub const feature_sm_35 = Feature{
.name = "sm_35",
.description = "Target SM 3.5",
.llvm_name = "sm_35",
.subfeatures = &[_]*const Feature {
},
};
@ -124,7 +109,6 @@ pub const feature_sm_35 = Feature{
pub const feature_sm_37 = Feature{
.name = "sm_37",
.description = "Target SM 3.7",
.llvm_name = "sm_37",
.subfeatures = &[_]*const Feature {
},
};
@ -132,7 +116,6 @@ pub const feature_sm_37 = Feature{
pub const feature_sm_50 = Feature{
.name = "sm_50",
.description = "Target SM 5.0",
.llvm_name = "sm_50",
.subfeatures = &[_]*const Feature {
},
};
@ -140,7 +123,6 @@ pub const feature_sm_50 = Feature{
pub const feature_sm_52 = Feature{
.name = "sm_52",
.description = "Target SM 5.2",
.llvm_name = "sm_52",
.subfeatures = &[_]*const Feature {
},
};
@ -148,7 +130,6 @@ pub const feature_sm_52 = Feature{
pub const feature_sm_53 = Feature{
.name = "sm_53",
.description = "Target SM 5.3",
.llvm_name = "sm_53",
.subfeatures = &[_]*const Feature {
},
};
@ -156,7 +137,6 @@ pub const feature_sm_53 = Feature{
pub const feature_sm_60 = Feature{
.name = "sm_60",
.description = "Target SM 6.0",
.llvm_name = "sm_60",
.subfeatures = &[_]*const Feature {
},
};
@ -164,7 +144,6 @@ pub const feature_sm_60 = Feature{
pub const feature_sm_61 = Feature{
.name = "sm_61",
.description = "Target SM 6.1",
.llvm_name = "sm_61",
.subfeatures = &[_]*const Feature {
},
};
@ -172,7 +151,6 @@ pub const feature_sm_61 = Feature{
pub const feature_sm_62 = Feature{
.name = "sm_62",
.description = "Target SM 6.2",
.llvm_name = "sm_62",
.subfeatures = &[_]*const Feature {
},
};
@ -180,7 +158,6 @@ pub const feature_sm_62 = Feature{
pub const feature_sm_70 = Feature{
.name = "sm_70",
.description = "Target SM 7.0",
.llvm_name = "sm_70",
.subfeatures = &[_]*const Feature {
},
};
@ -188,7 +165,6 @@ pub const feature_sm_70 = Feature{
pub const feature_sm_72 = Feature{
.name = "sm_72",
.description = "Target SM 7.2",
.llvm_name = "sm_72",
.subfeatures = &[_]*const Feature {
},
};
@ -196,7 +172,6 @@ pub const feature_sm_72 = Feature{
pub const feature_sm_75 = Feature{
.name = "sm_75",
.description = "Target SM 7.5",
.llvm_name = "sm_75",
.subfeatures = &[_]*const Feature {
},
};

View File

@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu;
pub const feature_bit64 = Feature{
.name = "64bit",
.description = "Enable 64-bit instructions",
.llvm_name = "64bit",
.subfeatures = &[_]*const Feature {
},
};
@ -12,7 +11,6 @@ pub const feature_bit64 = Feature{
pub const feature_bitregs64 = Feature{
.name = "64bitregs",
.description = "Enable 64-bit registers usage for ppc32 [beta]",
.llvm_name = "64bitregs",
.subfeatures = &[_]*const Feature {
},
};
@ -20,7 +18,6 @@ pub const feature_bitregs64 = Feature{
pub const feature_altivec = Feature{
.name = "altivec",
.description = "Enable Altivec instructions",
.llvm_name = "altivec",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -29,7 +26,6 @@ pub const feature_altivec = Feature{
pub const feature_bpermd = Feature{
.name = "bpermd",
.description = "Enable the bpermd instruction",
.llvm_name = "bpermd",
.subfeatures = &[_]*const Feature {
},
};
@ -37,7 +33,6 @@ pub const feature_bpermd = Feature{
pub const feature_booke = Feature{
.name = "booke",
.description = "Enable Book E instructions",
.llvm_name = "booke",
.subfeatures = &[_]*const Feature {
&feature_icbt,
},
@ -46,7 +41,6 @@ pub const feature_booke = Feature{
pub const feature_cmpb = Feature{
.name = "cmpb",
.description = "Enable the cmpb instruction",
.llvm_name = "cmpb",
.subfeatures = &[_]*const Feature {
},
};
@ -54,7 +48,6 @@ pub const feature_cmpb = Feature{
pub const feature_crbits = Feature{
.name = "crbits",
.description = "Use condition-register bits individually",
.llvm_name = "crbits",
.subfeatures = &[_]*const Feature {
},
};
@ -62,7 +55,6 @@ pub const feature_crbits = Feature{
pub const feature_directMove = Feature{
.name = "direct-move",
.description = "Enable Power8 direct move instructions",
.llvm_name = "direct-move",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -71,7 +63,6 @@ pub const feature_directMove = Feature{
pub const feature_e500 = Feature{
.name = "e500",
.description = "Enable E500/E500mc instructions",
.llvm_name = "e500",
.subfeatures = &[_]*const Feature {
},
};
@ -79,7 +70,6 @@ pub const feature_e500 = Feature{
pub const feature_extdiv = Feature{
.name = "extdiv",
.description = "Enable extended divide instructions",
.llvm_name = "extdiv",
.subfeatures = &[_]*const Feature {
},
};
@ -87,7 +77,6 @@ pub const feature_extdiv = Feature{
pub const feature_fcpsgn = Feature{
.name = "fcpsgn",
.description = "Enable the fcpsgn instruction",
.llvm_name = "fcpsgn",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -96,7 +85,6 @@ pub const feature_fcpsgn = Feature{
pub const feature_fpcvt = Feature{
.name = "fpcvt",
.description = "Enable fc[ft]* (unsigned and single-precision) and lfiwzx instructions",
.llvm_name = "fpcvt",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -105,7 +93,6 @@ pub const feature_fpcvt = Feature{
pub const feature_fprnd = Feature{
.name = "fprnd",
.description = "Enable the fri[mnpz] instructions",
.llvm_name = "fprnd",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -114,7 +101,6 @@ pub const feature_fprnd = Feature{
pub const feature_fpu = Feature{
.name = "fpu",
.description = "Enable classic FPU instructions",
.llvm_name = "fpu",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -123,7 +109,6 @@ pub const feature_fpu = Feature{
pub const feature_fre = Feature{
.name = "fre",
.description = "Enable the fre instruction",
.llvm_name = "fre",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -132,7 +117,6 @@ pub const feature_fre = Feature{
pub const feature_fres = Feature{
.name = "fres",
.description = "Enable the fres instruction",
.llvm_name = "fres",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -141,7 +125,6 @@ pub const feature_fres = Feature{
pub const feature_frsqrte = Feature{
.name = "frsqrte",
.description = "Enable the frsqrte instruction",
.llvm_name = "frsqrte",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -150,7 +133,6 @@ pub const feature_frsqrte = Feature{
pub const feature_frsqrtes = Feature{
.name = "frsqrtes",
.description = "Enable the frsqrtes instruction",
.llvm_name = "frsqrtes",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -159,7 +141,6 @@ pub const feature_frsqrtes = Feature{
pub const feature_fsqrt = Feature{
.name = "fsqrt",
.description = "Enable the fsqrt instruction",
.llvm_name = "fsqrt",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -168,7 +149,6 @@ pub const feature_fsqrt = Feature{
pub const feature_float128 = Feature{
.name = "float128",
.description = "Enable the __float128 data type for IEEE-754R Binary128.",
.llvm_name = "float128",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -177,7 +157,6 @@ pub const feature_float128 = Feature{
pub const feature_htm = Feature{
.name = "htm",
.description = "Enable Hardware Transactional Memory instructions",
.llvm_name = "htm",
.subfeatures = &[_]*const Feature {
},
};
@ -185,7 +164,6 @@ pub const feature_htm = Feature{
pub const feature_hardFloat = Feature{
.name = "hard-float",
.description = "Enable floating-point instructions",
.llvm_name = "hard-float",
.subfeatures = &[_]*const Feature {
},
};
@ -193,7 +171,6 @@ pub const feature_hardFloat = Feature{
pub const feature_icbt = Feature{
.name = "icbt",
.description = "Enable icbt instruction",
.llvm_name = "icbt",
.subfeatures = &[_]*const Feature {
},
};
@ -201,7 +178,6 @@ pub const feature_icbt = Feature{
pub const feature_isaV30Instructions = Feature{
.name = "isa-v30-instructions",
.description = "Enable instructions added in ISA 3.0.",
.llvm_name = "isa-v30-instructions",
.subfeatures = &[_]*const Feature {
},
};
@ -209,7 +185,6 @@ pub const feature_isaV30Instructions = Feature{
pub const feature_isel = Feature{
.name = "isel",
.description = "Enable the isel instruction",
.llvm_name = "isel",
.subfeatures = &[_]*const Feature {
},
};
@ -217,7 +192,6 @@ pub const feature_isel = Feature{
pub const feature_invariantFunctionDescriptors = Feature{
.name = "invariant-function-descriptors",
.description = "Assume function descriptors are invariant",
.llvm_name = "invariant-function-descriptors",
.subfeatures = &[_]*const Feature {
},
};
@ -225,7 +199,6 @@ pub const feature_invariantFunctionDescriptors = Feature{
pub const feature_ldbrx = Feature{
.name = "ldbrx",
.description = "Enable the ldbrx instruction",
.llvm_name = "ldbrx",
.subfeatures = &[_]*const Feature {
},
};
@ -233,7 +206,6 @@ pub const feature_ldbrx = Feature{
pub const feature_lfiwax = Feature{
.name = "lfiwax",
.description = "Enable the lfiwax instruction",
.llvm_name = "lfiwax",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -242,7 +214,6 @@ pub const feature_lfiwax = Feature{
pub const feature_longcall = Feature{
.name = "longcall",
.description = "Always use indirect calls",
.llvm_name = "longcall",
.subfeatures = &[_]*const Feature {
},
};
@ -250,7 +221,6 @@ pub const feature_longcall = Feature{
pub const feature_mfocrf = Feature{
.name = "mfocrf",
.description = "Enable the MFOCRF instruction",
.llvm_name = "mfocrf",
.subfeatures = &[_]*const Feature {
},
};
@ -258,7 +228,6 @@ pub const feature_mfocrf = Feature{
pub const feature_msync = Feature{
.name = "msync",
.description = "Has only the msync instruction instead of sync",
.llvm_name = "msync",
.subfeatures = &[_]*const Feature {
&feature_icbt,
},
@ -267,7 +236,6 @@ pub const feature_msync = Feature{
pub const feature_power8Altivec = Feature{
.name = "power8-altivec",
.description = "Enable POWER8 Altivec instructions",
.llvm_name = "power8-altivec",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -276,7 +244,6 @@ pub const feature_power8Altivec = Feature{
pub const feature_crypto = Feature{
.name = "crypto",
.description = "Enable POWER8 Crypto instructions",
.llvm_name = "crypto",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -285,7 +252,6 @@ pub const feature_crypto = Feature{
pub const feature_power8Vector = Feature{
.name = "power8-vector",
.description = "Enable POWER8 vector instructions",
.llvm_name = "power8-vector",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -294,27 +260,24 @@ pub const feature_power8Vector = Feature{
pub const feature_power9Altivec = Feature{
.name = "power9-altivec",
.description = "Enable POWER9 Altivec instructions",
.llvm_name = "power9-altivec",
.subfeatures = &[_]*const Feature {
&feature_isaV30Instructions,
&feature_hardFloat,
&feature_isaV30Instructions,
},
};
pub const feature_power9Vector = Feature{
.name = "power9-vector",
.description = "Enable POWER9 vector instructions",
.llvm_name = "power9-vector",
.subfeatures = &[_]*const Feature {
&feature_isaV30Instructions,
&feature_hardFloat,
&feature_isaV30Instructions,
},
};
pub const feature_popcntd = Feature{
.name = "popcntd",
.description = "Enable the popcnt[dw] instructions",
.llvm_name = "popcntd",
.subfeatures = &[_]*const Feature {
},
};
@ -322,7 +285,6 @@ pub const feature_popcntd = Feature{
pub const feature_ppc4xx = Feature{
.name = "ppc4xx",
.description = "Enable PPC 4xx instructions",
.llvm_name = "ppc4xx",
.subfeatures = &[_]*const Feature {
},
};
@ -330,7 +292,6 @@ pub const feature_ppc4xx = Feature{
pub const feature_ppc6xx = Feature{
.name = "ppc6xx",
.description = "Enable PPC 6xx instructions",
.llvm_name = "ppc6xx",
.subfeatures = &[_]*const Feature {
},
};
@ -338,7 +299,6 @@ pub const feature_ppc6xx = Feature{
pub const feature_ppcPostraSched = Feature{
.name = "ppc-postra-sched",
.description = "Use PowerPC post-RA scheduling strategy",
.llvm_name = "ppc-postra-sched",
.subfeatures = &[_]*const Feature {
},
};
@ -346,7 +306,6 @@ pub const feature_ppcPostraSched = Feature{
pub const feature_ppcPreraSched = Feature{
.name = "ppc-prera-sched",
.description = "Use PowerPC pre-RA scheduling strategy",
.llvm_name = "ppc-prera-sched",
.subfeatures = &[_]*const Feature {
},
};
@ -354,7 +313,6 @@ pub const feature_ppcPreraSched = Feature{
pub const feature_partwordAtomics = Feature{
.name = "partword-atomics",
.description = "Enable l[bh]arx and st[bh]cx.",
.llvm_name = "partword-atomics",
.subfeatures = &[_]*const Feature {
},
};
@ -362,7 +320,6 @@ pub const feature_partwordAtomics = Feature{
pub const feature_qpx = Feature{
.name = "qpx",
.description = "Enable QPX instructions",
.llvm_name = "qpx",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -371,7 +328,6 @@ pub const feature_qpx = Feature{
pub const feature_recipprec = Feature{
.name = "recipprec",
.description = "Assume higher precision reciprocal estimates",
.llvm_name = "recipprec",
.subfeatures = &[_]*const Feature {
},
};
@ -379,7 +335,6 @@ pub const feature_recipprec = Feature{
pub const feature_spe = Feature{
.name = "spe",
.description = "Enable SPE instructions",
.llvm_name = "spe",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -388,7 +343,6 @@ pub const feature_spe = Feature{
pub const feature_stfiwx = Feature{
.name = "stfiwx",
.description = "Enable the stfiwx instruction",
.llvm_name = "stfiwx",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -397,7 +351,6 @@ pub const feature_stfiwx = Feature{
pub const feature_securePlt = Feature{
.name = "secure-plt",
.description = "Enable secure plt mode",
.llvm_name = "secure-plt",
.subfeatures = &[_]*const Feature {
},
};
@ -405,7 +358,6 @@ pub const feature_securePlt = Feature{
pub const feature_slowPopcntd = Feature{
.name = "slow-popcntd",
.description = "Has slow popcnt[dw] instructions",
.llvm_name = "slow-popcntd",
.subfeatures = &[_]*const Feature {
},
};
@ -413,7 +365,6 @@ pub const feature_slowPopcntd = Feature{
pub const feature_twoConstNr = Feature{
.name = "two-const-nr",
.description = "Requires two constant Newton-Raphson computation",
.llvm_name = "two-const-nr",
.subfeatures = &[_]*const Feature {
},
};
@ -421,7 +372,6 @@ pub const feature_twoConstNr = Feature{
pub const feature_vsx = Feature{
.name = "vsx",
.description = "Enable VSX instructions",
.llvm_name = "vsx",
.subfeatures = &[_]*const Feature {
&feature_hardFloat,
},
@ -430,7 +380,6 @@ pub const feature_vsx = Feature{
pub const feature_vectorsUseTwoUnits = Feature{
.name = "vectors-use-two-units",
.description = "Vectors use two units",
.llvm_name = "vectors-use-two-units",
.subfeatures = &[_]*const Feature {
},
};

View File

@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu;
pub const feature_bit64 = Feature{
.name = "64bit",
.description = "Implements RV64",
.llvm_name = "64bit",
.subfeatures = &[_]*const Feature {
},
};
@ -12,7 +11,6 @@ pub const feature_bit64 = Feature{
pub const feature_e = Feature{
.name = "e",
.description = "Implements RV32E (provides 16 rather than 32 GPRs)",
.llvm_name = "e",
.subfeatures = &[_]*const Feature {
},
};
@ -20,7 +18,6 @@ pub const feature_e = Feature{
pub const feature_rvcHints = Feature{
.name = "rvc-hints",
.description = "Enable RVC Hint Instructions.",
.llvm_name = "rvc-hints",
.subfeatures = &[_]*const Feature {
},
};
@ -28,7 +25,6 @@ pub const feature_rvcHints = Feature{
pub const feature_relax = Feature{
.name = "relax",
.description = "Enable Linker relaxation.",
.llvm_name = "relax",
.subfeatures = &[_]*const Feature {
},
};
@ -36,7 +32,6 @@ pub const feature_relax = Feature{
pub const feature_a = Feature{
.name = "a",
.description = "'A' (Atomic Instructions)",
.llvm_name = "a",
.subfeatures = &[_]*const Feature {
},
};
@ -44,7 +39,6 @@ pub const feature_a = Feature{
pub const feature_c = Feature{
.name = "c",
.description = "'C' (Compressed Instructions)",
.llvm_name = "c",
.subfeatures = &[_]*const Feature {
},
};
@ -52,7 +46,6 @@ pub const feature_c = Feature{
pub const feature_d = Feature{
.name = "d",
.description = "'D' (Double-Precision Floating-Point)",
.llvm_name = "d",
.subfeatures = &[_]*const Feature {
&feature_f,
},
@ -61,7 +54,6 @@ pub const feature_d = Feature{
pub const feature_f = Feature{
.name = "f",
.description = "'F' (Single-Precision Floating-Point)",
.llvm_name = "f",
.subfeatures = &[_]*const Feature {
},
};
@ -69,7 +61,6 @@ pub const feature_f = Feature{
pub const feature_m = Feature{
.name = "m",
.description = "'M' (Integer Multiplication and Division)",
.llvm_name = "m",
.subfeatures = &[_]*const Feature {
},
};

View File

@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu;
pub const feature_detectroundchange = Feature{
.name = "detectroundchange",
.description = "LEON3 erratum detection: Detects any rounding mode change request: use only the round-to-nearest rounding mode",
.llvm_name = "detectroundchange",
.subfeatures = &[_]*const Feature {
},
};
@ -12,7 +11,6 @@ pub const feature_detectroundchange = Feature{
pub const feature_hardQuadFloat = Feature{
.name = "hard-quad-float",
.description = "Enable quad-word floating point instructions",
.llvm_name = "hard-quad-float",
.subfeatures = &[_]*const Feature {
},
};
@ -20,7 +18,6 @@ pub const feature_hardQuadFloat = Feature{
pub const feature_leon = Feature{
.name = "leon",
.description = "Enable LEON extensions",
.llvm_name = "leon",
.subfeatures = &[_]*const Feature {
},
};
@ -28,7 +25,6 @@ pub const feature_leon = Feature{
pub const feature_noFmuls = Feature{
.name = "no-fmuls",
.description = "Disable the fmuls instruction.",
.llvm_name = "no-fmuls",
.subfeatures = &[_]*const Feature {
},
};
@ -36,7 +32,6 @@ pub const feature_noFmuls = Feature{
pub const feature_noFsmuld = Feature{
.name = "no-fsmuld",
.description = "Disable the fsmuld instruction.",
.llvm_name = "no-fsmuld",
.subfeatures = &[_]*const Feature {
},
};
@ -44,7 +39,6 @@ pub const feature_noFsmuld = Feature{
pub const feature_leonpwrpsr = Feature{
.name = "leonpwrpsr",
.description = "Enable the PWRPSR instruction",
.llvm_name = "leonpwrpsr",
.subfeatures = &[_]*const Feature {
},
};
@ -52,7 +46,6 @@ pub const feature_leonpwrpsr = Feature{
pub const feature_softFloat = Feature{
.name = "soft-float",
.description = "Use software emulation for floating point",
.llvm_name = "soft-float",
.subfeatures = &[_]*const Feature {
},
};
@ -60,7 +53,6 @@ pub const feature_softFloat = Feature{
pub const feature_softMulDiv = Feature{
.name = "soft-mul-div",
.description = "Use software emulation for integer multiply and divide",
.llvm_name = "soft-mul-div",
.subfeatures = &[_]*const Feature {
},
};
@ -68,7 +60,6 @@ pub const feature_softMulDiv = Feature{
pub const feature_deprecatedV8 = Feature{
.name = "deprecated-v8",
.description = "Enable deprecated V8 instructions in V9 mode",
.llvm_name = "deprecated-v8",
.subfeatures = &[_]*const Feature {
},
};
@ -76,7 +67,6 @@ pub const feature_deprecatedV8 = Feature{
pub const feature_v9 = Feature{
.name = "v9",
.description = "Enable SPARC-V9 instructions",
.llvm_name = "v9",
.subfeatures = &[_]*const Feature {
},
};
@ -84,7 +74,6 @@ pub const feature_v9 = Feature{
pub const feature_vis = Feature{
.name = "vis",
.description = "Enable UltraSPARC Visual Instruction Set extensions",
.llvm_name = "vis",
.subfeatures = &[_]*const Feature {
},
};
@ -92,7 +81,6 @@ pub const feature_vis = Feature{
pub const feature_vis2 = Feature{
.name = "vis2",
.description = "Enable Visual Instruction Set extensions II",
.llvm_name = "vis2",
.subfeatures = &[_]*const Feature {
},
};
@ -100,7 +88,6 @@ pub const feature_vis2 = Feature{
pub const feature_vis3 = Feature{
.name = "vis3",
.description = "Enable Visual Instruction Set extensions III",
.llvm_name = "vis3",
.subfeatures = &[_]*const Feature {
},
};
@ -108,7 +95,6 @@ pub const feature_vis3 = Feature{
pub const feature_fixallfdivsqrt = Feature{
.name = "fixallfdivsqrt",
.description = "LEON erratum fix: Fix FDIVS/FDIVD/FSQRTS/FSQRTD instructions with NOPs and floating-point store",
.llvm_name = "fixallfdivsqrt",
.subfeatures = &[_]*const Feature {
},
};
@ -116,7 +102,6 @@ pub const feature_fixallfdivsqrt = Feature{
pub const feature_insertnopload = Feature{
.name = "insertnopload",
.description = "LEON3 erratum fix: Insert a NOP instruction after every single-cycle load instruction when the next instruction is another load/store instruction",
.llvm_name = "insertnopload",
.subfeatures = &[_]*const Feature {
},
};
@ -124,7 +109,6 @@ pub const feature_insertnopload = Feature{
pub const feature_hasleoncasa = Feature{
.name = "hasleoncasa",
.description = "Enable CASA instruction for LEON3 and LEON4 processors",
.llvm_name = "hasleoncasa",
.subfeatures = &[_]*const Feature {
},
};
@ -132,7 +116,6 @@ pub const feature_hasleoncasa = Feature{
pub const feature_leoncyclecounter = Feature{
.name = "leoncyclecounter",
.description = "Use the Leon cycle counter register",
.llvm_name = "leoncyclecounter",
.subfeatures = &[_]*const Feature {
},
};
@ -140,7 +123,6 @@ pub const feature_leoncyclecounter = Feature{
pub const feature_hasumacsmac = Feature{
.name = "hasumacsmac",
.description = "Enable UMAC and SMAC for LEON3 and LEON4 processors",
.llvm_name = "hasumacsmac",
.subfeatures = &[_]*const Feature {
},
};
@ -148,7 +130,6 @@ pub const feature_hasumacsmac = Feature{
pub const feature_popc = Feature{
.name = "popc",
.description = "Use the popc (population count) instruction",
.llvm_name = "popc",
.subfeatures = &[_]*const Feature {
},
};

View File

@ -4,7 +4,6 @@ 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",
.llvm_name = "dfp-packed-conversion",
.subfeatures = &[_]*const Feature {
},
};
@ -12,7 +11,6 @@ pub const feature_dfpPackedConversion = Feature{
pub const feature_dfpZonedConversion = Feature{
.name = "dfp-zoned-conversion",
.description = "Assume that the DFP zoned-conversion facility is installed",
.llvm_name = "dfp-zoned-conversion",
.subfeatures = &[_]*const Feature {
},
};
@ -20,7 +18,6 @@ pub const feature_dfpZonedConversion = Feature{
pub const feature_deflateConversion = Feature{
.name = "deflate-conversion",
.description = "Assume that the deflate-conversion facility is installed",
.llvm_name = "deflate-conversion",
.subfeatures = &[_]*const Feature {
},
};
@ -28,7 +25,6 @@ pub const feature_deflateConversion = Feature{
pub const feature_distinctOps = Feature{
.name = "distinct-ops",
.description = "Assume that the distinct-operands facility is installed",
.llvm_name = "distinct-ops",
.subfeatures = &[_]*const Feature {
},
};
@ -36,7 +32,6 @@ pub const feature_distinctOps = Feature{
pub const feature_enhancedDat2 = Feature{
.name = "enhanced-dat-2",
.description = "Assume that the enhanced-DAT facility 2 is installed",
.llvm_name = "enhanced-dat-2",
.subfeatures = &[_]*const Feature {
},
};
@ -44,7 +39,6 @@ pub const feature_enhancedDat2 = Feature{
pub const feature_enhancedSort = Feature{
.name = "enhanced-sort",
.description = "Assume that the enhanced-sort facility is installed",
.llvm_name = "enhanced-sort",
.subfeatures = &[_]*const Feature {
},
};
@ -52,7 +46,6 @@ pub const feature_enhancedSort = Feature{
pub const feature_executionHint = Feature{
.name = "execution-hint",
.description = "Assume that the execution-hint facility is installed",
.llvm_name = "execution-hint",
.subfeatures = &[_]*const Feature {
},
};
@ -60,7 +53,6 @@ pub const feature_executionHint = Feature{
pub const feature_fpExtension = Feature{
.name = "fp-extension",
.description = "Assume that the floating-point extension facility is installed",
.llvm_name = "fp-extension",
.subfeatures = &[_]*const Feature {
},
};
@ -68,7 +60,6 @@ pub const feature_fpExtension = Feature{
pub const feature_fastSerialization = Feature{
.name = "fast-serialization",
.description = "Assume that the fast-serialization facility is installed",
.llvm_name = "fast-serialization",
.subfeatures = &[_]*const Feature {
},
};
@ -76,7 +67,6 @@ pub const feature_fastSerialization = Feature{
pub const feature_guardedStorage = Feature{
.name = "guarded-storage",
.description = "Assume that the guarded-storage facility is installed",
.llvm_name = "guarded-storage",
.subfeatures = &[_]*const Feature {
},
};
@ -84,7 +74,6 @@ pub const feature_guardedStorage = Feature{
pub const feature_highWord = Feature{
.name = "high-word",
.description = "Assume that the high-word facility is installed",
.llvm_name = "high-word",
.subfeatures = &[_]*const Feature {
},
};
@ -92,7 +81,6 @@ pub const feature_highWord = Feature{
pub const feature_insertReferenceBitsMultiple = Feature{
.name = "insert-reference-bits-multiple",
.description = "Assume that the insert-reference-bits-multiple facility is installed",
.llvm_name = "insert-reference-bits-multiple",
.subfeatures = &[_]*const Feature {
},
};
@ -100,7 +88,6 @@ pub const feature_insertReferenceBitsMultiple = Feature{
pub const feature_interlockedAccess1 = Feature{
.name = "interlocked-access1",
.description = "Assume that interlocked-access facility 1 is installed",
.llvm_name = "interlocked-access1",
.subfeatures = &[_]*const Feature {
},
};
@ -108,7 +95,6 @@ pub const feature_interlockedAccess1 = Feature{
pub const feature_loadAndTrap = Feature{
.name = "load-and-trap",
.description = "Assume that the load-and-trap facility is installed",
.llvm_name = "load-and-trap",
.subfeatures = &[_]*const Feature {
},
};
@ -116,7 +102,6 @@ pub const feature_loadAndTrap = Feature{
pub const feature_loadAndZeroRightmostByte = Feature{
.name = "load-and-zero-rightmost-byte",
.description = "Assume that the load-and-zero-rightmost-byte facility is installed",
.llvm_name = "load-and-zero-rightmost-byte",
.subfeatures = &[_]*const Feature {
},
};
@ -124,7 +109,6 @@ pub const feature_loadAndZeroRightmostByte = Feature{
pub const feature_loadStoreOnCond = Feature{
.name = "load-store-on-cond",
.description = "Assume that the load/store-on-condition facility is installed",
.llvm_name = "load-store-on-cond",
.subfeatures = &[_]*const Feature {
},
};
@ -132,7 +116,6 @@ pub const feature_loadStoreOnCond = Feature{
pub const feature_loadStoreOnCond2 = Feature{
.name = "load-store-on-cond-2",
.description = "Assume that the load/store-on-condition facility 2 is installed",
.llvm_name = "load-store-on-cond-2",
.subfeatures = &[_]*const Feature {
},
};
@ -140,7 +123,6 @@ pub const feature_loadStoreOnCond2 = Feature{
pub const feature_messageSecurityAssistExtension3 = Feature{
.name = "message-security-assist-extension3",
.description = "Assume that the message-security-assist extension facility 3 is installed",
.llvm_name = "message-security-assist-extension3",
.subfeatures = &[_]*const Feature {
},
};
@ -148,7 +130,6 @@ pub const feature_messageSecurityAssistExtension3 = Feature{
pub const feature_messageSecurityAssistExtension4 = Feature{
.name = "message-security-assist-extension4",
.description = "Assume that the message-security-assist extension facility 4 is installed",
.llvm_name = "message-security-assist-extension4",
.subfeatures = &[_]*const Feature {
},
};
@ -156,7 +137,6 @@ pub const feature_messageSecurityAssistExtension4 = Feature{
pub const feature_messageSecurityAssistExtension5 = Feature{
.name = "message-security-assist-extension5",
.description = "Assume that the message-security-assist extension facility 5 is installed",
.llvm_name = "message-security-assist-extension5",
.subfeatures = &[_]*const Feature {
},
};
@ -164,7 +144,6 @@ pub const feature_messageSecurityAssistExtension5 = Feature{
pub const feature_messageSecurityAssistExtension7 = Feature{
.name = "message-security-assist-extension7",
.description = "Assume that the message-security-assist extension facility 7 is installed",
.llvm_name = "message-security-assist-extension7",
.subfeatures = &[_]*const Feature {
},
};
@ -172,7 +151,6 @@ pub const feature_messageSecurityAssistExtension7 = Feature{
pub const feature_messageSecurityAssistExtension8 = Feature{
.name = "message-security-assist-extension8",
.description = "Assume that the message-security-assist extension facility 8 is installed",
.llvm_name = "message-security-assist-extension8",
.subfeatures = &[_]*const Feature {
},
};
@ -180,7 +158,6 @@ pub const feature_messageSecurityAssistExtension8 = Feature{
pub const feature_messageSecurityAssistExtension9 = Feature{
.name = "message-security-assist-extension9",
.description = "Assume that the message-security-assist extension facility 9 is installed",
.llvm_name = "message-security-assist-extension9",
.subfeatures = &[_]*const Feature {
},
};
@ -188,7 +165,6 @@ pub const feature_messageSecurityAssistExtension9 = Feature{
pub const feature_miscellaneousExtensions = Feature{
.name = "miscellaneous-extensions",
.description = "Assume that the miscellaneous-extensions facility is installed",
.llvm_name = "miscellaneous-extensions",
.subfeatures = &[_]*const Feature {
},
};
@ -196,7 +172,6 @@ pub const feature_miscellaneousExtensions = Feature{
pub const feature_miscellaneousExtensions2 = Feature{
.name = "miscellaneous-extensions-2",
.description = "Assume that the miscellaneous-extensions facility 2 is installed",
.llvm_name = "miscellaneous-extensions-2",
.subfeatures = &[_]*const Feature {
},
};
@ -204,7 +179,6 @@ pub const feature_miscellaneousExtensions2 = Feature{
pub const feature_miscellaneousExtensions3 = Feature{
.name = "miscellaneous-extensions-3",
.description = "Assume that the miscellaneous-extensions facility 3 is installed",
.llvm_name = "miscellaneous-extensions-3",
.subfeatures = &[_]*const Feature {
},
};
@ -212,7 +186,6 @@ pub const feature_miscellaneousExtensions3 = Feature{
pub const feature_populationCount = Feature{
.name = "population-count",
.description = "Assume that the population-count facility is installed",
.llvm_name = "population-count",
.subfeatures = &[_]*const Feature {
},
};
@ -220,7 +193,6 @@ pub const feature_populationCount = Feature{
pub const feature_processorAssist = Feature{
.name = "processor-assist",
.description = "Assume that the processor-assist facility is installed",
.llvm_name = "processor-assist",
.subfeatures = &[_]*const Feature {
},
};
@ -228,7 +200,6 @@ pub const feature_processorAssist = Feature{
pub const feature_resetReferenceBitsMultiple = Feature{
.name = "reset-reference-bits-multiple",
.description = "Assume that the reset-reference-bits-multiple facility is installed",
.llvm_name = "reset-reference-bits-multiple",
.subfeatures = &[_]*const Feature {
},
};
@ -236,7 +207,6 @@ pub const feature_resetReferenceBitsMultiple = Feature{
pub const feature_transactionalExecution = Feature{
.name = "transactional-execution",
.description = "Assume that the transactional-execution facility is installed",
.llvm_name = "transactional-execution",
.subfeatures = &[_]*const Feature {
},
};
@ -244,7 +214,6 @@ pub const feature_transactionalExecution = Feature{
pub const feature_vector = Feature{
.name = "vector",
.description = "Assume that the vectory facility is installed",
.llvm_name = "vector",
.subfeatures = &[_]*const Feature {
},
};
@ -252,7 +221,6 @@ pub const feature_vector = Feature{
pub const feature_vectorEnhancements1 = Feature{
.name = "vector-enhancements-1",
.description = "Assume that the vector enhancements facility 1 is installed",
.llvm_name = "vector-enhancements-1",
.subfeatures = &[_]*const Feature {
},
};
@ -260,7 +228,6 @@ pub const feature_vectorEnhancements1 = Feature{
pub const feature_vectorEnhancements2 = Feature{
.name = "vector-enhancements-2",
.description = "Assume that the vector enhancements facility 2 is installed",
.llvm_name = "vector-enhancements-2",
.subfeatures = &[_]*const Feature {
},
};
@ -268,7 +235,6 @@ pub const feature_vectorEnhancements2 = Feature{
pub const feature_vectorPackedDecimal = Feature{
.name = "vector-packed-decimal",
.description = "Assume that the vector packed decimal facility is installed",
.llvm_name = "vector-packed-decimal",
.subfeatures = &[_]*const Feature {
},
};
@ -276,7 +242,6 @@ pub const feature_vectorPackedDecimal = Feature{
pub const feature_vectorPackedDecimalEnhancement = Feature{
.name = "vector-packed-decimal-enhancement",
.description = "Assume that the vector packed decimal enhancement facility is installed",
.llvm_name = "vector-packed-decimal-enhancement",
.subfeatures = &[_]*const Feature {
},
};

View File

@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu;
pub const feature_atomics = Feature{
.name = "atomics",
.description = "Enable Atomics",
.llvm_name = "atomics",
.subfeatures = &[_]*const Feature {
},
};
@ -12,7 +11,6 @@ pub const feature_atomics = Feature{
pub const feature_bulkMemory = Feature{
.name = "bulk-memory",
.description = "Enable bulk memory operations",
.llvm_name = "bulk-memory",
.subfeatures = &[_]*const Feature {
},
};
@ -20,7 +18,6 @@ pub const feature_bulkMemory = Feature{
pub const feature_exceptionHandling = Feature{
.name = "exception-handling",
.description = "Enable Wasm exception handling",
.llvm_name = "exception-handling",
.subfeatures = &[_]*const Feature {
},
};
@ -28,7 +25,6 @@ pub const feature_exceptionHandling = Feature{
pub const feature_multivalue = Feature{
.name = "multivalue",
.description = "Enable multivalue blocks, instructions, and functions",
.llvm_name = "multivalue",
.subfeatures = &[_]*const Feature {
},
};
@ -36,7 +32,6 @@ pub const feature_multivalue = Feature{
pub const feature_mutableGlobals = Feature{
.name = "mutable-globals",
.description = "Enable mutable globals",
.llvm_name = "mutable-globals",
.subfeatures = &[_]*const Feature {
},
};
@ -44,7 +39,6 @@ pub const feature_mutableGlobals = Feature{
pub const feature_nontrappingFptoint = Feature{
.name = "nontrapping-fptoint",
.description = "Enable non-trapping float-to-int conversion operators",
.llvm_name = "nontrapping-fptoint",
.subfeatures = &[_]*const Feature {
},
};
@ -52,7 +46,6 @@ pub const feature_nontrappingFptoint = Feature{
pub const feature_simd128 = Feature{
.name = "simd128",
.description = "Enable 128-bit SIMD",
.llvm_name = "simd128",
.subfeatures = &[_]*const Feature {
},
};
@ -60,7 +53,6 @@ pub const feature_simd128 = Feature{
pub const feature_signExt = Feature{
.name = "sign-ext",
.description = "Enable sign extension operators",
.llvm_name = "sign-ext",
.subfeatures = &[_]*const Feature {
},
};
@ -68,7 +60,6 @@ pub const feature_signExt = Feature{
pub const feature_tailCall = Feature{
.name = "tail-call",
.description = "Enable tail call instructions",
.llvm_name = "tail-call",
.subfeatures = &[_]*const Feature {
},
};
@ -76,7 +67,6 @@ pub const feature_tailCall = Feature{
pub const feature_unimplementedSimd128 = Feature{
.name = "unimplemented-simd128",
.description = "Enable 128-bit SIMD not yet implemented in engines",
.llvm_name = "unimplemented-simd128",
.subfeatures = &[_]*const Feature {
&feature_simd128,
},

View File

@ -4,7 +4,6 @@ const Cpu = @import("std").target.Cpu;
pub const feature_dnow3 = Feature{
.name = "3dnow",
.description = "Enable 3DNow! instructions",
.llvm_name = "3dnow",
.subfeatures = &[_]*const Feature {
&feature_mmx,
},
@ -13,7 +12,6 @@ pub const feature_dnow3 = Feature{
pub const feature_dnowa3 = Feature{
.name = "3dnowa",
.description = "Enable 3DNow! Athlon instructions",
.llvm_name = "3dnowa",
.subfeatures = &[_]*const Feature {
&feature_mmx,
},
@ -22,7 +20,6 @@ pub const feature_dnowa3 = Feature{
pub const feature_bit64 = Feature{
.name = "64bit",
.description = "Support 64-bit instructions",
.llvm_name = "64bit",
.subfeatures = &[_]*const Feature {
},
};
@ -30,7 +27,6 @@ pub const feature_bit64 = Feature{
pub const feature_adx = Feature{
.name = "adx",
.description = "Support ADX instructions",
.llvm_name = "adx",
.subfeatures = &[_]*const Feature {
},
};
@ -38,7 +34,6 @@ pub const feature_adx = Feature{
pub const feature_aes = Feature{
.name = "aes",
.description = "Enable AES instructions",
.llvm_name = "aes",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -47,7 +42,6 @@ pub const feature_aes = Feature{
pub const feature_avx = Feature{
.name = "avx",
.description = "Enable AVX instructions",
.llvm_name = "avx",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -56,7 +50,6 @@ pub const feature_avx = Feature{
pub const feature_avx2 = Feature{
.name = "avx2",
.description = "Enable AVX2 instructions",
.llvm_name = "avx2",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -65,7 +58,6 @@ pub const feature_avx2 = Feature{
pub const feature_avx512f = Feature{
.name = "avx512f",
.description = "Enable AVX-512 instructions",
.llvm_name = "avx512f",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -74,7 +66,6 @@ pub const feature_avx512f = Feature{
pub const feature_avx512bf16 = Feature{
.name = "avx512bf16",
.description = "Support bfloat16 floating point",
.llvm_name = "avx512bf16",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -83,7 +74,6 @@ pub const feature_avx512bf16 = Feature{
pub const feature_avx512bitalg = Feature{
.name = "avx512bitalg",
.description = "Enable AVX-512 Bit Algorithms",
.llvm_name = "avx512bitalg",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -92,7 +82,6 @@ pub const feature_avx512bitalg = Feature{
pub const feature_bmi = Feature{
.name = "bmi",
.description = "Support BMI instructions",
.llvm_name = "bmi",
.subfeatures = &[_]*const Feature {
},
};
@ -100,7 +89,6 @@ pub const feature_bmi = Feature{
pub const feature_bmi2 = Feature{
.name = "bmi2",
.description = "Support BMI2 instructions",
.llvm_name = "bmi2",
.subfeatures = &[_]*const Feature {
},
};
@ -108,7 +96,6 @@ pub const feature_bmi2 = Feature{
pub const feature_avx512bw = Feature{
.name = "avx512bw",
.description = "Enable AVX-512 Byte and Word Instructions",
.llvm_name = "avx512bw",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -117,7 +104,6 @@ pub const feature_avx512bw = Feature{
pub const feature_branchfusion = Feature{
.name = "branchfusion",
.description = "CMP/TEST can be fused with conditional branches",
.llvm_name = "branchfusion",
.subfeatures = &[_]*const Feature {
},
};
@ -125,7 +111,6 @@ pub const feature_branchfusion = Feature{
pub const feature_avx512cd = Feature{
.name = "avx512cd",
.description = "Enable AVX-512 Conflict Detection Instructions",
.llvm_name = "avx512cd",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -134,7 +119,6 @@ pub const feature_avx512cd = Feature{
pub const feature_cldemote = Feature{
.name = "cldemote",
.description = "Enable Cache Demote",
.llvm_name = "cldemote",
.subfeatures = &[_]*const Feature {
},
};
@ -142,7 +126,6 @@ pub const feature_cldemote = Feature{
pub const feature_clflushopt = Feature{
.name = "clflushopt",
.description = "Flush A Cache Line Optimized",
.llvm_name = "clflushopt",
.subfeatures = &[_]*const Feature {
},
};
@ -150,7 +133,6 @@ pub const feature_clflushopt = Feature{
pub const feature_clwb = Feature{
.name = "clwb",
.description = "Cache Line Write Back",
.llvm_name = "clwb",
.subfeatures = &[_]*const Feature {
},
};
@ -158,7 +140,6 @@ pub const feature_clwb = Feature{
pub const feature_clzero = Feature{
.name = "clzero",
.description = "Enable Cache Line Zero",
.llvm_name = "clzero",
.subfeatures = &[_]*const Feature {
},
};
@ -166,7 +147,6 @@ pub const feature_clzero = Feature{
pub const feature_cmov = Feature{
.name = "cmov",
.description = "Enable conditional move instructions",
.llvm_name = "cmov",
.subfeatures = &[_]*const Feature {
},
};
@ -174,7 +154,6 @@ pub const feature_cmov = Feature{
pub const feature_cx8 = Feature{
.name = "cx8",
.description = "Support CMPXCHG8B instructions",
.llvm_name = "cx8",
.subfeatures = &[_]*const Feature {
},
};
@ -182,7 +161,6 @@ pub const feature_cx8 = Feature{
pub const feature_cx16 = Feature{
.name = "cx16",
.description = "64-bit with cmpxchg16b",
.llvm_name = "cx16",
.subfeatures = &[_]*const Feature {
&feature_cx8,
},
@ -191,7 +169,6 @@ pub const feature_cx16 = Feature{
pub const feature_avx512dq = Feature{
.name = "avx512dq",
.description = "Enable AVX-512 Doubleword and Quadword Instructions",
.llvm_name = "avx512dq",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -200,7 +177,6 @@ pub const feature_avx512dq = Feature{
pub const feature_mpx = Feature{
.name = "mpx",
.description = "Deprecated. Support MPX instructions",
.llvm_name = "mpx",
.subfeatures = &[_]*const Feature {
},
};
@ -208,7 +184,6 @@ pub const feature_mpx = Feature{
pub const feature_enqcmd = Feature{
.name = "enqcmd",
.description = "Has ENQCMD instructions",
.llvm_name = "enqcmd",
.subfeatures = &[_]*const Feature {
},
};
@ -216,7 +191,6 @@ pub const feature_enqcmd = Feature{
pub const feature_avx512er = Feature{
.name = "avx512er",
.description = "Enable AVX-512 Exponential and Reciprocal Instructions",
.llvm_name = "avx512er",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -225,7 +199,6 @@ pub const feature_avx512er = Feature{
pub const feature_ermsb = Feature{
.name = "ermsb",
.description = "REP MOVS/STOS are fast",
.llvm_name = "ermsb",
.subfeatures = &[_]*const Feature {
},
};
@ -233,7 +206,6 @@ pub const feature_ermsb = Feature{
pub const feature_f16c = Feature{
.name = "f16c",
.description = "Support 16-bit floating point conversion instructions",
.llvm_name = "f16c",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -242,7 +214,6 @@ pub const feature_f16c = Feature{
pub const feature_fma = Feature{
.name = "fma",
.description = "Enable three-operand fused multiple-add",
.llvm_name = "fma",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -251,7 +222,6 @@ pub const feature_fma = Feature{
pub const feature_fma4 = Feature{
.name = "fma4",
.description = "Enable four-operand fused multiple-add",
.llvm_name = "fma4",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -260,7 +230,6 @@ pub const feature_fma4 = Feature{
pub const feature_fsgsbase = Feature{
.name = "fsgsbase",
.description = "Support FS/GS Base instructions",
.llvm_name = "fsgsbase",
.subfeatures = &[_]*const Feature {
},
};
@ -268,7 +237,6 @@ pub const feature_fsgsbase = Feature{
pub const feature_fxsr = Feature{
.name = "fxsr",
.description = "Support fxsave/fxrestore instructions",
.llvm_name = "fxsr",
.subfeatures = &[_]*const Feature {
},
};
@ -276,7 +244,6 @@ pub const feature_fxsr = Feature{
pub const feature_fast11bytenop = Feature{
.name = "fast-11bytenop",
.description = "Target can quickly decode up to 11 byte NOPs",
.llvm_name = "fast-11bytenop",
.subfeatures = &[_]*const Feature {
},
};
@ -284,7 +251,6 @@ pub const feature_fast11bytenop = Feature{
pub const feature_fast15bytenop = Feature{
.name = "fast-15bytenop",
.description = "Target can quickly decode up to 15 byte NOPs",
.llvm_name = "fast-15bytenop",
.subfeatures = &[_]*const Feature {
},
};
@ -292,7 +258,6 @@ pub const feature_fast15bytenop = Feature{
pub const feature_fastBextr = Feature{
.name = "fast-bextr",
.description = "Indicates that the BEXTR instruction is implemented as a single uop with good throughput",
.llvm_name = "fast-bextr",
.subfeatures = &[_]*const Feature {
},
};
@ -300,7 +265,6 @@ pub const feature_fastBextr = Feature{
pub const feature_fastHops = Feature{
.name = "fast-hops",
.description = "Prefer horizontal vector math instructions (haddp, phsub, etc.) over normal vector instructions with shuffles",
.llvm_name = "fast-hops",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -309,7 +273,6 @@ pub const feature_fastHops = Feature{
pub const feature_fastLzcnt = Feature{
.name = "fast-lzcnt",
.description = "LZCNT instructions are as fast as most simple integer ops",
.llvm_name = "fast-lzcnt",
.subfeatures = &[_]*const Feature {
},
};
@ -317,7 +280,6 @@ pub const feature_fastLzcnt = Feature{
pub const feature_fastPartialYmmOrZmmWrite = Feature{
.name = "fast-partial-ymm-or-zmm-write",
.description = "Partial writes to YMM/ZMM registers are fast",
.llvm_name = "fast-partial-ymm-or-zmm-write",
.subfeatures = &[_]*const Feature {
},
};
@ -325,7 +287,6 @@ pub const feature_fastPartialYmmOrZmmWrite = Feature{
pub const feature_fastShldRotate = Feature{
.name = "fast-shld-rotate",
.description = "SHLD can be used as a faster rotate",
.llvm_name = "fast-shld-rotate",
.subfeatures = &[_]*const Feature {
},
};
@ -333,7 +294,6 @@ pub const feature_fastShldRotate = Feature{
pub const feature_fastScalarFsqrt = Feature{
.name = "fast-scalar-fsqrt",
.description = "Scalar SQRT is fast (disable Newton-Raphson)",
.llvm_name = "fast-scalar-fsqrt",
.subfeatures = &[_]*const Feature {
},
};
@ -341,7 +301,6 @@ pub const feature_fastScalarFsqrt = Feature{
pub const feature_fastScalarShiftMasks = Feature{
.name = "fast-scalar-shift-masks",
.description = "Prefer a left/right scalar logical shift pair over a shift+and pair",
.llvm_name = "fast-scalar-shift-masks",
.subfeatures = &[_]*const Feature {
},
};
@ -349,7 +308,6 @@ pub const feature_fastScalarShiftMasks = Feature{
pub const feature_fastVariableShuffle = Feature{
.name = "fast-variable-shuffle",
.description = "Shuffles with variable masks are fast",
.llvm_name = "fast-variable-shuffle",
.subfeatures = &[_]*const Feature {
},
};
@ -357,7 +315,6 @@ pub const feature_fastVariableShuffle = Feature{
pub const feature_fastVectorFsqrt = Feature{
.name = "fast-vector-fsqrt",
.description = "Vector SQRT is fast (disable Newton-Raphson)",
.llvm_name = "fast-vector-fsqrt",
.subfeatures = &[_]*const Feature {
},
};
@ -365,7 +322,6 @@ pub const feature_fastVectorFsqrt = Feature{
pub const feature_fastVectorShiftMasks = Feature{
.name = "fast-vector-shift-masks",
.description = "Prefer a left/right vector logical shift pair over a shift+and pair",
.llvm_name = "fast-vector-shift-masks",
.subfeatures = &[_]*const Feature {
},
};
@ -373,7 +329,6 @@ pub const feature_fastVectorShiftMasks = Feature{
pub const feature_gfni = Feature{
.name = "gfni",
.description = "Enable Galois Field Arithmetic Instructions",
.llvm_name = "gfni",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -382,7 +337,6 @@ pub const feature_gfni = Feature{
pub const feature_fastGather = Feature{
.name = "fast-gather",
.description = "Indicates if gather is reasonably fast",
.llvm_name = "fast-gather",
.subfeatures = &[_]*const Feature {
},
};
@ -390,7 +344,6 @@ pub const feature_fastGather = Feature{
pub const feature_avx512ifma = Feature{
.name = "avx512ifma",
.description = "Enable AVX-512 Integer Fused Multiple-Add",
.llvm_name = "avx512ifma",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -399,7 +352,6 @@ pub const feature_avx512ifma = Feature{
pub const feature_invpcid = Feature{
.name = "invpcid",
.description = "Invalidate Process-Context Identifier",
.llvm_name = "invpcid",
.subfeatures = &[_]*const Feature {
},
};
@ -407,7 +359,6 @@ pub const feature_invpcid = Feature{
pub const feature_sahf = Feature{
.name = "sahf",
.description = "Support LAHF and SAHF instructions",
.llvm_name = "sahf",
.subfeatures = &[_]*const Feature {
},
};
@ -415,7 +366,6 @@ pub const feature_sahf = Feature{
pub const feature_leaSp = Feature{
.name = "lea-sp",
.description = "Use LEA for adjusting the stack pointer",
.llvm_name = "lea-sp",
.subfeatures = &[_]*const Feature {
},
};
@ -423,7 +373,6 @@ pub const feature_leaSp = Feature{
pub const feature_leaUsesAg = Feature{
.name = "lea-uses-ag",
.description = "LEA instruction needs inputs at AG stage",
.llvm_name = "lea-uses-ag",
.subfeatures = &[_]*const Feature {
},
};
@ -431,7 +380,6 @@ pub const feature_leaUsesAg = Feature{
pub const feature_lwp = Feature{
.name = "lwp",
.description = "Enable LWP instructions",
.llvm_name = "lwp",
.subfeatures = &[_]*const Feature {
},
};
@ -439,7 +387,6 @@ pub const feature_lwp = Feature{
pub const feature_lzcnt = Feature{
.name = "lzcnt",
.description = "Support LZCNT instruction",
.llvm_name = "lzcnt",
.subfeatures = &[_]*const Feature {
},
};
@ -447,7 +394,6 @@ pub const feature_lzcnt = Feature{
pub const feature_falseDepsLzcntTzcnt = Feature{
.name = "false-deps-lzcnt-tzcnt",
.description = "LZCNT/TZCNT have a false dependency on dest register",
.llvm_name = "false-deps-lzcnt-tzcnt",
.subfeatures = &[_]*const Feature {
},
};
@ -455,7 +401,6 @@ pub const feature_falseDepsLzcntTzcnt = Feature{
pub const feature_mmx = Feature{
.name = "mmx",
.description = "Enable MMX instructions",
.llvm_name = "mmx",
.subfeatures = &[_]*const Feature {
},
};
@ -463,7 +408,6 @@ pub const feature_mmx = Feature{
pub const feature_movbe = Feature{
.name = "movbe",
.description = "Support MOVBE instruction",
.llvm_name = "movbe",
.subfeatures = &[_]*const Feature {
},
};
@ -471,7 +415,6 @@ pub const feature_movbe = Feature{
pub const feature_movdir64b = Feature{
.name = "movdir64b",
.description = "Support movdir64b instruction",
.llvm_name = "movdir64b",
.subfeatures = &[_]*const Feature {
},
};
@ -479,7 +422,6 @@ pub const feature_movdir64b = Feature{
pub const feature_movdiri = Feature{
.name = "movdiri",
.description = "Support movdiri instruction",
.llvm_name = "movdiri",
.subfeatures = &[_]*const Feature {
},
};
@ -487,7 +429,6 @@ pub const feature_movdiri = Feature{
pub const feature_mwaitx = Feature{
.name = "mwaitx",
.description = "Enable MONITORX/MWAITX timer functionality",
.llvm_name = "mwaitx",
.subfeatures = &[_]*const Feature {
},
};
@ -495,7 +436,6 @@ pub const feature_mwaitx = Feature{
pub const feature_macrofusion = Feature{
.name = "macrofusion",
.description = "Various instructions can be fused with conditional branches",
.llvm_name = "macrofusion",
.subfeatures = &[_]*const Feature {
},
};
@ -503,7 +443,6 @@ pub const feature_macrofusion = Feature{
pub const feature_mergeToThreewayBranch = Feature{
.name = "merge-to-threeway-branch",
.description = "Merge branches to a three-way conditional branch",
.llvm_name = "merge-to-threeway-branch",
.subfeatures = &[_]*const Feature {
},
};
@ -511,7 +450,6 @@ pub const feature_mergeToThreewayBranch = Feature{
pub const feature_nopl = Feature{
.name = "nopl",
.description = "Enable NOPL instruction",
.llvm_name = "nopl",
.subfeatures = &[_]*const Feature {
},
};
@ -519,7 +457,6 @@ pub const feature_nopl = Feature{
pub const feature_pclmul = Feature{
.name = "pclmul",
.description = "Enable packed carry-less multiplication instructions",
.llvm_name = "pclmul",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -528,7 +465,6 @@ pub const feature_pclmul = Feature{
pub const feature_pconfig = Feature{
.name = "pconfig",
.description = "platform configuration instruction",
.llvm_name = "pconfig",
.subfeatures = &[_]*const Feature {
},
};
@ -536,7 +472,6 @@ pub const feature_pconfig = Feature{
pub const feature_avx512pf = Feature{
.name = "avx512pf",
.description = "Enable AVX-512 PreFetch Instructions",
.llvm_name = "avx512pf",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -545,7 +480,6 @@ pub const feature_avx512pf = Feature{
pub const feature_pku = Feature{
.name = "pku",
.description = "Enable protection keys",
.llvm_name = "pku",
.subfeatures = &[_]*const Feature {
},
};
@ -553,7 +487,6 @@ pub const feature_pku = Feature{
pub const feature_popcnt = Feature{
.name = "popcnt",
.description = "Support POPCNT instruction",
.llvm_name = "popcnt",
.subfeatures = &[_]*const Feature {
},
};
@ -561,7 +494,6 @@ pub const feature_popcnt = Feature{
pub const feature_falseDepsPopcnt = Feature{
.name = "false-deps-popcnt",
.description = "POPCNT has a false dependency on dest register",
.llvm_name = "false-deps-popcnt",
.subfeatures = &[_]*const Feature {
},
};
@ -569,7 +501,6 @@ pub const feature_falseDepsPopcnt = Feature{
pub const feature_prefetchwt1 = Feature{
.name = "prefetchwt1",
.description = "Prefetch with Intent to Write and T1 Hint",
.llvm_name = "prefetchwt1",
.subfeatures = &[_]*const Feature {
},
};
@ -577,7 +508,6 @@ pub const feature_prefetchwt1 = Feature{
pub const feature_prfchw = Feature{
.name = "prfchw",
.description = "Support PRFCHW instructions",
.llvm_name = "prfchw",
.subfeatures = &[_]*const Feature {
},
};
@ -585,7 +515,6 @@ pub const feature_prfchw = Feature{
pub const feature_ptwrite = Feature{
.name = "ptwrite",
.description = "Support ptwrite instruction",
.llvm_name = "ptwrite",
.subfeatures = &[_]*const Feature {
},
};
@ -593,7 +522,6 @@ pub const feature_ptwrite = Feature{
pub const feature_padShortFunctions = Feature{
.name = "pad-short-functions",
.description = "Pad short functions",
.llvm_name = "pad-short-functions",
.subfeatures = &[_]*const Feature {
},
};
@ -601,7 +529,6 @@ pub const feature_padShortFunctions = Feature{
pub const feature_prefer128Bit = Feature{
.name = "prefer-128-bit",
.description = "Prefer 128-bit AVX instructions",
.llvm_name = "prefer-128-bit",
.subfeatures = &[_]*const Feature {
},
};
@ -609,7 +536,6 @@ pub const feature_prefer128Bit = Feature{
pub const feature_prefer256Bit = Feature{
.name = "prefer-256-bit",
.description = "Prefer 256-bit AVX instructions",
.llvm_name = "prefer-256-bit",
.subfeatures = &[_]*const Feature {
},
};
@ -617,7 +543,6 @@ pub const feature_prefer256Bit = Feature{
pub const feature_rdpid = Feature{
.name = "rdpid",
.description = "Support RDPID instructions",
.llvm_name = "rdpid",
.subfeatures = &[_]*const Feature {
},
};
@ -625,7 +550,6 @@ pub const feature_rdpid = Feature{
pub const feature_rdrnd = Feature{
.name = "rdrnd",
.description = "Support RDRAND instruction",
.llvm_name = "rdrnd",
.subfeatures = &[_]*const Feature {
},
};
@ -633,7 +557,6 @@ pub const feature_rdrnd = Feature{
pub const feature_rdseed = Feature{
.name = "rdseed",
.description = "Support RDSEED instruction",
.llvm_name = "rdseed",
.subfeatures = &[_]*const Feature {
},
};
@ -641,7 +564,6 @@ pub const feature_rdseed = Feature{
pub const feature_rtm = Feature{
.name = "rtm",
.description = "Support RTM instructions",
.llvm_name = "rtm",
.subfeatures = &[_]*const Feature {
},
};
@ -649,17 +571,15 @@ pub const feature_rtm = Feature{
pub const feature_retpoline = Feature{
.name = "retpoline",
.description = "Remove speculation of indirect branches from the generated code, either by avoiding them entirely or lowering them with a speculation blocking construct",
.llvm_name = "retpoline",
.subfeatures = &[_]*const Feature {
&feature_retpolineIndirectCalls,
&feature_retpolineIndirectBranches,
&feature_retpolineIndirectCalls,
},
};
pub const feature_retpolineExternalThunk = Feature{
.name = "retpoline-external-thunk",
.description = "When lowering an indirect call or branch using a `retpoline`, rely on the specified user provided thunk rather than emitting one ourselves. Only has effect when combined with some other retpoline feature",
.llvm_name = "retpoline-external-thunk",
.subfeatures = &[_]*const Feature {
&feature_retpolineIndirectCalls,
},
@ -668,7 +588,6 @@ pub const feature_retpolineExternalThunk = Feature{
pub const feature_retpolineIndirectBranches = Feature{
.name = "retpoline-indirect-branches",
.description = "Remove speculation of indirect branches from the generated code",
.llvm_name = "retpoline-indirect-branches",
.subfeatures = &[_]*const Feature {
},
};
@ -676,7 +595,6 @@ pub const feature_retpolineIndirectBranches = Feature{
pub const feature_retpolineIndirectCalls = Feature{
.name = "retpoline-indirect-calls",
.description = "Remove speculation of indirect calls from the generated code",
.llvm_name = "retpoline-indirect-calls",
.subfeatures = &[_]*const Feature {
},
};
@ -684,7 +602,6 @@ pub const feature_retpolineIndirectCalls = Feature{
pub const feature_sgx = Feature{
.name = "sgx",
.description = "Enable Software Guard Extensions",
.llvm_name = "sgx",
.subfeatures = &[_]*const Feature {
},
};
@ -692,7 +609,6 @@ pub const feature_sgx = Feature{
pub const feature_sha = Feature{
.name = "sha",
.description = "Enable SHA instructions",
.llvm_name = "sha",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -701,7 +617,6 @@ pub const feature_sha = Feature{
pub const feature_shstk = Feature{
.name = "shstk",
.description = "Support CET Shadow-Stack instructions",
.llvm_name = "shstk",
.subfeatures = &[_]*const Feature {
},
};
@ -709,7 +624,6 @@ pub const feature_shstk = Feature{
pub const feature_sse = Feature{
.name = "sse",
.description = "Enable SSE instructions",
.llvm_name = "sse",
.subfeatures = &[_]*const Feature {
},
};
@ -717,7 +631,6 @@ pub const feature_sse = Feature{
pub const feature_sse2 = Feature{
.name = "sse2",
.description = "Enable SSE2 instructions",
.llvm_name = "sse2",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -726,7 +639,6 @@ pub const feature_sse2 = Feature{
pub const feature_sse3 = Feature{
.name = "sse3",
.description = "Enable SSE3 instructions",
.llvm_name = "sse3",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -735,7 +647,6 @@ pub const feature_sse3 = Feature{
pub const feature_sse4a = Feature{
.name = "sse4a",
.description = "Support SSE 4a instructions",
.llvm_name = "sse4a",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -744,7 +655,6 @@ pub const feature_sse4a = Feature{
pub const feature_sse41 = Feature{
.name = "sse4.1",
.description = "Enable SSE 4.1 instructions",
.llvm_name = "sse4.1",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -753,7 +663,6 @@ pub const feature_sse41 = Feature{
pub const feature_sse42 = Feature{
.name = "sse4.2",
.description = "Enable SSE 4.2 instructions",
.llvm_name = "sse4.2",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -762,7 +671,6 @@ pub const feature_sse42 = Feature{
pub const feature_sseUnalignedMem = Feature{
.name = "sse-unaligned-mem",
.description = "Allow unaligned memory operands with SSE instructions",
.llvm_name = "sse-unaligned-mem",
.subfeatures = &[_]*const Feature {
},
};
@ -770,7 +678,6 @@ pub const feature_sseUnalignedMem = Feature{
pub const feature_ssse3 = Feature{
.name = "ssse3",
.description = "Enable SSSE3 instructions",
.llvm_name = "ssse3",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -779,7 +686,6 @@ pub const feature_ssse3 = Feature{
pub const feature_slow3opsLea = Feature{
.name = "slow-3ops-lea",
.description = "LEA instruction with 3 ops or certain registers is slow",
.llvm_name = "slow-3ops-lea",
.subfeatures = &[_]*const Feature {
},
};
@ -787,7 +693,6 @@ pub const feature_slow3opsLea = Feature{
pub const feature_idivlToDivb = Feature{
.name = "idivl-to-divb",
.description = "Use 8-bit divide for positive values less than 256",
.llvm_name = "idivl-to-divb",
.subfeatures = &[_]*const Feature {
},
};
@ -795,7 +700,6 @@ pub const feature_idivlToDivb = Feature{
pub const feature_idivqToDivl = Feature{
.name = "idivq-to-divl",
.description = "Use 32-bit divide for positive values less than 2^32",
.llvm_name = "idivq-to-divl",
.subfeatures = &[_]*const Feature {
},
};
@ -803,7 +707,6 @@ pub const feature_idivqToDivl = Feature{
pub const feature_slowIncdec = Feature{
.name = "slow-incdec",
.description = "INC and DEC instructions are slower than ADD and SUB",
.llvm_name = "slow-incdec",
.subfeatures = &[_]*const Feature {
},
};
@ -811,7 +714,6 @@ pub const feature_slowIncdec = Feature{
pub const feature_slowLea = Feature{
.name = "slow-lea",
.description = "LEA instruction with certain arguments is slow",
.llvm_name = "slow-lea",
.subfeatures = &[_]*const Feature {
},
};
@ -819,7 +721,6 @@ pub const feature_slowLea = Feature{
pub const feature_slowPmaddwd = Feature{
.name = "slow-pmaddwd",
.description = "PMADDWD is slower than PMULLD",
.llvm_name = "slow-pmaddwd",
.subfeatures = &[_]*const Feature {
},
};
@ -827,7 +728,6 @@ pub const feature_slowPmaddwd = Feature{
pub const feature_slowPmulld = Feature{
.name = "slow-pmulld",
.description = "PMULLD instruction is slow",
.llvm_name = "slow-pmulld",
.subfeatures = &[_]*const Feature {
},
};
@ -835,7 +735,6 @@ pub const feature_slowPmulld = Feature{
pub const feature_slowShld = Feature{
.name = "slow-shld",
.description = "SHLD instruction is slow",
.llvm_name = "slow-shld",
.subfeatures = &[_]*const Feature {
},
};
@ -843,7 +742,6 @@ pub const feature_slowShld = Feature{
pub const feature_slowTwoMemOps = Feature{
.name = "slow-two-mem-ops",
.description = "Two memory operand instructions are slow",
.llvm_name = "slow-two-mem-ops",
.subfeatures = &[_]*const Feature {
},
};
@ -851,7 +749,6 @@ pub const feature_slowTwoMemOps = Feature{
pub const feature_slowUnalignedMem16 = Feature{
.name = "slow-unaligned-mem-16",
.description = "Slow unaligned 16-byte memory access",
.llvm_name = "slow-unaligned-mem-16",
.subfeatures = &[_]*const Feature {
},
};
@ -859,7 +756,6 @@ pub const feature_slowUnalignedMem16 = Feature{
pub const feature_slowUnalignedMem32 = Feature{
.name = "slow-unaligned-mem-32",
.description = "Slow unaligned 32-byte memory access",
.llvm_name = "slow-unaligned-mem-32",
.subfeatures = &[_]*const Feature {
},
};
@ -867,7 +763,6 @@ pub const feature_slowUnalignedMem32 = Feature{
pub const feature_softFloat = Feature{
.name = "soft-float",
.description = "Use software floating point features",
.llvm_name = "soft-float",
.subfeatures = &[_]*const Feature {
},
};
@ -875,7 +770,6 @@ pub const feature_softFloat = Feature{
pub const feature_tbm = Feature{
.name = "tbm",
.description = "Enable TBM instructions",
.llvm_name = "tbm",
.subfeatures = &[_]*const Feature {
},
};
@ -883,7 +777,6 @@ pub const feature_tbm = Feature{
pub const feature_useAa = Feature{
.name = "use-aa",
.description = "Use alias analysis during codegen",
.llvm_name = "use-aa",
.subfeatures = &[_]*const Feature {
},
};
@ -891,7 +784,6 @@ pub const feature_useAa = Feature{
pub const feature_vaes = Feature{
.name = "vaes",
.description = "Promote selected AES instructions to AVX512/AVX registers",
.llvm_name = "vaes",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -900,7 +792,6 @@ pub const feature_vaes = Feature{
pub const feature_avx512vbmi = Feature{
.name = "avx512vbmi",
.description = "Enable AVX-512 Vector Byte Manipulation Instructions",
.llvm_name = "avx512vbmi",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -909,7 +800,6 @@ pub const feature_avx512vbmi = Feature{
pub const feature_avx512vbmi2 = Feature{
.name = "avx512vbmi2",
.description = "Enable AVX-512 further Vector Byte Manipulation Instructions",
.llvm_name = "avx512vbmi2",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -918,7 +808,6 @@ pub const feature_avx512vbmi2 = Feature{
pub const feature_avx512vl = Feature{
.name = "avx512vl",
.description = "Enable AVX-512 Vector Length eXtensions",
.llvm_name = "avx512vl",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -927,7 +816,6 @@ pub const feature_avx512vl = Feature{
pub const feature_avx512vnni = Feature{
.name = "avx512vnni",
.description = "Enable AVX-512 Vector Neural Network Instructions",
.llvm_name = "avx512vnni",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -936,7 +824,6 @@ pub const feature_avx512vnni = Feature{
pub const feature_avx512vp2intersect = Feature{
.name = "avx512vp2intersect",
.description = "Enable AVX-512 vp2intersect",
.llvm_name = "avx512vp2intersect",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -945,7 +832,6 @@ pub const feature_avx512vp2intersect = Feature{
pub const feature_vpclmulqdq = Feature{
.name = "vpclmulqdq",
.description = "Enable vpclmulqdq instructions",
.llvm_name = "vpclmulqdq",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -954,7 +840,6 @@ pub const feature_vpclmulqdq = Feature{
pub const feature_avx512vpopcntdq = Feature{
.name = "avx512vpopcntdq",
.description = "Enable AVX-512 Population Count Instructions",
.llvm_name = "avx512vpopcntdq",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -963,7 +848,6 @@ pub const feature_avx512vpopcntdq = Feature{
pub const feature_waitpkg = Feature{
.name = "waitpkg",
.description = "Wait and pause enhancements",
.llvm_name = "waitpkg",
.subfeatures = &[_]*const Feature {
},
};
@ -971,7 +855,6 @@ pub const feature_waitpkg = Feature{
pub const feature_wbnoinvd = Feature{
.name = "wbnoinvd",
.description = "Write Back No Invalidate",
.llvm_name = "wbnoinvd",
.subfeatures = &[_]*const Feature {
},
};
@ -979,7 +862,6 @@ pub const feature_wbnoinvd = Feature{
pub const feature_x87 = Feature{
.name = "x87",
.description = "Enable X87 float instructions",
.llvm_name = "x87",
.subfeatures = &[_]*const Feature {
},
};
@ -987,7 +869,6 @@ pub const feature_x87 = Feature{
pub const feature_xop = Feature{
.name = "xop",
.description = "Enable XOP instructions",
.llvm_name = "xop",
.subfeatures = &[_]*const Feature {
&feature_sse,
},
@ -996,7 +877,6 @@ pub const feature_xop = Feature{
pub const feature_xsave = Feature{
.name = "xsave",
.description = "Support xsave instructions",
.llvm_name = "xsave",
.subfeatures = &[_]*const Feature {
},
};
@ -1004,7 +884,6 @@ pub const feature_xsave = Feature{
pub const feature_xsavec = Feature{
.name = "xsavec",
.description = "Support xsavec instructions",
.llvm_name = "xsavec",
.subfeatures = &[_]*const Feature {
},
};
@ -1012,7 +891,6 @@ pub const feature_xsavec = Feature{
pub const feature_xsaveopt = Feature{
.name = "xsaveopt",
.description = "Support xsaveopt instructions",
.llvm_name = "xsaveopt",
.subfeatures = &[_]*const Feature {
},
};
@ -1020,7 +898,6 @@ pub const feature_xsaveopt = Feature{
pub const feature_xsaves = Feature{
.name = "xsaves",
.description = "Support xsaves instructions",
.llvm_name = "xsaves",
.subfeatures = &[_]*const Feature {
},
};
@ -1028,7 +905,6 @@ pub const feature_xsaves = Feature{
pub const feature_bitMode16 = Feature{
.name = "16bit-mode",
.description = "16-bit mode (i8086)",
.llvm_name = "16bit-mode",
.subfeatures = &[_]*const Feature {
},
};
@ -1036,7 +912,6 @@ pub const feature_bitMode16 = Feature{
pub const feature_bitMode32 = Feature{
.name = "32bit-mode",
.description = "32-bit mode (80386)",
.llvm_name = "32bit-mode",
.subfeatures = &[_]*const Feature {
},
};
@ -1044,7 +919,6 @@ pub const feature_bitMode32 = Feature{
pub const feature_bitMode64 = Feature{
.name = "64bit-mode",
.description = "64-bit mode (x86_64)",
.llvm_name = "64bit-mode",
.subfeatures = &[_]*const Feature {
},
};