struct cpu [src]

Members

Source

pub const cpu = struct { pub const arm1020e: CpuModel = .{ .name = "arm1020e", .llvm_name = "arm1020e", .features = featureSet(&[_]Feature{ .v5te, }), }; pub const arm1020t: CpuModel = .{ .name = "arm1020t", .llvm_name = "arm1020t", .features = featureSet(&[_]Feature{ .v5t, }), }; pub const arm1022e: CpuModel = .{ .name = "arm1022e", .llvm_name = "arm1022e", .features = featureSet(&[_]Feature{ .v5te, }), }; pub const arm10e: CpuModel = .{ .name = "arm10e", .llvm_name = "arm10e", .features = featureSet(&[_]Feature{ .v5te, }), }; pub const arm10tdmi: CpuModel = .{ .name = "arm10tdmi", .llvm_name = "arm10tdmi", .features = featureSet(&[_]Feature{ .v5t, }), }; pub const arm1136j_s: CpuModel = .{ .name = "arm1136j_s", .llvm_name = "arm1136j-s", .features = featureSet(&[_]Feature{ .v6, }), }; pub const arm1136jf_s: CpuModel = .{ .name = "arm1136jf_s", .llvm_name = "arm1136jf-s", .features = featureSet(&[_]Feature{ .slowfpvmlx, .v6, .vfp2, }), }; pub const arm1156t2_s: CpuModel = .{ .name = "arm1156t2_s", .llvm_name = "arm1156t2-s", .features = featureSet(&[_]Feature{ .v6t2, }), }; pub const arm1156t2f_s: CpuModel = .{ .name = "arm1156t2f_s", .llvm_name = "arm1156t2f-s", .features = featureSet(&[_]Feature{ .slowfpvmlx, .v6t2, .vfp2, }), }; pub const arm1176jz_s: CpuModel = .{ .name = "arm1176jz_s", .llvm_name = "arm1176jz-s", .features = featureSet(&[_]Feature{ .v6kz, }), }; pub const arm1176jzf_s: CpuModel = .{ .name = "arm1176jzf_s", .llvm_name = "arm1176jzf-s", .features = featureSet(&[_]Feature{ .slowfpvmlx, .v6kz, .vfp2, }), }; pub const arm710t: CpuModel = .{ .name = "arm710t", .llvm_name = "arm710t", .features = featureSet(&[_]Feature{ .v4t, }), }; pub const arm720t: CpuModel = .{ .name = "arm720t", .llvm_name = "arm720t", .features = featureSet(&[_]Feature{ .v4t, }), }; pub const arm7tdmi: CpuModel = .{ .name = "arm7tdmi", .llvm_name = "arm7tdmi", .features = featureSet(&[_]Feature{ .v4t, }), }; pub const arm7tdmi_s: CpuModel = .{ .name = "arm7tdmi_s", .llvm_name = "arm7tdmi-s", .features = featureSet(&[_]Feature{ .v4t, }), }; pub const arm8: CpuModel = .{ .name = "arm8", .llvm_name = "arm8", .features = featureSet(&[_]Feature{ .v4, }), }; pub const arm810: CpuModel = .{ .name = "arm810", .llvm_name = "arm810", .features = featureSet(&[_]Feature{ .v4, }), }; pub const arm9: CpuModel = .{ .name = "arm9", .llvm_name = "arm9", .features = featureSet(&[_]Feature{ .v4t, }), }; pub const arm920: CpuModel = .{ .name = "arm920", .llvm_name = "arm920", .features = featureSet(&[_]Feature{ .v4t, }), }; pub const arm920t: CpuModel = .{ .name = "arm920t", .llvm_name = "arm920t", .features = featureSet(&[_]Feature{ .v4t, }), }; pub const arm922t: CpuModel = .{ .name = "arm922t", .llvm_name = "arm922t", .features = featureSet(&[_]Feature{ .v4t, }), }; pub const arm926ej_s: CpuModel = .{ .name = "arm926ej_s", .llvm_name = "arm926ej-s", .features = featureSet(&[_]Feature{ .v5te, }), }; pub const arm940t: CpuModel = .{ .name = "arm940t", .llvm_name = "arm940t", .features = featureSet(&[_]Feature{ .v4t, }), }; pub const arm946e_s: CpuModel = .{ .name = "arm946e_s", .llvm_name = "arm946e-s", .features = featureSet(&[_]Feature{ .v5te, }), }; pub const arm966e_s: CpuModel = .{ .name = "arm966e_s", .llvm_name = "arm966e-s", .features = featureSet(&[_]Feature{ .v5te, }), }; pub const arm968e_s: CpuModel = .{ .name = "arm968e_s", .llvm_name = "arm968e-s", .features = featureSet(&[_]Feature{ .v5te, }), }; pub const arm9e: CpuModel = .{ .name = "arm9e", .llvm_name = "arm9e", .features = featureSet(&[_]Feature{ .v5te, }), }; pub const arm9tdmi: CpuModel = .{ .name = "arm9tdmi", .llvm_name = "arm9tdmi", .features = featureSet(&[_]Feature{ .v4t, }), }; pub const baseline: CpuModel = .{ .name = "baseline", .llvm_name = "generic", .features = featureSet(&[_]Feature{ .v7a, }), }; pub const cortex_a12: CpuModel = .{ .name = "cortex_a12", .llvm_name = "cortex-a12", .features = featureSet(&[_]Feature{ .avoid_partial_cpsr, .mp, .ret_addr_stack, .trustzone, .v7a, .vfp4, .virtualization, .vmlx_forwarding, }), }; pub const cortex_a15: CpuModel = .{ .name = "cortex_a15", .llvm_name = "cortex-a15", .features = featureSet(&[_]Feature{ .avoid_partial_cpsr, .mp, .muxed_units, .ret_addr_stack, .splat_vfp_neon, .trustzone, .v7a, .vfp4, .virtualization, .vldn_align, }), }; pub const cortex_a17: CpuModel = .{ .name = "cortex_a17", .llvm_name = "cortex-a17", .features = featureSet(&[_]Feature{ .avoid_partial_cpsr, .mp, .ret_addr_stack, .trustzone, .v7a, .vfp4, .virtualization, .vmlx_forwarding, }), }; pub const cortex_a32: CpuModel = .{ .name = "cortex_a32", .llvm_name = "cortex-a32", .features = featureSet(&[_]Feature{ .v8a, }), }; pub const cortex_a35: CpuModel = .{ .name = "cortex_a35", .llvm_name = "cortex-a35", .features = featureSet(&[_]Feature{ .v8a, }), }; pub const cortex_a5: CpuModel = .{ .name = "cortex_a5", .llvm_name = "cortex-a5", .features = featureSet(&[_]Feature{ .mp, .ret_addr_stack, .slow_fp_brcc, .slowfpvfmx, .slowfpvmlx, .trustzone, .v7a, .vfp4, .vmlx_forwarding, }), }; pub const cortex_a53: CpuModel = .{ .name = "cortex_a53", .llvm_name = "cortex-a53", .features = featureSet(&[_]Feature{ .fpao, .v8a, }), }; pub const cortex_a55: CpuModel = .{ .name = "cortex_a55", .llvm_name = "cortex-a55", .features = featureSet(&[_]Feature{ .dotprod, .v8_2a, }), }; pub const cortex_a57: CpuModel = .{ .name = "cortex_a57", .llvm_name = "cortex-a57", .features = featureSet(&[_]Feature{ .avoid_partial_cpsr, .cheap_predicable_cpsr, .fix_cortex_a57_aes_1742098, .fpao, .v8a, }), }; pub const cortex_a7: CpuModel = .{ .name = "cortex_a7", .llvm_name = "cortex-a7", .features = featureSet(&[_]Feature{ .mp, .ret_addr_stack, .slow_fp_brcc, .slowfpvfmx, .slowfpvmlx, .trustzone, .v7a, .vfp4, .virtualization, .vmlx_forwarding, .vmlx_hazards, }), }; pub const cortex_a710: CpuModel = .{ .name = "cortex_a710", .llvm_name = "cortex-a710", .features = featureSet(&[_]Feature{ .bf16, .fp16fml, .i8mm, .v9a, }), }; pub const cortex_a72: CpuModel = .{ .name = "cortex_a72", .llvm_name = "cortex-a72", .features = featureSet(&[_]Feature{ .fix_cortex_a57_aes_1742098, .v8a, }), }; pub const cortex_a73: CpuModel = .{ .name = "cortex_a73", .llvm_name = "cortex-a73", .features = featureSet(&[_]Feature{ .v8a, }), }; pub const cortex_a75: CpuModel = .{ .name = "cortex_a75", .llvm_name = "cortex-a75", .features = featureSet(&[_]Feature{ .dotprod, .v8_2a, }), }; pub const cortex_a76: CpuModel = .{ .name = "cortex_a76", .llvm_name = "cortex-a76", .features = featureSet(&[_]Feature{ .dotprod, .fullfp16, .v8_2a, }), }; pub const cortex_a76ae: CpuModel = .{ .name = "cortex_a76ae", .llvm_name = "cortex-a76ae", .features = featureSet(&[_]Feature{ .dotprod, .fullfp16, .v8_2a, }), }; pub const cortex_a77: CpuModel = .{ .name = "cortex_a77", .llvm_name = "cortex-a77", .features = featureSet(&[_]Feature{ .dotprod, .fullfp16, .v8_2a, }), }; pub const cortex_a78: CpuModel = .{ .name = "cortex_a78", .llvm_name = "cortex-a78", .features = featureSet(&[_]Feature{ .dotprod, .fullfp16, .v8_2a, }), }; pub const cortex_a78ae: CpuModel = .{ .name = "cortex_a78ae", .llvm_name = "cortex-a78ae", .features = featureSet(&[_]Feature{ .dotprod, .fullfp16, .v8_2a, }), }; pub const cortex_a78c: CpuModel = .{ .name = "cortex_a78c", .llvm_name = "cortex-a78c", .features = featureSet(&[_]Feature{ .dotprod, .fullfp16, .v8_2a, }), }; pub const cortex_a8: CpuModel = .{ .name = "cortex_a8", .llvm_name = "cortex-a8", .features = featureSet(&[_]Feature{ .nonpipelined_vfp, .ret_addr_stack, .slow_fp_brcc, .slowfpvfmx, .slowfpvmlx, .trustzone, .v7a, .vmlx_forwarding, .vmlx_hazards, }), }; pub const cortex_a9: CpuModel = .{ .name = "cortex_a9", .llvm_name = "cortex-a9", .features = featureSet(&[_]Feature{ .avoid_partial_cpsr, .expand_fp_mlx, .fp16, .mp, .muxed_units, .neon_fpmovs, .prefer_vmovsr, .ret_addr_stack, .trustzone, .v7a, .vldn_align, .vmlx_forwarding, .vmlx_hazards, }), }; pub const cortex_m0: CpuModel = .{ .name = "cortex_m0", .llvm_name = "cortex-m0", .features = featureSet(&[_]Feature{ .no_branch_predictor, .v6m, }), }; pub const cortex_m0plus: CpuModel = .{ .name = "cortex_m0plus", .llvm_name = "cortex-m0plus", .features = featureSet(&[_]Feature{ .no_branch_predictor, .v6m, }), }; pub const cortex_m1: CpuModel = .{ .name = "cortex_m1", .llvm_name = "cortex-m1", .features = featureSet(&[_]Feature{ .no_branch_predictor, .v6m, }), }; pub const cortex_m23: CpuModel = .{ .name = "cortex_m23", .llvm_name = "cortex-m23", .features = featureSet(&[_]Feature{ .no_branch_predictor, .no_movt, .v8m, }), }; pub const cortex_m3: CpuModel = .{ .name = "cortex_m3", .llvm_name = "cortex-m3", .features = featureSet(&[_]Feature{ .loop_align, .no_branch_predictor, .use_misched, .v7m, }), }; pub const cortex_m33: CpuModel = .{ .name = "cortex_m33", .llvm_name = "cortex-m33", .features = featureSet(&[_]Feature{ .fix_cmse_cve_2021_35465, .loop_align, .no_branch_predictor, .slowfpvfmx, .slowfpvmlx, .use_misched, .v8m_main, }), }; pub const cortex_m35p: CpuModel = .{ .name = "cortex_m35p", .llvm_name = "cortex-m35p", .features = featureSet(&[_]Feature{ .fix_cmse_cve_2021_35465, .loop_align, .no_branch_predictor, .slowfpvfmx, .slowfpvmlx, .use_misched, .v8m_main, }), }; pub const cortex_m4: CpuModel = .{ .name = "cortex_m4", .llvm_name = "cortex-m4", .features = featureSet(&[_]Feature{ .loop_align, .no_branch_predictor, .slowfpvfmx, .slowfpvmlx, .use_misched, .v7em, }), }; pub const cortex_m52: CpuModel = .{ .name = "cortex_m52", .llvm_name = "cortex-m52", .features = featureSet(&[_]Feature{ .fp_armv8d16, .loop_align, .mve1beat, .mve_fp, .no_branch_predictor, .pacbti, .slowfpvmlx, .use_misched, .v8_1m_main, }), }; pub const cortex_m55: CpuModel = .{ .name = "cortex_m55", .llvm_name = "cortex-m55", .features = featureSet(&[_]Feature{ .dsp, .fix_cmse_cve_2021_35465, .loop_align, .no_branch_predictor, .slowfpvmlx, .use_misched, .v8_1m_main, }), }; pub const cortex_m7: CpuModel = .{ .name = "cortex_m7", .llvm_name = "cortex-m7", .features = featureSet(&[_]Feature{ .use_mipipeliner, .use_misched, .v7em, }), }; pub const cortex_m85: CpuModel = .{ .name = "cortex_m85", .llvm_name = "cortex-m85", .features = featureSet(&[_]Feature{ .dsp, .use_misched, .v8_1m_main, }), }; pub const cortex_r4: CpuModel = .{ .name = "cortex_r4", .llvm_name = "cortex-r4", .features = featureSet(&[_]Feature{ .avoid_partial_cpsr, .ret_addr_stack, .v7r, }), }; pub const cortex_r4f: CpuModel = .{ .name = "cortex_r4f", .llvm_name = "cortex-r4f", .features = featureSet(&[_]Feature{ .avoid_partial_cpsr, .ret_addr_stack, .slow_fp_brcc, .slowfpvfmx, .slowfpvmlx, .v7r, .vfp3d16, }), }; pub const cortex_r5: CpuModel = .{ .name = "cortex_r5", .llvm_name = "cortex-r5", .features = featureSet(&[_]Feature{ .avoid_partial_cpsr, .hwdiv_arm, .ret_addr_stack, .slow_fp_brcc, .slowfpvfmx, .slowfpvmlx, .v7r, .vfp3d16, }), }; pub const cortex_r52: CpuModel = .{ .name = "cortex_r52", .llvm_name = "cortex-r52", .features = featureSet(&[_]Feature{ .fp_armv8, .fpao, .neon, .use_misched, .v8r, }), }; pub const cortex_r52plus: CpuModel = .{ .name = "cortex_r52plus", .llvm_name = "cortex-r52plus", .features = featureSet(&[_]Feature{ .fp_armv8, .fpao, .neon, .use_misched, .v8r, }), }; pub const cortex_r7: CpuModel = .{ .name = "cortex_r7", .llvm_name = "cortex-r7", .features = featureSet(&[_]Feature{ .avoid_partial_cpsr, .fp16, .hwdiv_arm, .mp, .ret_addr_stack, .slow_fp_brcc, .slowfpvfmx, .slowfpvmlx, .v7r, .vfp3d16, }), }; pub const cortex_r8: CpuModel = .{ .name = "cortex_r8", .llvm_name = "cortex-r8", .features = featureSet(&[_]Feature{ .avoid_partial_cpsr, .fp16, .hwdiv_arm, .mp, .ret_addr_stack, .slow_fp_brcc, .slowfpvfmx, .slowfpvmlx, .v7r, .vfp3d16, }), }; pub const cortex_x1: CpuModel = .{ .name = "cortex_x1", .llvm_name = "cortex-x1", .features = featureSet(&[_]Feature{ .dotprod, .fullfp16, .v8_2a, }), }; pub const cortex_x1c: CpuModel = .{ .name = "cortex_x1c", .llvm_name = "cortex-x1c", .features = featureSet(&[_]Feature{ .dotprod, .fullfp16, .v8_2a, }), }; pub const cyclone: CpuModel = .{ .name = "cyclone", .llvm_name = "cyclone", .features = featureSet(&[_]Feature{ .avoid_movs_shop, .avoid_partial_cpsr, .disable_postra_scheduler, .neonfp, .ret_addr_stack, .slowfpvfmx, .slowfpvmlx, .use_misched, .v8a, .zcz, }), }; pub const ep9312: CpuModel = .{ .name = "ep9312", .llvm_name = "ep9312", .features = featureSet(&[_]Feature{ .v4t, }), }; pub const exynos_m1: CpuModel = .{ .name = "exynos_m1", .llvm_name = null, .features = featureSet(&[_]Feature{ .expand_fp_mlx, .fuse_aes, .fuse_literals, .prof_unpr, .ret_addr_stack, .slow_fp_brcc, .slow_vdup32, .slow_vgetlni32, .slowfpvfmx, .slowfpvmlx, .splat_vfp_neon, .v8a, .wide_stride_vfp, .zcz, }), }; pub const exynos_m2: CpuModel = .{ .name = "exynos_m2", .llvm_name = null, .features = featureSet(&[_]Feature{ .expand_fp_mlx, .fuse_aes, .fuse_literals, .prof_unpr, .ret_addr_stack, .slow_fp_brcc, .slow_vdup32, .slow_vgetlni32, .slowfpvfmx, .slowfpvmlx, .splat_vfp_neon, .v8a, .wide_stride_vfp, .zcz, }), }; pub const exynos_m3: CpuModel = .{ .name = "exynos_m3", .llvm_name = "exynos-m3", .features = featureSet(&[_]Feature{ .expand_fp_mlx, .fuse_aes, .fuse_literals, .prof_unpr, .ret_addr_stack, .slow_fp_brcc, .slow_vdup32, .slow_vgetlni32, .slowfpvfmx, .slowfpvmlx, .splat_vfp_neon, .v8a, .wide_stride_vfp, .zcz, }), }; pub const exynos_m4: CpuModel = .{ .name = "exynos_m4", .llvm_name = "exynos-m4", .features = featureSet(&[_]Feature{ .dotprod, .expand_fp_mlx, .fullfp16, .fuse_aes, .fuse_literals, .prof_unpr, .ret_addr_stack, .slow_fp_brcc, .slow_vdup32, .slow_vgetlni32, .slowfpvfmx, .slowfpvmlx, .splat_vfp_neon, .v8_2a, .wide_stride_vfp, .zcz, }), }; pub const exynos_m5: CpuModel = .{ .name = "exynos_m5", .llvm_name = "exynos-m5", .features = featureSet(&[_]Feature{ .dotprod, .expand_fp_mlx, .fullfp16, .fuse_aes, .fuse_literals, .prof_unpr, .ret_addr_stack, .slow_fp_brcc, .slow_vdup32, .slow_vgetlni32, .slowfpvfmx, .slowfpvmlx, .splat_vfp_neon, .v8_2a, .wide_stride_vfp, .zcz, }), }; pub const generic: CpuModel = .{ .name = "generic", .llvm_name = "generic", .features = featureSet(&[_]Feature{}), }; pub const iwmmxt: CpuModel = .{ .name = "iwmmxt", .llvm_name = "iwmmxt", .features = featureSet(&[_]Feature{ .v5te, }), }; pub const krait: CpuModel = .{ .name = "krait", .llvm_name = "krait", .features = featureSet(&[_]Feature{ .avoid_partial_cpsr, .hwdiv, .hwdiv_arm, .muxed_units, .ret_addr_stack, .v7a, .vfp4, .vldn_align, .vmlx_forwarding, }), }; pub const kryo: CpuModel = .{ .name = "kryo", .llvm_name = "kryo", .features = featureSet(&[_]Feature{ .v8a, }), }; pub const mpcore: CpuModel = .{ .name = "mpcore", .llvm_name = "mpcore", .features = featureSet(&[_]Feature{ .slowfpvmlx, .v6k, .vfp2, }), }; pub const mpcorenovfp: CpuModel = .{ .name = "mpcorenovfp", .llvm_name = "mpcorenovfp", .features = featureSet(&[_]Feature{ .v6k, }), }; pub const neoverse_n1: CpuModel = .{ .name = "neoverse_n1", .llvm_name = "neoverse-n1", .features = featureSet(&[_]Feature{ .dotprod, .v8_2a, }), }; pub const neoverse_n2: CpuModel = .{ .name = "neoverse_n2", .llvm_name = "neoverse-n2", .features = featureSet(&[_]Feature{ .bf16, .fp16fml, .i8mm, .v9a, }), }; pub const neoverse_v1: CpuModel = .{ .name = "neoverse_v1", .llvm_name = "neoverse-v1", .features = featureSet(&[_]Feature{ .bf16, .fullfp16, .i8mm, .v8_4a, }), }; pub const sc000: CpuModel = .{ .name = "sc000", .llvm_name = "sc000", .features = featureSet(&[_]Feature{ .no_branch_predictor, .v6m, }), }; pub const sc300: CpuModel = .{ .name = "sc300", .llvm_name = "sc300", .features = featureSet(&[_]Feature{ .no_branch_predictor, .use_misched, .v7m, }), }; pub const strongarm: CpuModel = .{ .name = "strongarm", .llvm_name = "strongarm", .features = featureSet(&[_]Feature{ .v4, }), }; pub const strongarm110: CpuModel = .{ .name = "strongarm110", .llvm_name = "strongarm110", .features = featureSet(&[_]Feature{ .v4, }), }; pub const strongarm1100: CpuModel = .{ .name = "strongarm1100", .llvm_name = "strongarm1100", .features = featureSet(&[_]Feature{ .v4, }), }; pub const strongarm1110: CpuModel = .{ .name = "strongarm1110", .llvm_name = "strongarm1110", .features = featureSet(&[_]Feature{ .v4, }), }; pub const swift: CpuModel = .{ .name = "swift", .llvm_name = "swift", .features = featureSet(&[_]Feature{ .avoid_movs_shop, .avoid_partial_cpsr, .disable_postra_scheduler, .hwdiv, .hwdiv_arm, .mp, .neonfp, .prefer_ishst, .prof_unpr, .ret_addr_stack, .slow_load_D_subreg, .slow_odd_reg, .slow_vdup32, .slow_vgetlni32, .slowfpvfmx, .slowfpvmlx, .use_misched, .v7a, .vfp4, .vmlx_hazards, .wide_stride_vfp, }), }; pub const xscale: CpuModel = .{ .name = "xscale", .llvm_name = "xscale", .features = featureSet(&[_]Feature{ .v5te, }), }; }