diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-01-21 19:40:44 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-01-21 19:40:44 -0500 |
| commit | 92559cd02cbf6497b99eb5193c9094e6d92c214e (patch) | |
| tree | 13ff36b93f06555fd31803750debbd03d10f4b47 /lib/std/target/powerpc.zig | |
| parent | 15d5cab569a5ffc6495d606f460264429043aabf (diff) | |
| download | zig-92559cd02cbf6497b99eb5193c9094e6d92c214e.tar.gz zig-92559cd02cbf6497b99eb5193c9094e6d92c214e.zip | |
hit a comptime limitation with computing dense sets
Diffstat (limited to 'lib/std/target/powerpc.zig')
| -rw-r--r-- | lib/std/target/powerpc.zig | 286 |
1 files changed, 95 insertions, 191 deletions
diff --git a/lib/std/target/powerpc.zig b/lib/std/target/powerpc.zig index 3dfc2d7bea..981c595c93 100644 --- a/lib/std/target/powerpc.zig +++ b/lib/std/target/powerpc.zig @@ -59,417 +59,321 @@ pub usingnamespace Cpu.Feature.feature_set_fns(Feature); pub const all_features = blk: { const len = @typeInfo(Feature).Enum.fields.len; - std.debug.assert(len <= Cpu.Feature.Set.bit_count); + std.debug.assert(len <= Cpu.Feature.Set.needed_bit_count); var result: [len]Cpu.Feature = undefined; result[@enumToInt(Feature.@"64bit")] = .{ - .index = @enumToInt(Feature.@"64bit"), - .name = @tagName(Feature.@"64bit"), .llvm_name = "64bit", .description = "Enable 64-bit instructions", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.@"64bitregs")] = .{ - .index = @enumToInt(Feature.@"64bitregs"), - .name = @tagName(Feature.@"64bitregs"), .llvm_name = "64bitregs", .description = "Enable 64-bit registers usage for ppc32 [beta]", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.altivec)] = .{ - .index = @enumToInt(Feature.altivec), - .name = @tagName(Feature.altivec), .llvm_name = "altivec", .description = "Enable Altivec instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.booke)] = .{ - .index = @enumToInt(Feature.booke), - .name = @tagName(Feature.booke), .llvm_name = "booke", .description = "Enable Book E instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .icbt, }), }; result[@enumToInt(Feature.bpermd)] = .{ - .index = @enumToInt(Feature.bpermd), - .name = @tagName(Feature.bpermd), .llvm_name = "bpermd", .description = "Enable the bpermd instruction", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.cmpb)] = .{ - .index = @enumToInt(Feature.cmpb), - .name = @tagName(Feature.cmpb), .llvm_name = "cmpb", .description = "Enable the cmpb instruction", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.crbits)] = .{ - .index = @enumToInt(Feature.crbits), - .name = @tagName(Feature.crbits), .llvm_name = "crbits", .description = "Use condition-register bits individually", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.crypto)] = .{ - .index = @enumToInt(Feature.crypto), - .name = @tagName(Feature.crypto), .llvm_name = "crypto", .description = "Enable POWER8 Crypto instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .power8_altivec, }), }; result[@enumToInt(Feature.direct_move)] = .{ - .index = @enumToInt(Feature.direct_move), - .name = @tagName(Feature.direct_move), .llvm_name = "direct-move", .description = "Enable Power8 direct move instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .vsx, }), }; result[@enumToInt(Feature.e500)] = .{ - .index = @enumToInt(Feature.e500), - .name = @tagName(Feature.e500), .llvm_name = "e500", .description = "Enable E500/E500mc instructions", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.extdiv)] = .{ - .index = @enumToInt(Feature.extdiv), - .name = @tagName(Feature.extdiv), .llvm_name = "extdiv", .description = "Enable extended divide instructions", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.fcpsgn)] = .{ - .index = @enumToInt(Feature.fcpsgn), - .name = @tagName(Feature.fcpsgn), .llvm_name = "fcpsgn", .description = "Enable the fcpsgn instruction", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.float128)] = .{ - .index = @enumToInt(Feature.float128), - .name = @tagName(Feature.float128), .llvm_name = "float128", .description = "Enable the __float128 data type for IEEE-754R Binary128.", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .vsx, }), }; result[@enumToInt(Feature.fpcvt)] = .{ - .index = @enumToInt(Feature.fpcvt), - .name = @tagName(Feature.fpcvt), .llvm_name = "fpcvt", .description = "Enable fc[ft]* (unsigned and single-precision) and lfiwzx instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.fprnd)] = .{ - .index = @enumToInt(Feature.fprnd), - .name = @tagName(Feature.fprnd), .llvm_name = "fprnd", .description = "Enable the fri[mnpz] instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.fpu)] = .{ - .index = @enumToInt(Feature.fpu), - .name = @tagName(Feature.fpu), .llvm_name = "fpu", .description = "Enable classic FPU instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .hard_float, }), }; result[@enumToInt(Feature.fre)] = .{ - .index = @enumToInt(Feature.fre), - .name = @tagName(Feature.fre), .llvm_name = "fre", .description = "Enable the fre instruction", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.fres)] = .{ - .index = @enumToInt(Feature.fres), - .name = @tagName(Feature.fres), .llvm_name = "fres", .description = "Enable the fres instruction", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.frsqrte)] = .{ - .index = @enumToInt(Feature.frsqrte), - .name = @tagName(Feature.frsqrte), .llvm_name = "frsqrte", .description = "Enable the frsqrte instruction", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.frsqrtes)] = .{ - .index = @enumToInt(Feature.frsqrtes), - .name = @tagName(Feature.frsqrtes), .llvm_name = "frsqrtes", .description = "Enable the frsqrtes instruction", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.fsqrt)] = .{ - .index = @enumToInt(Feature.fsqrt), - .name = @tagName(Feature.fsqrt), .llvm_name = "fsqrt", .description = "Enable the fsqrt instruction", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.hard_float)] = .{ - .index = @enumToInt(Feature.hard_float), - .name = @tagName(Feature.hard_float), .llvm_name = "hard-float", .description = "Enable floating-point instructions", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.htm)] = .{ - .index = @enumToInt(Feature.htm), - .name = @tagName(Feature.htm), .llvm_name = "htm", .description = "Enable Hardware Transactional Memory instructions", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.icbt)] = .{ - .index = @enumToInt(Feature.icbt), - .name = @tagName(Feature.icbt), .llvm_name = "icbt", .description = "Enable icbt instruction", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.invariant_function_descriptors)] = .{ - .index = @enumToInt(Feature.invariant_function_descriptors), - .name = @tagName(Feature.invariant_function_descriptors), .llvm_name = "invariant-function-descriptors", .description = "Assume function descriptors are invariant", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.isa_v30_instructions)] = .{ - .index = @enumToInt(Feature.isa_v30_instructions), - .name = @tagName(Feature.isa_v30_instructions), .llvm_name = "isa-v30-instructions", .description = "Enable instructions added in ISA 3.0.", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.isel)] = .{ - .index = @enumToInt(Feature.isel), - .name = @tagName(Feature.isel), .llvm_name = "isel", .description = "Enable the isel instruction", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.ldbrx)] = .{ - .index = @enumToInt(Feature.ldbrx), - .name = @tagName(Feature.ldbrx), .llvm_name = "ldbrx", .description = "Enable the ldbrx instruction", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.lfiwax)] = .{ - .index = @enumToInt(Feature.lfiwax), - .name = @tagName(Feature.lfiwax), .llvm_name = "lfiwax", .description = "Enable the lfiwax instruction", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.longcall)] = .{ - .index = @enumToInt(Feature.longcall), - .name = @tagName(Feature.longcall), .llvm_name = "longcall", .description = "Always use indirect calls", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.mfocrf)] = .{ - .index = @enumToInt(Feature.mfocrf), - .name = @tagName(Feature.mfocrf), .llvm_name = "mfocrf", .description = "Enable the MFOCRF instruction", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.msync)] = .{ - .index = @enumToInt(Feature.msync), - .name = @tagName(Feature.msync), .llvm_name = "msync", .description = "Has only the msync instruction instead of sync", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .booke, }), }; result[@enumToInt(Feature.partword_atomics)] = .{ - .index = @enumToInt(Feature.partword_atomics), - .name = @tagName(Feature.partword_atomics), .llvm_name = "partword-atomics", .description = "Enable l[bh]arx and st[bh]cx.", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.popcntd)] = .{ - .index = @enumToInt(Feature.popcntd), - .name = @tagName(Feature.popcntd), .llvm_name = "popcntd", .description = "Enable the popcnt[dw] instructions", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.power8_altivec)] = .{ - .index = @enumToInt(Feature.power8_altivec), - .name = @tagName(Feature.power8_altivec), .llvm_name = "power8-altivec", .description = "Enable POWER8 Altivec instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .altivec, }), }; result[@enumToInt(Feature.power8_vector)] = .{ - .index = @enumToInt(Feature.power8_vector), - .name = @tagName(Feature.power8_vector), .llvm_name = "power8-vector", .description = "Enable POWER8 vector instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .power8_altivec, .vsx, }), }; result[@enumToInt(Feature.power9_altivec)] = .{ - .index = @enumToInt(Feature.power9_altivec), - .name = @tagName(Feature.power9_altivec), .llvm_name = "power9-altivec", .description = "Enable POWER9 Altivec instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .isa_v30_instructions, .power8_altivec, }), }; result[@enumToInt(Feature.power9_vector)] = .{ - .index = @enumToInt(Feature.power9_vector), - .name = @tagName(Feature.power9_vector), .llvm_name = "power9-vector", .description = "Enable POWER9 vector instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .isa_v30_instructions, .power8_vector, .power9_altivec, }), }; result[@enumToInt(Feature.ppc_postra_sched)] = .{ - .index = @enumToInt(Feature.ppc_postra_sched), - .name = @tagName(Feature.ppc_postra_sched), .llvm_name = "ppc-postra-sched", .description = "Use PowerPC post-RA scheduling strategy", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.ppc_prera_sched)] = .{ - .index = @enumToInt(Feature.ppc_prera_sched), - .name = @tagName(Feature.ppc_prera_sched), .llvm_name = "ppc-prera-sched", .description = "Use PowerPC pre-RA scheduling strategy", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.ppc4xx)] = .{ - .index = @enumToInt(Feature.ppc4xx), - .name = @tagName(Feature.ppc4xx), .llvm_name = "ppc4xx", .description = "Enable PPC 4xx instructions", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.ppc6xx)] = .{ - .index = @enumToInt(Feature.ppc6xx), - .name = @tagName(Feature.ppc6xx), .llvm_name = "ppc6xx", .description = "Enable PPC 6xx instructions", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.qpx)] = .{ - .index = @enumToInt(Feature.qpx), - .name = @tagName(Feature.qpx), .llvm_name = "qpx", .description = "Enable QPX instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.recipprec)] = .{ - .index = @enumToInt(Feature.recipprec), - .name = @tagName(Feature.recipprec), .llvm_name = "recipprec", .description = "Assume higher precision reciprocal estimates", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.secure_plt)] = .{ - .index = @enumToInt(Feature.secure_plt), - .name = @tagName(Feature.secure_plt), .llvm_name = "secure-plt", .description = "Enable secure plt mode", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.slow_popcntd)] = .{ - .index = @enumToInt(Feature.slow_popcntd), - .name = @tagName(Feature.slow_popcntd), .llvm_name = "slow-popcntd", .description = "Has slow popcnt[dw] instructions", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.spe)] = .{ - .index = @enumToInt(Feature.spe), - .name = @tagName(Feature.spe), .llvm_name = "spe", .description = "Enable SPE instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .hard_float, }), }; result[@enumToInt(Feature.stfiwx)] = .{ - .index = @enumToInt(Feature.stfiwx), - .name = @tagName(Feature.stfiwx), .llvm_name = "stfiwx", .description = "Enable the stfiwx instruction", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .fpu, }), }; result[@enumToInt(Feature.two_const_nr)] = .{ - .index = @enumToInt(Feature.two_const_nr), - .name = @tagName(Feature.two_const_nr), .llvm_name = "two-const-nr", .description = "Requires two constant Newton-Raphson computation", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.vectors_use_two_units)] = .{ - .index = @enumToInt(Feature.vectors_use_two_units), - .name = @tagName(Feature.vectors_use_two_units), .llvm_name = "vectors-use-two-units", .description = "Vectors use two units", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = sparseFeatureSet(&[_]Feature{}), }; result[@enumToInt(Feature.vsx)] = .{ - .index = @enumToInt(Feature.vsx), - .name = @tagName(Feature.vsx), .llvm_name = "vsx", .description = "Enable VSX instructions", - .dependencies = featureSet(&[_]Feature{ + .dependencies = sparseFeatureSet(&[_]Feature{ .altivec, }), }; + const ti = @typeInfo(Feature); + for (result) |*elem, i| { + elem.index = i; + elem.name = ti.Enum.fields[i].name; + elem.dependencies.initAsDependencies(i, &result); + } break :blk result; }; @@ -477,7 +381,7 @@ pub const cpu = struct { pub const @"440" = Cpu{ .name = "440", .llvm_name = "440", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .booke, .fres, .frsqrte, @@ -489,7 +393,7 @@ pub const cpu = struct { pub const @"450" = Cpu{ .name = "450", .llvm_name = "450", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .booke, .fres, .frsqrte, @@ -501,21 +405,21 @@ pub const cpu = struct { pub const @"601" = Cpu{ .name = "601", .llvm_name = "601", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .fpu, }), }; pub const @"602" = Cpu{ .name = "602", .llvm_name = "602", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .fpu, }), }; pub const @"603" = Cpu{ .name = "603", .llvm_name = "603", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .fres, .frsqrte, }), @@ -523,7 +427,7 @@ pub const cpu = struct { pub const @"603e" = Cpu{ .name = "603e", .llvm_name = "603e", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .fres, .frsqrte, }), @@ -531,7 +435,7 @@ pub const cpu = struct { pub const @"603ev" = Cpu{ .name = "603ev", .llvm_name = "603ev", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .fres, .frsqrte, }), @@ -539,7 +443,7 @@ pub const cpu = struct { pub const @"604" = Cpu{ .name = "604", .llvm_name = "604", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .fres, .frsqrte, }), @@ -547,7 +451,7 @@ pub const cpu = struct { pub const @"604e" = Cpu{ .name = "604e", .llvm_name = "604e", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .fres, .frsqrte, }), @@ -555,7 +459,7 @@ pub const cpu = struct { pub const @"620" = Cpu{ .name = "620", .llvm_name = "620", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .fres, .frsqrte, }), @@ -563,7 +467,7 @@ pub const cpu = struct { pub const @"7400" = Cpu{ .name = "7400", .llvm_name = "7400", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .altivec, .fres, .frsqrte, @@ -572,7 +476,7 @@ pub const cpu = struct { pub const @"7450" = Cpu{ .name = "7450", .llvm_name = "7450", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .altivec, .fres, .frsqrte, @@ -581,7 +485,7 @@ pub const cpu = struct { pub const @"750" = Cpu{ .name = "750", .llvm_name = "750", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .fres, .frsqrte, }), @@ -589,7 +493,7 @@ pub const cpu = struct { pub const @"970" = Cpu{ .name = "970", .llvm_name = "970", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .fres, @@ -602,7 +506,7 @@ pub const cpu = struct { pub const a2 = Cpu{ .name = "a2", .llvm_name = "a2", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .booke, .cmpb, @@ -627,7 +531,7 @@ pub const cpu = struct { pub const a2q = Cpu{ .name = "a2q", .llvm_name = "a2q", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .booke, .cmpb, @@ -653,7 +557,7 @@ pub const cpu = struct { pub const e500 = Cpu{ .name = "e500", .llvm_name = "e500", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .booke, .icbt, .isel, @@ -662,7 +566,7 @@ pub const cpu = struct { pub const e500mc = Cpu{ .name = "e500mc", .llvm_name = "e500mc", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .booke, .icbt, .isel, @@ -672,7 +576,7 @@ pub const cpu = struct { pub const e5500 = Cpu{ .name = "e5500", .llvm_name = "e5500", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .booke, .icbt, @@ -684,7 +588,7 @@ pub const cpu = struct { pub const g3 = Cpu{ .name = "g3", .llvm_name = "g3", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .fres, .frsqrte, }), @@ -692,7 +596,7 @@ pub const cpu = struct { pub const g4 = Cpu{ .name = "g4", .llvm_name = "g4", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .altivec, .fres, .frsqrte, @@ -701,7 +605,7 @@ pub const cpu = struct { pub const @"g4+" = Cpu{ .name = "g4+", .llvm_name = "g4+", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .altivec, .fres, .frsqrte, @@ -710,7 +614,7 @@ pub const cpu = struct { pub const g5 = Cpu{ .name = "g5", .llvm_name = "g5", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .fres, @@ -723,28 +627,28 @@ pub const cpu = struct { pub const generic = Cpu{ .name = "generic", .llvm_name = "generic", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .hard_float, }), }; pub const ppc = Cpu{ .name = "ppc", .llvm_name = "ppc", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .hard_float, }), }; pub const ppc32 = Cpu{ .name = "ppc32", .llvm_name = "ppc32", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .hard_float, }), }; pub const ppc64 = Cpu{ .name = "ppc64", .llvm_name = "ppc64", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .fres, @@ -757,7 +661,7 @@ pub const cpu = struct { pub const ppc64le = Cpu{ .name = "ppc64le", .llvm_name = "ppc64le", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .bpermd, @@ -792,7 +696,7 @@ pub const cpu = struct { pub const pwr3 = Cpu{ .name = "pwr3", .llvm_name = "pwr3", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .fres, @@ -804,7 +708,7 @@ pub const cpu = struct { pub const pwr4 = Cpu{ .name = "pwr4", .llvm_name = "pwr4", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .fres, @@ -817,7 +721,7 @@ pub const cpu = struct { pub const pwr5 = Cpu{ .name = "pwr5", .llvm_name = "pwr5", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .fre, @@ -832,7 +736,7 @@ pub const cpu = struct { pub const pwr5x = Cpu{ .name = "pwr5x", .llvm_name = "pwr5x", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .fprnd, @@ -848,7 +752,7 @@ pub const cpu = struct { pub const pwr6 = Cpu{ .name = "pwr6", .llvm_name = "pwr6", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .cmpb, @@ -868,7 +772,7 @@ pub const cpu = struct { pub const pwr6x = Cpu{ .name = "pwr6x", .llvm_name = "pwr6x", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .cmpb, @@ -888,7 +792,7 @@ pub const cpu = struct { pub const pwr7 = Cpu{ .name = "pwr7", .llvm_name = "pwr7", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .bpermd, @@ -916,7 +820,7 @@ pub const cpu = struct { pub const pwr8 = Cpu{ .name = "pwr8", .llvm_name = "pwr8", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .bpermd, @@ -951,7 +855,7 @@ pub const cpu = struct { pub const pwr9 = Cpu{ .name = "pwr9", .llvm_name = "pwr9", - .features = featureSet(&[_]Feature{ + .features = featureSet(&all_features, &[_]Feature{ .@"64bit", .altivec, .bpermd, |
