aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Target/avr.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-01-02 14:11:27 -0800
committerGitHub <noreply@github.com>2024-01-02 14:11:27 -0800
commit289ae45c1b58e952867c4fa1e246d0ef7bc2ff64 (patch)
tree5dd034143a2354b7b44496e684f1c764e2f9664c /lib/std/Target/avr.zig
parentc89bb3e141ee215add0b52930d48bffd8dae8342 (diff)
parentc546ddb3edc557fae4b932e5239b9dcb66117832 (diff)
downloadzig-289ae45c1b58e952867c4fa1e246d0ef7bc2ff64.tar.gz
zig-289ae45c1b58e952867c4fa1e246d0ef7bc2ff64.zip
Merge pull request #18160 from ziglang/std-build-module
Move many settings from being per-Compilation to being per-Module
Diffstat (limited to 'lib/std/Target/avr.zig')
-rw-r--r--lib/std/Target/avr.zig2607
1 files changed, 2607 insertions, 0 deletions
diff --git a/lib/std/Target/avr.zig b/lib/std/Target/avr.zig
new file mode 100644
index 0000000000..bda274d2e6
--- /dev/null
+++ b/lib/std/Target/avr.zig
@@ -0,0 +1,2607 @@
+//! This file is auto-generated by tools/update_cpu_features.zig.
+
+const std = @import("../std.zig");
+const CpuFeature = std.Target.Cpu.Feature;
+const CpuModel = std.Target.Cpu.Model;
+
+pub const Feature = enum {
+ addsubiw,
+ avr0,
+ avr1,
+ avr2,
+ avr25,
+ avr3,
+ avr31,
+ avr35,
+ avr4,
+ avr5,
+ avr51,
+ avr6,
+ avrtiny,
+ @"break",
+ des,
+ eijmpcall,
+ elpm,
+ elpmx,
+ ijmpcall,
+ jmpcall,
+ lowbytefirst,
+ lpm,
+ lpmx,
+ memmappedregs,
+ movw,
+ mul,
+ rmw,
+ smallstack,
+ special,
+ spm,
+ spmx,
+ sram,
+ tinyencoding,
+ xmega,
+ xmega3,
+ xmegau,
+};
+
+pub const featureSet = CpuFeature.feature_set_fns(Feature).featureSet;
+pub const featureSetHas = CpuFeature.feature_set_fns(Feature).featureSetHas;
+pub const featureSetHasAny = CpuFeature.feature_set_fns(Feature).featureSetHasAny;
+pub const featureSetHasAll = CpuFeature.feature_set_fns(Feature).featureSetHasAll;
+
+pub const all_features = blk: {
+ const len = @typeInfo(Feature).Enum.fields.len;
+ std.debug.assert(len <= CpuFeature.Set.needed_bit_count);
+ var result: [len]CpuFeature = undefined;
+ result[@intFromEnum(Feature.addsubiw)] = .{
+ .llvm_name = "addsubiw",
+ .description = "Enable 16-bit register-immediate addition and subtraction instructions",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.avr0)] = .{
+ .llvm_name = "avr0",
+ .description = "The device is a part of the avr0 family",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.avr1)] = .{
+ .llvm_name = "avr1",
+ .description = "The device is a part of the avr1 family",
+ .dependencies = featureSet(&[_]Feature{
+ .avr0,
+ .lpm,
+ .memmappedregs,
+ }),
+ };
+ result[@intFromEnum(Feature.avr2)] = .{
+ .llvm_name = "avr2",
+ .description = "The device is a part of the avr2 family",
+ .dependencies = featureSet(&[_]Feature{
+ .addsubiw,
+ .avr1,
+ .ijmpcall,
+ .sram,
+ }),
+ };
+ result[@intFromEnum(Feature.avr25)] = .{
+ .llvm_name = "avr25",
+ .description = "The device is a part of the avr25 family",
+ .dependencies = featureSet(&[_]Feature{
+ .avr2,
+ .@"break",
+ .lpmx,
+ .movw,
+ .spm,
+ }),
+ };
+ result[@intFromEnum(Feature.avr3)] = .{
+ .llvm_name = "avr3",
+ .description = "The device is a part of the avr3 family",
+ .dependencies = featureSet(&[_]Feature{
+ .avr2,
+ .jmpcall,
+ }),
+ };
+ result[@intFromEnum(Feature.avr31)] = .{
+ .llvm_name = "avr31",
+ .description = "The device is a part of the avr31 family",
+ .dependencies = featureSet(&[_]Feature{
+ .avr3,
+ .elpm,
+ }),
+ };
+ result[@intFromEnum(Feature.avr35)] = .{
+ .llvm_name = "avr35",
+ .description = "The device is a part of the avr35 family",
+ .dependencies = featureSet(&[_]Feature{
+ .avr3,
+ .@"break",
+ .lpmx,
+ .movw,
+ .spm,
+ }),
+ };
+ result[@intFromEnum(Feature.avr4)] = .{
+ .llvm_name = "avr4",
+ .description = "The device is a part of the avr4 family",
+ .dependencies = featureSet(&[_]Feature{
+ .avr2,
+ .@"break",
+ .lpmx,
+ .movw,
+ .mul,
+ .spm,
+ }),
+ };
+ result[@intFromEnum(Feature.avr5)] = .{
+ .llvm_name = "avr5",
+ .description = "The device is a part of the avr5 family",
+ .dependencies = featureSet(&[_]Feature{
+ .avr3,
+ .@"break",
+ .lpmx,
+ .movw,
+ .mul,
+ .spm,
+ }),
+ };
+ result[@intFromEnum(Feature.avr51)] = .{
+ .llvm_name = "avr51",
+ .description = "The device is a part of the avr51 family",
+ .dependencies = featureSet(&[_]Feature{
+ .avr5,
+ .elpm,
+ .elpmx,
+ }),
+ };
+ result[@intFromEnum(Feature.avr6)] = .{
+ .llvm_name = "avr6",
+ .description = "The device is a part of the avr6 family",
+ .dependencies = featureSet(&[_]Feature{
+ .avr51,
+ .eijmpcall,
+ }),
+ };
+ result[@intFromEnum(Feature.avrtiny)] = .{
+ .llvm_name = "avrtiny",
+ .description = "The device is a part of the avrtiny family",
+ .dependencies = featureSet(&[_]Feature{
+ .avr0,
+ .@"break",
+ .smallstack,
+ .sram,
+ .tinyencoding,
+ }),
+ };
+ result[@intFromEnum(Feature.@"break")] = .{
+ .llvm_name = "break",
+ .description = "The device supports the `BREAK` debugging instruction",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.des)] = .{
+ .llvm_name = "des",
+ .description = "The device supports the `DES k` encryption instruction",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.eijmpcall)] = .{
+ .llvm_name = "eijmpcall",
+ .description = "The device supports the `EIJMP`/`EICALL` instructions",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.elpm)] = .{
+ .llvm_name = "elpm",
+ .description = "The device supports the ELPM instruction",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.elpmx)] = .{
+ .llvm_name = "elpmx",
+ .description = "The device supports the `ELPM Rd, Z[+]` instructions",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.ijmpcall)] = .{
+ .llvm_name = "ijmpcall",
+ .description = "The device supports `IJMP`/`ICALL`instructions",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.jmpcall)] = .{
+ .llvm_name = "jmpcall",
+ .description = "The device supports the `JMP` and `CALL` instructions",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.lowbytefirst)] = .{
+ .llvm_name = "lowbytefirst",
+ .description = "Do the low byte first when writing a 16-bit port or storing a 16-bit word",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.lpm)] = .{
+ .llvm_name = "lpm",
+ .description = "The device supports the `LPM` instruction",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.lpmx)] = .{
+ .llvm_name = "lpmx",
+ .description = "The device supports the `LPM Rd, Z[+]` instruction",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.memmappedregs)] = .{
+ .llvm_name = "memmappedregs",
+ .description = "The device has CPU registers mapped in data address space",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.movw)] = .{
+ .llvm_name = "movw",
+ .description = "The device supports the 16-bit MOVW instruction",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.mul)] = .{
+ .llvm_name = "mul",
+ .description = "The device supports the multiplication instructions",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.rmw)] = .{
+ .llvm_name = "rmw",
+ .description = "The device supports the read-write-modify instructions: XCH, LAS, LAC, LAT",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.smallstack)] = .{
+ .llvm_name = "smallstack",
+ .description = "The device has an 8-bit stack pointer",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.special)] = .{
+ .llvm_name = "special",
+ .description = "Enable use of the entire instruction set - used for debugging",
+ .dependencies = featureSet(&[_]Feature{
+ .addsubiw,
+ .@"break",
+ .des,
+ .eijmpcall,
+ .elpm,
+ .elpmx,
+ .ijmpcall,
+ .jmpcall,
+ .lpm,
+ .lpmx,
+ .memmappedregs,
+ .movw,
+ .mul,
+ .rmw,
+ .spm,
+ .spmx,
+ .sram,
+ }),
+ };
+ result[@intFromEnum(Feature.spm)] = .{
+ .llvm_name = "spm",
+ .description = "The device supports the `SPM` instruction",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.spmx)] = .{
+ .llvm_name = "spmx",
+ .description = "The device supports the `SPM Z+` instruction",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.sram)] = .{
+ .llvm_name = "sram",
+ .description = "The device has random access memory",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.tinyencoding)] = .{
+ .llvm_name = "tinyencoding",
+ .description = "The device has Tiny core specific instruction encodings",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.xmega)] = .{
+ .llvm_name = "xmega",
+ .description = "The device is a part of the xmega family",
+ .dependencies = featureSet(&[_]Feature{
+ .addsubiw,
+ .avr0,
+ .@"break",
+ .des,
+ .eijmpcall,
+ .elpm,
+ .elpmx,
+ .ijmpcall,
+ .jmpcall,
+ .lowbytefirst,
+ .lpm,
+ .lpmx,
+ .movw,
+ .mul,
+ .spm,
+ .spmx,
+ .sram,
+ }),
+ };
+ result[@intFromEnum(Feature.xmega3)] = .{
+ .llvm_name = "xmega3",
+ .description = "The device is a part of the xmega3 family",
+ .dependencies = featureSet(&[_]Feature{
+ .addsubiw,
+ .avr0,
+ .@"break",
+ .ijmpcall,
+ .jmpcall,
+ .lowbytefirst,
+ .lpm,
+ .lpmx,
+ .movw,
+ .mul,
+ .sram,
+ }),
+ };
+ result[@intFromEnum(Feature.xmegau)] = .{
+ .llvm_name = "xmegau",
+ .description = "The device is a part of the xmegau family",
+ .dependencies = featureSet(&[_]Feature{
+ .rmw,
+ .xmega,
+ }),
+ };
+ const ti = @typeInfo(Feature);
+ for (&result, 0..) |*elem, i| {
+ elem.index = i;
+ elem.name = ti.Enum.fields[i].name;
+ }
+ break :blk result;
+};
+
+pub const cpu = struct {
+ pub const at43usb320 = CpuModel{
+ .name = "at43usb320",
+ .llvm_name = "at43usb320",
+ .features = featureSet(&[_]Feature{
+ .avr31,
+ }),
+ };
+ pub const at43usb355 = CpuModel{
+ .name = "at43usb355",
+ .llvm_name = "at43usb355",
+ .features = featureSet(&[_]Feature{
+ .avr3,
+ }),
+ };
+ pub const at76c711 = CpuModel{
+ .name = "at76c711",
+ .llvm_name = "at76c711",
+ .features = featureSet(&[_]Feature{
+ .avr3,
+ }),
+ };
+ pub const at86rf401 = CpuModel{
+ .name = "at86rf401",
+ .llvm_name = "at86rf401",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .lpmx,
+ .movw,
+ }),
+ };
+ pub const at90c8534 = CpuModel{
+ .name = "at90c8534",
+ .llvm_name = "at90c8534",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ }),
+ };
+ pub const at90can128 = CpuModel{
+ .name = "at90can128",
+ .llvm_name = "at90can128",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const at90can32 = CpuModel{
+ .name = "at90can32",
+ .llvm_name = "at90can32",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const at90can64 = CpuModel{
+ .name = "at90can64",
+ .llvm_name = "at90can64",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const at90pwm1 = CpuModel{
+ .name = "at90pwm1",
+ .llvm_name = "at90pwm1",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const at90pwm161 = CpuModel{
+ .name = "at90pwm161",
+ .llvm_name = "at90pwm161",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const at90pwm2 = CpuModel{
+ .name = "at90pwm2",
+ .llvm_name = "at90pwm2",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const at90pwm216 = CpuModel{
+ .name = "at90pwm216",
+ .llvm_name = "at90pwm216",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const at90pwm2b = CpuModel{
+ .name = "at90pwm2b",
+ .llvm_name = "at90pwm2b",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const at90pwm3 = CpuModel{
+ .name = "at90pwm3",
+ .llvm_name = "at90pwm3",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const at90pwm316 = CpuModel{
+ .name = "at90pwm316",
+ .llvm_name = "at90pwm316",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const at90pwm3b = CpuModel{
+ .name = "at90pwm3b",
+ .llvm_name = "at90pwm3b",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const at90pwm81 = CpuModel{
+ .name = "at90pwm81",
+ .llvm_name = "at90pwm81",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const at90s1200 = CpuModel{
+ .name = "at90s1200",
+ .llvm_name = "at90s1200",
+ .features = featureSet(&[_]Feature{
+ .avr0,
+ .smallstack,
+ }),
+ };
+ pub const at90s2313 = CpuModel{
+ .name = "at90s2313",
+ .llvm_name = "at90s2313",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .smallstack,
+ }),
+ };
+ pub const at90s2323 = CpuModel{
+ .name = "at90s2323",
+ .llvm_name = "at90s2323",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .smallstack,
+ }),
+ };
+ pub const at90s2333 = CpuModel{
+ .name = "at90s2333",
+ .llvm_name = "at90s2333",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .smallstack,
+ }),
+ };
+ pub const at90s2343 = CpuModel{
+ .name = "at90s2343",
+ .llvm_name = "at90s2343",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .smallstack,
+ }),
+ };
+ pub const at90s4414 = CpuModel{
+ .name = "at90s4414",
+ .llvm_name = "at90s4414",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .smallstack,
+ }),
+ };
+ pub const at90s4433 = CpuModel{
+ .name = "at90s4433",
+ .llvm_name = "at90s4433",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .smallstack,
+ }),
+ };
+ pub const at90s4434 = CpuModel{
+ .name = "at90s4434",
+ .llvm_name = "at90s4434",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .smallstack,
+ }),
+ };
+ pub const at90s8515 = CpuModel{
+ .name = "at90s8515",
+ .llvm_name = "at90s8515",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ }),
+ };
+ pub const at90s8535 = CpuModel{
+ .name = "at90s8535",
+ .llvm_name = "at90s8535",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ }),
+ };
+ pub const at90scr100 = CpuModel{
+ .name = "at90scr100",
+ .llvm_name = "at90scr100",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const at90usb1286 = CpuModel{
+ .name = "at90usb1286",
+ .llvm_name = "at90usb1286",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const at90usb1287 = CpuModel{
+ .name = "at90usb1287",
+ .llvm_name = "at90usb1287",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const at90usb162 = CpuModel{
+ .name = "at90usb162",
+ .llvm_name = "at90usb162",
+ .features = featureSet(&[_]Feature{
+ .avr35,
+ }),
+ };
+ pub const at90usb646 = CpuModel{
+ .name = "at90usb646",
+ .llvm_name = "at90usb646",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const at90usb647 = CpuModel{
+ .name = "at90usb647",
+ .llvm_name = "at90usb647",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const at90usb82 = CpuModel{
+ .name = "at90usb82",
+ .llvm_name = "at90usb82",
+ .features = featureSet(&[_]Feature{
+ .avr35,
+ }),
+ };
+ pub const at94k = CpuModel{
+ .name = "at94k",
+ .llvm_name = "at94k",
+ .features = featureSet(&[_]Feature{
+ .avr3,
+ .lpmx,
+ .movw,
+ .mul,
+ }),
+ };
+ pub const ata5272 = CpuModel{
+ .name = "ata5272",
+ .llvm_name = "ata5272",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const ata5505 = CpuModel{
+ .name = "ata5505",
+ .llvm_name = "ata5505",
+ .features = featureSet(&[_]Feature{
+ .avr35,
+ }),
+ };
+ pub const ata5702m322 = CpuModel{
+ .name = "ata5702m322",
+ .llvm_name = "ata5702m322",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const ata5782 = CpuModel{
+ .name = "ata5782",
+ .llvm_name = "ata5782",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const ata5790 = CpuModel{
+ .name = "ata5790",
+ .llvm_name = "ata5790",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const ata5790n = CpuModel{
+ .name = "ata5790n",
+ .llvm_name = "ata5790n",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const ata5791 = CpuModel{
+ .name = "ata5791",
+ .llvm_name = "ata5791",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const ata5795 = CpuModel{
+ .name = "ata5795",
+ .llvm_name = "ata5795",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const ata5831 = CpuModel{
+ .name = "ata5831",
+ .llvm_name = "ata5831",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const ata6285 = CpuModel{
+ .name = "ata6285",
+ .llvm_name = "ata6285",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const ata6286 = CpuModel{
+ .name = "ata6286",
+ .llvm_name = "ata6286",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const ata6289 = CpuModel{
+ .name = "ata6289",
+ .llvm_name = "ata6289",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const ata6612c = CpuModel{
+ .name = "ata6612c",
+ .llvm_name = "ata6612c",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const ata6613c = CpuModel{
+ .name = "ata6613c",
+ .llvm_name = "ata6613c",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const ata6614q = CpuModel{
+ .name = "ata6614q",
+ .llvm_name = "ata6614q",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const ata6616c = CpuModel{
+ .name = "ata6616c",
+ .llvm_name = "ata6616c",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const ata6617c = CpuModel{
+ .name = "ata6617c",
+ .llvm_name = "ata6617c",
+ .features = featureSet(&[_]Feature{
+ .avr35,
+ }),
+ };
+ pub const ata664251 = CpuModel{
+ .name = "ata664251",
+ .llvm_name = "ata664251",
+ .features = featureSet(&[_]Feature{
+ .avr35,
+ }),
+ };
+ pub const ata8210 = CpuModel{
+ .name = "ata8210",
+ .llvm_name = "ata8210",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const ata8510 = CpuModel{
+ .name = "ata8510",
+ .llvm_name = "ata8510",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega103 = CpuModel{
+ .name = "atmega103",
+ .llvm_name = "atmega103",
+ .features = featureSet(&[_]Feature{
+ .avr31,
+ }),
+ };
+ pub const atmega128 = CpuModel{
+ .name = "atmega128",
+ .llvm_name = "atmega128",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const atmega1280 = CpuModel{
+ .name = "atmega1280",
+ .llvm_name = "atmega1280",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const atmega1281 = CpuModel{
+ .name = "atmega1281",
+ .llvm_name = "atmega1281",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const atmega1284 = CpuModel{
+ .name = "atmega1284",
+ .llvm_name = "atmega1284",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const atmega1284p = CpuModel{
+ .name = "atmega1284p",
+ .llvm_name = "atmega1284p",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const atmega1284rfr2 = CpuModel{
+ .name = "atmega1284rfr2",
+ .llvm_name = "atmega1284rfr2",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const atmega128a = CpuModel{
+ .name = "atmega128a",
+ .llvm_name = "atmega128a",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const atmega128rfa1 = CpuModel{
+ .name = "atmega128rfa1",
+ .llvm_name = "atmega128rfa1",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const atmega128rfr2 = CpuModel{
+ .name = "atmega128rfr2",
+ .llvm_name = "atmega128rfr2",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const atmega16 = CpuModel{
+ .name = "atmega16",
+ .llvm_name = "atmega16",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega1608 = CpuModel{
+ .name = "atmega1608",
+ .llvm_name = "atmega1608",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const atmega1609 = CpuModel{
+ .name = "atmega1609",
+ .llvm_name = "atmega1609",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const atmega161 = CpuModel{
+ .name = "atmega161",
+ .llvm_name = "atmega161",
+ .features = featureSet(&[_]Feature{
+ .avr3,
+ .lpmx,
+ .movw,
+ .mul,
+ .spm,
+ }),
+ };
+ pub const atmega162 = CpuModel{
+ .name = "atmega162",
+ .llvm_name = "atmega162",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega163 = CpuModel{
+ .name = "atmega163",
+ .llvm_name = "atmega163",
+ .features = featureSet(&[_]Feature{
+ .avr3,
+ .lpmx,
+ .movw,
+ .mul,
+ .spm,
+ }),
+ };
+ pub const atmega164a = CpuModel{
+ .name = "atmega164a",
+ .llvm_name = "atmega164a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega164p = CpuModel{
+ .name = "atmega164p",
+ .llvm_name = "atmega164p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega164pa = CpuModel{
+ .name = "atmega164pa",
+ .llvm_name = "atmega164pa",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega165 = CpuModel{
+ .name = "atmega165",
+ .llvm_name = "atmega165",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega165a = CpuModel{
+ .name = "atmega165a",
+ .llvm_name = "atmega165a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega165p = CpuModel{
+ .name = "atmega165p",
+ .llvm_name = "atmega165p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega165pa = CpuModel{
+ .name = "atmega165pa",
+ .llvm_name = "atmega165pa",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega168 = CpuModel{
+ .name = "atmega168",
+ .llvm_name = "atmega168",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega168a = CpuModel{
+ .name = "atmega168a",
+ .llvm_name = "atmega168a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega168p = CpuModel{
+ .name = "atmega168p",
+ .llvm_name = "atmega168p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega168pa = CpuModel{
+ .name = "atmega168pa",
+ .llvm_name = "atmega168pa",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega168pb = CpuModel{
+ .name = "atmega168pb",
+ .llvm_name = "atmega168pb",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega169 = CpuModel{
+ .name = "atmega169",
+ .llvm_name = "atmega169",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega169a = CpuModel{
+ .name = "atmega169a",
+ .llvm_name = "atmega169a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega169p = CpuModel{
+ .name = "atmega169p",
+ .llvm_name = "atmega169p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega169pa = CpuModel{
+ .name = "atmega169pa",
+ .llvm_name = "atmega169pa",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega16a = CpuModel{
+ .name = "atmega16a",
+ .llvm_name = "atmega16a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega16hva = CpuModel{
+ .name = "atmega16hva",
+ .llvm_name = "atmega16hva",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega16hva2 = CpuModel{
+ .name = "atmega16hva2",
+ .llvm_name = "atmega16hva2",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega16hvb = CpuModel{
+ .name = "atmega16hvb",
+ .llvm_name = "atmega16hvb",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega16hvbrevb = CpuModel{
+ .name = "atmega16hvbrevb",
+ .llvm_name = "atmega16hvbrevb",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega16m1 = CpuModel{
+ .name = "atmega16m1",
+ .llvm_name = "atmega16m1",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega16u2 = CpuModel{
+ .name = "atmega16u2",
+ .llvm_name = "atmega16u2",
+ .features = featureSet(&[_]Feature{
+ .avr35,
+ }),
+ };
+ pub const atmega16u4 = CpuModel{
+ .name = "atmega16u4",
+ .llvm_name = "atmega16u4",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega2560 = CpuModel{
+ .name = "atmega2560",
+ .llvm_name = "atmega2560",
+ .features = featureSet(&[_]Feature{
+ .avr6,
+ }),
+ };
+ pub const atmega2561 = CpuModel{
+ .name = "atmega2561",
+ .llvm_name = "atmega2561",
+ .features = featureSet(&[_]Feature{
+ .avr6,
+ }),
+ };
+ pub const atmega2564rfr2 = CpuModel{
+ .name = "atmega2564rfr2",
+ .llvm_name = "atmega2564rfr2",
+ .features = featureSet(&[_]Feature{
+ .avr6,
+ }),
+ };
+ pub const atmega256rfr2 = CpuModel{
+ .name = "atmega256rfr2",
+ .llvm_name = "atmega256rfr2",
+ .features = featureSet(&[_]Feature{
+ .avr6,
+ }),
+ };
+ pub const atmega32 = CpuModel{
+ .name = "atmega32",
+ .llvm_name = "atmega32",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega3208 = CpuModel{
+ .name = "atmega3208",
+ .llvm_name = "atmega3208",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const atmega3209 = CpuModel{
+ .name = "atmega3209",
+ .llvm_name = "atmega3209",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const atmega323 = CpuModel{
+ .name = "atmega323",
+ .llvm_name = "atmega323",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega324a = CpuModel{
+ .name = "atmega324a",
+ .llvm_name = "atmega324a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega324p = CpuModel{
+ .name = "atmega324p",
+ .llvm_name = "atmega324p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega324pa = CpuModel{
+ .name = "atmega324pa",
+ .llvm_name = "atmega324pa",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega324pb = CpuModel{
+ .name = "atmega324pb",
+ .llvm_name = "atmega324pb",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega325 = CpuModel{
+ .name = "atmega325",
+ .llvm_name = "atmega325",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega3250 = CpuModel{
+ .name = "atmega3250",
+ .llvm_name = "atmega3250",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega3250a = CpuModel{
+ .name = "atmega3250a",
+ .llvm_name = "atmega3250a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega3250p = CpuModel{
+ .name = "atmega3250p",
+ .llvm_name = "atmega3250p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega3250pa = CpuModel{
+ .name = "atmega3250pa",
+ .llvm_name = "atmega3250pa",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega325a = CpuModel{
+ .name = "atmega325a",
+ .llvm_name = "atmega325a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega325p = CpuModel{
+ .name = "atmega325p",
+ .llvm_name = "atmega325p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega325pa = CpuModel{
+ .name = "atmega325pa",
+ .llvm_name = "atmega325pa",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega328 = CpuModel{
+ .name = "atmega328",
+ .llvm_name = "atmega328",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega328p = CpuModel{
+ .name = "atmega328p",
+ .llvm_name = "atmega328p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega328pb = CpuModel{
+ .name = "atmega328pb",
+ .llvm_name = "atmega328pb",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega329 = CpuModel{
+ .name = "atmega329",
+ .llvm_name = "atmega329",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega3290 = CpuModel{
+ .name = "atmega3290",
+ .llvm_name = "atmega3290",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega3290a = CpuModel{
+ .name = "atmega3290a",
+ .llvm_name = "atmega3290a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega3290p = CpuModel{
+ .name = "atmega3290p",
+ .llvm_name = "atmega3290p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega3290pa = CpuModel{
+ .name = "atmega3290pa",
+ .llvm_name = "atmega3290pa",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega329a = CpuModel{
+ .name = "atmega329a",
+ .llvm_name = "atmega329a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega329p = CpuModel{
+ .name = "atmega329p",
+ .llvm_name = "atmega329p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega329pa = CpuModel{
+ .name = "atmega329pa",
+ .llvm_name = "atmega329pa",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega32a = CpuModel{
+ .name = "atmega32a",
+ .llvm_name = "atmega32a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega32c1 = CpuModel{
+ .name = "atmega32c1",
+ .llvm_name = "atmega32c1",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega32hvb = CpuModel{
+ .name = "atmega32hvb",
+ .llvm_name = "atmega32hvb",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega32hvbrevb = CpuModel{
+ .name = "atmega32hvbrevb",
+ .llvm_name = "atmega32hvbrevb",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega32m1 = CpuModel{
+ .name = "atmega32m1",
+ .llvm_name = "atmega32m1",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega32u2 = CpuModel{
+ .name = "atmega32u2",
+ .llvm_name = "atmega32u2",
+ .features = featureSet(&[_]Feature{
+ .avr35,
+ }),
+ };
+ pub const atmega32u4 = CpuModel{
+ .name = "atmega32u4",
+ .llvm_name = "atmega32u4",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega32u6 = CpuModel{
+ .name = "atmega32u6",
+ .llvm_name = "atmega32u6",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega406 = CpuModel{
+ .name = "atmega406",
+ .llvm_name = "atmega406",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega48 = CpuModel{
+ .name = "atmega48",
+ .llvm_name = "atmega48",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const atmega4808 = CpuModel{
+ .name = "atmega4808",
+ .llvm_name = "atmega4808",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const atmega4809 = CpuModel{
+ .name = "atmega4809",
+ .llvm_name = "atmega4809",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const atmega48a = CpuModel{
+ .name = "atmega48a",
+ .llvm_name = "atmega48a",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const atmega48p = CpuModel{
+ .name = "atmega48p",
+ .llvm_name = "atmega48p",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const atmega48pa = CpuModel{
+ .name = "atmega48pa",
+ .llvm_name = "atmega48pa",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const atmega48pb = CpuModel{
+ .name = "atmega48pb",
+ .llvm_name = "atmega48pb",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const atmega64 = CpuModel{
+ .name = "atmega64",
+ .llvm_name = "atmega64",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega640 = CpuModel{
+ .name = "atmega640",
+ .llvm_name = "atmega640",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega644 = CpuModel{
+ .name = "atmega644",
+ .llvm_name = "atmega644",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega644a = CpuModel{
+ .name = "atmega644a",
+ .llvm_name = "atmega644a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega644p = CpuModel{
+ .name = "atmega644p",
+ .llvm_name = "atmega644p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega644pa = CpuModel{
+ .name = "atmega644pa",
+ .llvm_name = "atmega644pa",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega644rfr2 = CpuModel{
+ .name = "atmega644rfr2",
+ .llvm_name = "atmega644rfr2",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega645 = CpuModel{
+ .name = "atmega645",
+ .llvm_name = "atmega645",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega6450 = CpuModel{
+ .name = "atmega6450",
+ .llvm_name = "atmega6450",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega6450a = CpuModel{
+ .name = "atmega6450a",
+ .llvm_name = "atmega6450a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega6450p = CpuModel{
+ .name = "atmega6450p",
+ .llvm_name = "atmega6450p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega645a = CpuModel{
+ .name = "atmega645a",
+ .llvm_name = "atmega645a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega645p = CpuModel{
+ .name = "atmega645p",
+ .llvm_name = "atmega645p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega649 = CpuModel{
+ .name = "atmega649",
+ .llvm_name = "atmega649",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega6490 = CpuModel{
+ .name = "atmega6490",
+ .llvm_name = "atmega6490",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega6490a = CpuModel{
+ .name = "atmega6490a",
+ .llvm_name = "atmega6490a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega6490p = CpuModel{
+ .name = "atmega6490p",
+ .llvm_name = "atmega6490p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega649a = CpuModel{
+ .name = "atmega649a",
+ .llvm_name = "atmega649a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega649p = CpuModel{
+ .name = "atmega649p",
+ .llvm_name = "atmega649p",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega64a = CpuModel{
+ .name = "atmega64a",
+ .llvm_name = "atmega64a",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega64c1 = CpuModel{
+ .name = "atmega64c1",
+ .llvm_name = "atmega64c1",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega64hve = CpuModel{
+ .name = "atmega64hve",
+ .llvm_name = "atmega64hve",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega64hve2 = CpuModel{
+ .name = "atmega64hve2",
+ .llvm_name = "atmega64hve2",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega64m1 = CpuModel{
+ .name = "atmega64m1",
+ .llvm_name = "atmega64m1",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega64rfr2 = CpuModel{
+ .name = "atmega64rfr2",
+ .llvm_name = "atmega64rfr2",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const atmega8 = CpuModel{
+ .name = "atmega8",
+ .llvm_name = "atmega8",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .lpmx,
+ .movw,
+ .mul,
+ .spm,
+ }),
+ };
+ pub const atmega808 = CpuModel{
+ .name = "atmega808",
+ .llvm_name = "atmega808",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const atmega809 = CpuModel{
+ .name = "atmega809",
+ .llvm_name = "atmega809",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const atmega8515 = CpuModel{
+ .name = "atmega8515",
+ .llvm_name = "atmega8515",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .lpmx,
+ .movw,
+ .mul,
+ .spm,
+ }),
+ };
+ pub const atmega8535 = CpuModel{
+ .name = "atmega8535",
+ .llvm_name = "atmega8535",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .lpmx,
+ .movw,
+ .mul,
+ .spm,
+ }),
+ };
+ pub const atmega88 = CpuModel{
+ .name = "atmega88",
+ .llvm_name = "atmega88",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const atmega88a = CpuModel{
+ .name = "atmega88a",
+ .llvm_name = "atmega88a",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const atmega88p = CpuModel{
+ .name = "atmega88p",
+ .llvm_name = "atmega88p",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const atmega88pa = CpuModel{
+ .name = "atmega88pa",
+ .llvm_name = "atmega88pa",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const atmega88pb = CpuModel{
+ .name = "atmega88pb",
+ .llvm_name = "atmega88pb",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const atmega8a = CpuModel{
+ .name = "atmega8a",
+ .llvm_name = "atmega8a",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .lpmx,
+ .movw,
+ .mul,
+ .spm,
+ }),
+ };
+ pub const atmega8hva = CpuModel{
+ .name = "atmega8hva",
+ .llvm_name = "atmega8hva",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const atmega8u2 = CpuModel{
+ .name = "atmega8u2",
+ .llvm_name = "atmega8u2",
+ .features = featureSet(&[_]Feature{
+ .avr35,
+ }),
+ };
+ pub const attiny10 = CpuModel{
+ .name = "attiny10",
+ .llvm_name = "attiny10",
+ .features = featureSet(&[_]Feature{
+ .avrtiny,
+ }),
+ };
+ pub const attiny102 = CpuModel{
+ .name = "attiny102",
+ .llvm_name = "attiny102",
+ .features = featureSet(&[_]Feature{
+ .avrtiny,
+ }),
+ };
+ pub const attiny104 = CpuModel{
+ .name = "attiny104",
+ .llvm_name = "attiny104",
+ .features = featureSet(&[_]Feature{
+ .avrtiny,
+ }),
+ };
+ pub const attiny11 = CpuModel{
+ .name = "attiny11",
+ .llvm_name = "attiny11",
+ .features = featureSet(&[_]Feature{
+ .avr1,
+ .smallstack,
+ }),
+ };
+ pub const attiny12 = CpuModel{
+ .name = "attiny12",
+ .llvm_name = "attiny12",
+ .features = featureSet(&[_]Feature{
+ .avr1,
+ .smallstack,
+ }),
+ };
+ pub const attiny13 = CpuModel{
+ .name = "attiny13",
+ .llvm_name = "attiny13",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ .smallstack,
+ }),
+ };
+ pub const attiny13a = CpuModel{
+ .name = "attiny13a",
+ .llvm_name = "attiny13a",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ .smallstack,
+ }),
+ };
+ pub const attiny15 = CpuModel{
+ .name = "attiny15",
+ .llvm_name = "attiny15",
+ .features = featureSet(&[_]Feature{
+ .avr1,
+ .smallstack,
+ }),
+ };
+ pub const attiny1604 = CpuModel{
+ .name = "attiny1604",
+ .llvm_name = "attiny1604",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny1606 = CpuModel{
+ .name = "attiny1606",
+ .llvm_name = "attiny1606",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny1607 = CpuModel{
+ .name = "attiny1607",
+ .llvm_name = "attiny1607",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny1614 = CpuModel{
+ .name = "attiny1614",
+ .llvm_name = "attiny1614",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny1616 = CpuModel{
+ .name = "attiny1616",
+ .llvm_name = "attiny1616",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny1617 = CpuModel{
+ .name = "attiny1617",
+ .llvm_name = "attiny1617",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny1624 = CpuModel{
+ .name = "attiny1624",
+ .llvm_name = "attiny1624",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny1626 = CpuModel{
+ .name = "attiny1626",
+ .llvm_name = "attiny1626",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny1627 = CpuModel{
+ .name = "attiny1627",
+ .llvm_name = "attiny1627",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny1634 = CpuModel{
+ .name = "attiny1634",
+ .llvm_name = "attiny1634",
+ .features = featureSet(&[_]Feature{
+ .avr35,
+ }),
+ };
+ pub const attiny167 = CpuModel{
+ .name = "attiny167",
+ .llvm_name = "attiny167",
+ .features = featureSet(&[_]Feature{
+ .avr35,
+ }),
+ };
+ pub const attiny20 = CpuModel{
+ .name = "attiny20",
+ .llvm_name = "attiny20",
+ .features = featureSet(&[_]Feature{
+ .avrtiny,
+ }),
+ };
+ pub const attiny202 = CpuModel{
+ .name = "attiny202",
+ .llvm_name = "attiny202",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny204 = CpuModel{
+ .name = "attiny204",
+ .llvm_name = "attiny204",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny212 = CpuModel{
+ .name = "attiny212",
+ .llvm_name = "attiny212",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny214 = CpuModel{
+ .name = "attiny214",
+ .llvm_name = "attiny214",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny22 = CpuModel{
+ .name = "attiny22",
+ .llvm_name = "attiny22",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .smallstack,
+ }),
+ };
+ pub const attiny2313 = CpuModel{
+ .name = "attiny2313",
+ .llvm_name = "attiny2313",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ .smallstack,
+ }),
+ };
+ pub const attiny2313a = CpuModel{
+ .name = "attiny2313a",
+ .llvm_name = "attiny2313a",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ .smallstack,
+ }),
+ };
+ pub const attiny24 = CpuModel{
+ .name = "attiny24",
+ .llvm_name = "attiny24",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ .smallstack,
+ }),
+ };
+ pub const attiny24a = CpuModel{
+ .name = "attiny24a",
+ .llvm_name = "attiny24a",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ .smallstack,
+ }),
+ };
+ pub const attiny25 = CpuModel{
+ .name = "attiny25",
+ .llvm_name = "attiny25",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ .smallstack,
+ }),
+ };
+ pub const attiny26 = CpuModel{
+ .name = "attiny26",
+ .llvm_name = "attiny26",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ .lpmx,
+ .smallstack,
+ }),
+ };
+ pub const attiny261 = CpuModel{
+ .name = "attiny261",
+ .llvm_name = "attiny261",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ .smallstack,
+ }),
+ };
+ pub const attiny261a = CpuModel{
+ .name = "attiny261a",
+ .llvm_name = "attiny261a",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ .smallstack,
+ }),
+ };
+ pub const attiny28 = CpuModel{
+ .name = "attiny28",
+ .llvm_name = "attiny28",
+ .features = featureSet(&[_]Feature{
+ .avr1,
+ .smallstack,
+ }),
+ };
+ pub const attiny3216 = CpuModel{
+ .name = "attiny3216",
+ .llvm_name = "attiny3216",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny3217 = CpuModel{
+ .name = "attiny3217",
+ .llvm_name = "attiny3217",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny4 = CpuModel{
+ .name = "attiny4",
+ .llvm_name = "attiny4",
+ .features = featureSet(&[_]Feature{
+ .avrtiny,
+ }),
+ };
+ pub const attiny40 = CpuModel{
+ .name = "attiny40",
+ .llvm_name = "attiny40",
+ .features = featureSet(&[_]Feature{
+ .avrtiny,
+ }),
+ };
+ pub const attiny402 = CpuModel{
+ .name = "attiny402",
+ .llvm_name = "attiny402",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny404 = CpuModel{
+ .name = "attiny404",
+ .llvm_name = "attiny404",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny406 = CpuModel{
+ .name = "attiny406",
+ .llvm_name = "attiny406",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny412 = CpuModel{
+ .name = "attiny412",
+ .llvm_name = "attiny412",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny414 = CpuModel{
+ .name = "attiny414",
+ .llvm_name = "attiny414",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny416 = CpuModel{
+ .name = "attiny416",
+ .llvm_name = "attiny416",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny417 = CpuModel{
+ .name = "attiny417",
+ .llvm_name = "attiny417",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny4313 = CpuModel{
+ .name = "attiny4313",
+ .llvm_name = "attiny4313",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny43u = CpuModel{
+ .name = "attiny43u",
+ .llvm_name = "attiny43u",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny44 = CpuModel{
+ .name = "attiny44",
+ .llvm_name = "attiny44",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny441 = CpuModel{
+ .name = "attiny441",
+ .llvm_name = "attiny441",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny44a = CpuModel{
+ .name = "attiny44a",
+ .llvm_name = "attiny44a",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny45 = CpuModel{
+ .name = "attiny45",
+ .llvm_name = "attiny45",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny461 = CpuModel{
+ .name = "attiny461",
+ .llvm_name = "attiny461",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny461a = CpuModel{
+ .name = "attiny461a",
+ .llvm_name = "attiny461a",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny48 = CpuModel{
+ .name = "attiny48",
+ .llvm_name = "attiny48",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny5 = CpuModel{
+ .name = "attiny5",
+ .llvm_name = "attiny5",
+ .features = featureSet(&[_]Feature{
+ .avrtiny,
+ }),
+ };
+ pub const attiny804 = CpuModel{
+ .name = "attiny804",
+ .llvm_name = "attiny804",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny806 = CpuModel{
+ .name = "attiny806",
+ .llvm_name = "attiny806",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny807 = CpuModel{
+ .name = "attiny807",
+ .llvm_name = "attiny807",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny814 = CpuModel{
+ .name = "attiny814",
+ .llvm_name = "attiny814",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny816 = CpuModel{
+ .name = "attiny816",
+ .llvm_name = "attiny816",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny817 = CpuModel{
+ .name = "attiny817",
+ .llvm_name = "attiny817",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const attiny828 = CpuModel{
+ .name = "attiny828",
+ .llvm_name = "attiny828",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny84 = CpuModel{
+ .name = "attiny84",
+ .llvm_name = "attiny84",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny841 = CpuModel{
+ .name = "attiny841",
+ .llvm_name = "attiny841",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny84a = CpuModel{
+ .name = "attiny84a",
+ .llvm_name = "attiny84a",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny85 = CpuModel{
+ .name = "attiny85",
+ .llvm_name = "attiny85",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny861 = CpuModel{
+ .name = "attiny861",
+ .llvm_name = "attiny861",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny861a = CpuModel{
+ .name = "attiny861a",
+ .llvm_name = "attiny861a",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny87 = CpuModel{
+ .name = "attiny87",
+ .llvm_name = "attiny87",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny88 = CpuModel{
+ .name = "attiny88",
+ .llvm_name = "attiny88",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const attiny9 = CpuModel{
+ .name = "attiny9",
+ .llvm_name = "attiny9",
+ .features = featureSet(&[_]Feature{
+ .avrtiny,
+ }),
+ };
+ pub const atxmega128a1 = CpuModel{
+ .name = "atxmega128a1",
+ .llvm_name = "atxmega128a1",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega128a1u = CpuModel{
+ .name = "atxmega128a1u",
+ .llvm_name = "atxmega128a1u",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega128a3 = CpuModel{
+ .name = "atxmega128a3",
+ .llvm_name = "atxmega128a3",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega128a3u = CpuModel{
+ .name = "atxmega128a3u",
+ .llvm_name = "atxmega128a3u",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega128a4u = CpuModel{
+ .name = "atxmega128a4u",
+ .llvm_name = "atxmega128a4u",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega128b1 = CpuModel{
+ .name = "atxmega128b1",
+ .llvm_name = "atxmega128b1",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega128b3 = CpuModel{
+ .name = "atxmega128b3",
+ .llvm_name = "atxmega128b3",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega128c3 = CpuModel{
+ .name = "atxmega128c3",
+ .llvm_name = "atxmega128c3",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega128d3 = CpuModel{
+ .name = "atxmega128d3",
+ .llvm_name = "atxmega128d3",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega128d4 = CpuModel{
+ .name = "atxmega128d4",
+ .llvm_name = "atxmega128d4",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega16a4 = CpuModel{
+ .name = "atxmega16a4",
+ .llvm_name = "atxmega16a4",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega16a4u = CpuModel{
+ .name = "atxmega16a4u",
+ .llvm_name = "atxmega16a4u",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega16c4 = CpuModel{
+ .name = "atxmega16c4",
+ .llvm_name = "atxmega16c4",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega16d4 = CpuModel{
+ .name = "atxmega16d4",
+ .llvm_name = "atxmega16d4",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega16e5 = CpuModel{
+ .name = "atxmega16e5",
+ .llvm_name = "atxmega16e5",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega192a3 = CpuModel{
+ .name = "atxmega192a3",
+ .llvm_name = "atxmega192a3",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega192a3u = CpuModel{
+ .name = "atxmega192a3u",
+ .llvm_name = "atxmega192a3u",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega192c3 = CpuModel{
+ .name = "atxmega192c3",
+ .llvm_name = "atxmega192c3",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega192d3 = CpuModel{
+ .name = "atxmega192d3",
+ .llvm_name = "atxmega192d3",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega256a3 = CpuModel{
+ .name = "atxmega256a3",
+ .llvm_name = "atxmega256a3",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega256a3b = CpuModel{
+ .name = "atxmega256a3b",
+ .llvm_name = "atxmega256a3b",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega256a3bu = CpuModel{
+ .name = "atxmega256a3bu",
+ .llvm_name = "atxmega256a3bu",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega256a3u = CpuModel{
+ .name = "atxmega256a3u",
+ .llvm_name = "atxmega256a3u",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega256c3 = CpuModel{
+ .name = "atxmega256c3",
+ .llvm_name = "atxmega256c3",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega256d3 = CpuModel{
+ .name = "atxmega256d3",
+ .llvm_name = "atxmega256d3",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega32a4 = CpuModel{
+ .name = "atxmega32a4",
+ .llvm_name = "atxmega32a4",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega32a4u = CpuModel{
+ .name = "atxmega32a4u",
+ .llvm_name = "atxmega32a4u",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega32c3 = CpuModel{
+ .name = "atxmega32c3",
+ .llvm_name = "atxmega32c3",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega32c4 = CpuModel{
+ .name = "atxmega32c4",
+ .llvm_name = "atxmega32c4",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega32d3 = CpuModel{
+ .name = "atxmega32d3",
+ .llvm_name = "atxmega32d3",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega32d4 = CpuModel{
+ .name = "atxmega32d4",
+ .llvm_name = "atxmega32d4",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega32e5 = CpuModel{
+ .name = "atxmega32e5",
+ .llvm_name = "atxmega32e5",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega384c3 = CpuModel{
+ .name = "atxmega384c3",
+ .llvm_name = "atxmega384c3",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega384d3 = CpuModel{
+ .name = "atxmega384d3",
+ .llvm_name = "atxmega384d3",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega64a1 = CpuModel{
+ .name = "atxmega64a1",
+ .llvm_name = "atxmega64a1",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega64a1u = CpuModel{
+ .name = "atxmega64a1u",
+ .llvm_name = "atxmega64a1u",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega64a3 = CpuModel{
+ .name = "atxmega64a3",
+ .llvm_name = "atxmega64a3",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega64a3u = CpuModel{
+ .name = "atxmega64a3u",
+ .llvm_name = "atxmega64a3u",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega64a4u = CpuModel{
+ .name = "atxmega64a4u",
+ .llvm_name = "atxmega64a4u",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega64b1 = CpuModel{
+ .name = "atxmega64b1",
+ .llvm_name = "atxmega64b1",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega64b3 = CpuModel{
+ .name = "atxmega64b3",
+ .llvm_name = "atxmega64b3",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega64c3 = CpuModel{
+ .name = "atxmega64c3",
+ .llvm_name = "atxmega64c3",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const atxmega64d3 = CpuModel{
+ .name = "atxmega64d3",
+ .llvm_name = "atxmega64d3",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega64d4 = CpuModel{
+ .name = "atxmega64d4",
+ .llvm_name = "atxmega64d4",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const atxmega8e5 = CpuModel{
+ .name = "atxmega8e5",
+ .llvm_name = "atxmega8e5",
+ .features = featureSet(&[_]Feature{
+ .xmegau,
+ }),
+ };
+ pub const avr1 = CpuModel{
+ .name = "avr1",
+ .llvm_name = "avr1",
+ .features = featureSet(&[_]Feature{
+ .avr1,
+ }),
+ };
+ pub const avr2 = CpuModel{
+ .name = "avr2",
+ .llvm_name = "avr2",
+ .features = featureSet(&[_]Feature{
+ .avr2,
+ }),
+ };
+ pub const avr25 = CpuModel{
+ .name = "avr25",
+ .llvm_name = "avr25",
+ .features = featureSet(&[_]Feature{
+ .avr25,
+ }),
+ };
+ pub const avr3 = CpuModel{
+ .name = "avr3",
+ .llvm_name = "avr3",
+ .features = featureSet(&[_]Feature{
+ .avr3,
+ }),
+ };
+ pub const avr31 = CpuModel{
+ .name = "avr31",
+ .llvm_name = "avr31",
+ .features = featureSet(&[_]Feature{
+ .avr31,
+ }),
+ };
+ pub const avr35 = CpuModel{
+ .name = "avr35",
+ .llvm_name = "avr35",
+ .features = featureSet(&[_]Feature{
+ .avr35,
+ }),
+ };
+ pub const avr4 = CpuModel{
+ .name = "avr4",
+ .llvm_name = "avr4",
+ .features = featureSet(&[_]Feature{
+ .avr4,
+ }),
+ };
+ pub const avr5 = CpuModel{
+ .name = "avr5",
+ .llvm_name = "avr5",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+ pub const avr51 = CpuModel{
+ .name = "avr51",
+ .llvm_name = "avr51",
+ .features = featureSet(&[_]Feature{
+ .avr51,
+ }),
+ };
+ pub const avr6 = CpuModel{
+ .name = "avr6",
+ .llvm_name = "avr6",
+ .features = featureSet(&[_]Feature{
+ .avr6,
+ }),
+ };
+ pub const avrtiny = CpuModel{
+ .name = "avrtiny",
+ .llvm_name = "avrtiny",
+ .features = featureSet(&[_]Feature{
+ .avrtiny,
+ }),
+ };
+ pub const avrxmega1 = CpuModel{
+ .name = "avrxmega1",
+ .llvm_name = "avrxmega1",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const avrxmega2 = CpuModel{
+ .name = "avrxmega2",
+ .llvm_name = "avrxmega2",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const avrxmega3 = CpuModel{
+ .name = "avrxmega3",
+ .llvm_name = "avrxmega3",
+ .features = featureSet(&[_]Feature{
+ .xmega3,
+ }),
+ };
+ pub const avrxmega4 = CpuModel{
+ .name = "avrxmega4",
+ .llvm_name = "avrxmega4",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const avrxmega5 = CpuModel{
+ .name = "avrxmega5",
+ .llvm_name = "avrxmega5",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const avrxmega6 = CpuModel{
+ .name = "avrxmega6",
+ .llvm_name = "avrxmega6",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const avrxmega7 = CpuModel{
+ .name = "avrxmega7",
+ .llvm_name = "avrxmega7",
+ .features = featureSet(&[_]Feature{
+ .xmega,
+ }),
+ };
+ pub const m3000 = CpuModel{
+ .name = "m3000",
+ .llvm_name = "m3000",
+ .features = featureSet(&[_]Feature{
+ .avr5,
+ }),
+ };
+};