10b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 20b57cec5SDimitry Andric// AVR Device Definitions 30b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 40b57cec5SDimitry Andric 50b57cec5SDimitry Andric// :TODO: Implement the skip errata, see `gcc/config/avr/avr-arch.h` for details 60b57cec5SDimitry Andric// :TODO: We define all devices with SRAM to have all variants of LD/ST/LDD/STD. 70b57cec5SDimitry Andric// In reality, avr1 (no SRAM) has one variant each of `LD` and `ST`. 80b57cec5SDimitry Andric// avr2 (with SRAM) adds the rest of the variants. 90b57cec5SDimitry Andric 100b57cec5SDimitry Andric// A feature set aggregates features, grouping them. We don't want to create a 110b57cec5SDimitry Andric// new member in AVRSubtarget (to store a value) for each set because we do not 120b57cec5SDimitry Andric// care if the set is supported, only the subfeatures inside the set. We fix 130b57cec5SDimitry Andric// this by simply setting the same dummy member for all feature sets, which is 140b57cec5SDimitry Andric// then ignored. 150b57cec5SDimitry Andricclass FeatureSet<string name, string desc, list<SubtargetFeature> i> 16*5f757f3fSDimitry Andric : SubtargetFeature<name, "HasFeatureSet"#NAME, "true", desc, i>; 170b57cec5SDimitry Andric 180b57cec5SDimitry Andric// A family of microcontrollers, defining a set of supported features. 190b57cec5SDimitry Andricclass Family<string name, list<SubtargetFeature> i> 20349cc55cSDimitry Andric : FeatureSet< 21349cc55cSDimitry Andric name, !strconcat("The device is a part of the ", name, " family"), i>; 220b57cec5SDimitry Andric 230b57cec5SDimitry Andric// The device has SRAM, and supports the bare minimum of 240b57cec5SDimitry Andric// SRAM-relevant instructions. 250b57cec5SDimitry Andric// 260b57cec5SDimitry Andric// These are: 270b57cec5SDimitry Andric// LD - all 9 variants 280b57cec5SDimitry Andric// ST - all 9 variants 290b57cec5SDimitry Andric// LDD - two variants for Y and Z 300b57cec5SDimitry Andric// STD - two variants for Y and Z 310b57cec5SDimitry Andric// `LDS Rd, K` 320b57cec5SDimitry Andric// `STS k, Rr` 330b57cec5SDimitry Andric// `PUSH`/`POP` 34*5f757f3fSDimitry Andricdef FeatureSRAM : SubtargetFeature<"sram", "HasSRAM", "true", 350b57cec5SDimitry Andric "The device has random access memory">; 360b57cec5SDimitry Andric 370b57cec5SDimitry Andric// The device supports the `JMP k` and `CALL k` instructions. 38*5f757f3fSDimitry Andricdef FeatureJMPCALL : SubtargetFeature<"jmpcall", "HasJMPCALL", "true", 390b57cec5SDimitry Andric "The device supports the `JMP` and " 400b57cec5SDimitry Andric "`CALL` instructions">; 410b57cec5SDimitry Andric 420b57cec5SDimitry Andric// The device supports the indirect branches `IJMP` and `ICALL`. 43*5f757f3fSDimitry Andricdef FeatureIJMPCALL : SubtargetFeature<"ijmpcall", "HasSRAMIJMPCALL", "true", 440b57cec5SDimitry Andric "The device supports `IJMP`/`ICALL`" 450b57cec5SDimitry Andric "instructions">; 460b57cec5SDimitry Andric 470b57cec5SDimitry Andric// The device supports the extended indirect branches `EIJMP` and `EICALL`. 48*5f757f3fSDimitry Andricdef FeatureEIJMPCALL : SubtargetFeature<"eijmpcall", "HasEIJMPCALL", "true", 49349cc55cSDimitry Andric "The device supports the " 500b57cec5SDimitry Andric "`EIJMP`/`EICALL` instructions">; 510b57cec5SDimitry Andric 520b57cec5SDimitry Andric// The device supports `ADDI Rd, K`, `SUBI Rd, K`. 53*5f757f3fSDimitry Andricdef FeatureADDSUBIW : SubtargetFeature<"addsubiw", "HasADDSUBIW", "true", 54349cc55cSDimitry Andric "Enable 16-bit register-immediate " 550b57cec5SDimitry Andric "addition and subtraction instructions">; 560b57cec5SDimitry Andric 570b57cec5SDimitry Andric// The device has an 8-bit stack pointer (SP) register. 58349cc55cSDimitry Andricdef FeatureSmallStack 59*5f757f3fSDimitry Andric : SubtargetFeature<"smallstack", "HasSmallStack", "true", 60349cc55cSDimitry Andric "The device has an 8-bit " 610b57cec5SDimitry Andric "stack pointer">; 620b57cec5SDimitry Andric 630b57cec5SDimitry Andric// The device supports the 16-bit GPR pair MOVW instruction. 64*5f757f3fSDimitry Andricdef FeatureMOVW : SubtargetFeature<"movw", "HasMOVW", "true", 650b57cec5SDimitry Andric "The device supports the 16-bit MOVW " 660b57cec5SDimitry Andric "instruction">; 670b57cec5SDimitry Andric 680b57cec5SDimitry Andric// The device supports the `LPM` instruction, with implied destination being r0. 69*5f757f3fSDimitry Andricdef FeatureLPM : SubtargetFeature<"lpm", "HasLPM", "true", 700b57cec5SDimitry Andric "The device supports the `LPM` instruction">; 710b57cec5SDimitry Andric 720b57cec5SDimitry Andric// The device supports the `LPM Rd, Z[+] instruction. 73*5f757f3fSDimitry Andricdef FeatureLPMX : SubtargetFeature<"lpmx", "HasLPMX", "true", 740b57cec5SDimitry Andric "The device supports the `LPM Rd, Z[+]` " 750b57cec5SDimitry Andric "instruction">; 760b57cec5SDimitry Andric 770b57cec5SDimitry Andric// The device supports the `ELPM` instruction. 78*5f757f3fSDimitry Andricdef FeatureELPM : SubtargetFeature<"elpm", "HasELPM", "true", 790b57cec5SDimitry Andric "The device supports the ELPM instruction">; 800b57cec5SDimitry Andric 810b57cec5SDimitry Andric// The device supports the `ELPM Rd, Z[+]` instructions. 82*5f757f3fSDimitry Andricdef FeatureELPMX : SubtargetFeature<"elpmx", "HasELPMX", "true", 830b57cec5SDimitry Andric "The device supports the `ELPM Rd, Z[+]` " 840b57cec5SDimitry Andric "instructions">; 850b57cec5SDimitry Andric 860b57cec5SDimitry Andric// The device supports the `SPM` instruction. 87*5f757f3fSDimitry Andricdef FeatureSPM : SubtargetFeature<"spm", "HasSPM", "true", 880b57cec5SDimitry Andric "The device supports the `SPM` instruction">; 890b57cec5SDimitry Andric 900b57cec5SDimitry Andric// The device supports the `SPM Z+` instruction. 91*5f757f3fSDimitry Andricdef FeatureSPMX : SubtargetFeature<"spmx", "HasSPMX", "true", 920b57cec5SDimitry Andric "The device supports the `SPM Z+` " 930b57cec5SDimitry Andric "instruction">; 940b57cec5SDimitry Andric 950b57cec5SDimitry Andric// The device supports the `DES k` instruction. 96*5f757f3fSDimitry Andricdef FeatureDES : SubtargetFeature<"des", "HasDES", "true", 970b57cec5SDimitry Andric "The device supports the `DES k` encryption " 980b57cec5SDimitry Andric "instruction">; 990b57cec5SDimitry Andric 1000b57cec5SDimitry Andric// The device supports the Read-Write-Modify instructions 1010b57cec5SDimitry Andric// XCH, LAS, LAC, and LAT. 102*5f757f3fSDimitry Andricdef FeatureRMW : SubtargetFeature<"rmw", "SupportsRMW", "true", 1030b57cec5SDimitry Andric "The device supports the read-write-modify " 1040b57cec5SDimitry Andric "instructions: XCH, LAS, LAC, LAT">; 1050b57cec5SDimitry Andric 1060b57cec5SDimitry Andric// The device supports the `[F]MUL[S][U]` family of instructions. 107349cc55cSDimitry Andricdef FeatureMultiplication 108*5f757f3fSDimitry Andric : SubtargetFeature<"mul", "SupportsMultiplication", "true", 109349cc55cSDimitry Andric "The device supports the " 1100b57cec5SDimitry Andric "multiplication instructions">; 1110b57cec5SDimitry Andric 1120b57cec5SDimitry Andric// The device supports the `BREAK` instruction. 113*5f757f3fSDimitry Andricdef FeatureBREAK : SubtargetFeature<"break", "HasBREAK", "true", 1140b57cec5SDimitry Andric "The device supports the `BREAK` debugging " 1150b57cec5SDimitry Andric "instruction">; 1160b57cec5SDimitry Andric 1170b57cec5SDimitry Andric// The device has instruction encodings specific to the Tiny core. 118349cc55cSDimitry Andricdef FeatureTinyEncoding 119*5f757f3fSDimitry Andric : SubtargetFeature<"tinyencoding", "HasTinyEncoding", "true", 1200b57cec5SDimitry Andric "The device has Tiny core specific " 1210b57cec5SDimitry Andric "instruction encodings">; 1220b57cec5SDimitry Andric 12306c3fb27SDimitry Andric// When writing a 16-bit port or storing a 16-bit word, do the low byte first. 12406c3fb27SDimitry Andricdef FeatureLowByteFirst 125*5f757f3fSDimitry Andric : SubtargetFeature<"lowbytefirst", "HasLowByteFirst", "true", 12606c3fb27SDimitry Andric "Do the low byte first when writing a 16-bit port or " 12706c3fb27SDimitry Andric "storing a 16-bit word">; 12806c3fb27SDimitry Andric 1295ffd83dbSDimitry Andric// The device has CPU registers mapped in data address space 130*5f757f3fSDimitry Andricdef FeatureMMR : SubtargetFeature<"memmappedregs", "HasMemMappedGPR", "true", 131349cc55cSDimitry Andric "The device has CPU registers " 1325ffd83dbSDimitry Andric "mapped in data address space">; 1335ffd83dbSDimitry Andric 134349cc55cSDimitry Andricclass ELFArch<string name> 135349cc55cSDimitry Andric : SubtargetFeature<"", "ELFArch", !strconcat("ELF::", name), "">; 1360b57cec5SDimitry Andric 1370b57cec5SDimitry Andric// ELF e_flags architecture values 1380b57cec5SDimitry Andricdef ELFArchAVR1 : ELFArch<"EF_AVR_ARCH_AVR1">; 1390b57cec5SDimitry Andricdef ELFArchAVR2 : ELFArch<"EF_AVR_ARCH_AVR2">; 1400b57cec5SDimitry Andricdef ELFArchAVR25 : ELFArch<"EF_AVR_ARCH_AVR25">; 1410b57cec5SDimitry Andricdef ELFArchAVR3 : ELFArch<"EF_AVR_ARCH_AVR3">; 1420b57cec5SDimitry Andricdef ELFArchAVR31 : ELFArch<"EF_AVR_ARCH_AVR31">; 1430b57cec5SDimitry Andricdef ELFArchAVR35 : ELFArch<"EF_AVR_ARCH_AVR35">; 1440b57cec5SDimitry Andricdef ELFArchAVR4 : ELFArch<"EF_AVR_ARCH_AVR4">; 1450b57cec5SDimitry Andricdef ELFArchAVR5 : ELFArch<"EF_AVR_ARCH_AVR5">; 1460b57cec5SDimitry Andricdef ELFArchAVR51 : ELFArch<"EF_AVR_ARCH_AVR51">; 1470b57cec5SDimitry Andricdef ELFArchAVR6 : ELFArch<"EF_AVR_ARCH_AVR6">; 1480b57cec5SDimitry Andricdef ELFArchTiny : ELFArch<"EF_AVR_ARCH_AVRTINY">; 1490b57cec5SDimitry Andricdef ELFArchXMEGA1 : ELFArch<"EF_AVR_ARCH_XMEGA1">; 1500b57cec5SDimitry Andricdef ELFArchXMEGA2 : ELFArch<"EF_AVR_ARCH_XMEGA2">; 1510b57cec5SDimitry Andricdef ELFArchXMEGA3 : ELFArch<"EF_AVR_ARCH_XMEGA3">; 1520b57cec5SDimitry Andricdef ELFArchXMEGA4 : ELFArch<"EF_AVR_ARCH_XMEGA4">; 1530b57cec5SDimitry Andricdef ELFArchXMEGA5 : ELFArch<"EF_AVR_ARCH_XMEGA5">; 1540b57cec5SDimitry Andricdef ELFArchXMEGA6 : ELFArch<"EF_AVR_ARCH_XMEGA6">; 1550b57cec5SDimitry Andricdef ELFArchXMEGA7 : ELFArch<"EF_AVR_ARCH_XMEGA7">; 1560b57cec5SDimitry Andric 1570b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 1580b57cec5SDimitry Andric// AVR Families 1590b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 1600b57cec5SDimitry Andric 1610b57cec5SDimitry Andric// The device has at least the bare minimum that **every** single AVR 1620b57cec5SDimitry Andric// device should have. 1630b57cec5SDimitry Andricdef FamilyAVR0 : Family<"avr0", []>; 1640b57cec5SDimitry Andric 16506c3fb27SDimitry Andricdef FamilyAVR1 : Family<"avr1", [FamilyAVR0, FeatureLPM, FeatureMMR]>; 1660b57cec5SDimitry Andric 167349cc55cSDimitry Andricdef FamilyAVR2 168349cc55cSDimitry Andric : Family<"avr2", 169349cc55cSDimitry Andric [FamilyAVR1, FeatureIJMPCALL, FeatureADDSUBIW, FeatureSRAM]>; 1700b57cec5SDimitry Andric 171349cc55cSDimitry Andricdef FamilyAVR25 172349cc55cSDimitry Andric : Family<"avr25", 173349cc55cSDimitry Andric [FamilyAVR2, FeatureMOVW, FeatureLPMX, FeatureSPM, FeatureBREAK]>; 1740b57cec5SDimitry Andric 175349cc55cSDimitry Andricdef FamilyAVR3 : Family<"avr3", [FamilyAVR2, FeatureJMPCALL]>; 1760b57cec5SDimitry Andric 177349cc55cSDimitry Andricdef FamilyAVR31 : Family<"avr31", [FamilyAVR3, FeatureELPM]>; 1780b57cec5SDimitry Andric 179349cc55cSDimitry Andricdef FamilyAVR35 180349cc55cSDimitry Andric : Family<"avr35", 181349cc55cSDimitry Andric [FamilyAVR3, FeatureMOVW, FeatureLPMX, FeatureSPM, FeatureBREAK]>; 1820b57cec5SDimitry Andric 18381ad6265SDimitry Andricdef FamilyAVR4 : Family<"avr4", 18481ad6265SDimitry Andric [FamilyAVR2, FeatureMultiplication, FeatureMOVW, 18581ad6265SDimitry Andric FeatureLPMX, FeatureSPM, FeatureBREAK]>; 1860b57cec5SDimitry Andric 18781ad6265SDimitry Andricdef FamilyAVR5 : Family<"avr5", 18881ad6265SDimitry Andric [FamilyAVR3, FeatureMultiplication, FeatureMOVW, 18981ad6265SDimitry Andric FeatureLPMX, FeatureSPM, FeatureBREAK]>; 1900b57cec5SDimitry Andric 191349cc55cSDimitry Andricdef FamilyAVR51 : Family<"avr51", [FamilyAVR5, FeatureELPM, FeatureELPMX]>; 1920b57cec5SDimitry Andric 193bdd1243dSDimitry Andricdef FamilyAVR6 : Family<"avr6", [FamilyAVR51, FeatureEIJMPCALL]>; 1940b57cec5SDimitry Andric 195349cc55cSDimitry Andricdef FamilyTiny 196349cc55cSDimitry Andric : Family<"avrtiny", 19781ad6265SDimitry Andric [FamilyAVR0, FeatureBREAK, FeatureSRAM, FeatureTinyEncoding, 19881ad6265SDimitry Andric FeatureSmallStack]>; 1990b57cec5SDimitry Andric 20081ad6265SDimitry Andricdef FamilyXMEGA3 : Family<"xmega3", 20106c3fb27SDimitry Andric [FamilyAVR0, FeatureLPM, FeatureIJMPCALL, 20281ad6265SDimitry Andric FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL, 20381ad6265SDimitry Andric FeatureMultiplication, FeatureMOVW, FeatureLPMX, 20406c3fb27SDimitry Andric FeatureBREAK, FeatureLowByteFirst]>; 20581ad6265SDimitry Andric 20681ad6265SDimitry Andricdef FamilyXMEGA : Family<"xmega", 20706c3fb27SDimitry Andric [FamilyAVR0, FeatureLPM, FeatureIJMPCALL, 20881ad6265SDimitry Andric FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL, 20981ad6265SDimitry Andric FeatureMultiplication, FeatureMOVW, FeatureLPMX, 21081ad6265SDimitry Andric FeatureSPM, FeatureBREAK, FeatureEIJMPCALL, 21106c3fb27SDimitry Andric FeatureSPMX, FeatureDES, FeatureELPM, FeatureELPMX, 21206c3fb27SDimitry Andric FeatureLowByteFirst]>; 2130b57cec5SDimitry Andric 214349cc55cSDimitry Andricdef FamilyXMEGAU : Family<"xmegau", [FamilyXMEGA, FeatureRMW]>; 2150b57cec5SDimitry Andric 216349cc55cSDimitry Andricdef FeatureSetSpecial 217349cc55cSDimitry Andric : FeatureSet<"special", 2180b57cec5SDimitry Andric "Enable use of the entire instruction " 2190b57cec5SDimitry Andric "set - used for debugging", 220349cc55cSDimitry Andric [ 221349cc55cSDimitry Andric FeatureSRAM, FeatureJMPCALL, FeatureIJMPCALL, 222349cc55cSDimitry Andric FeatureEIJMPCALL, FeatureADDSUBIW, FeatureMOVW, FeatureLPM, 223349cc55cSDimitry Andric FeatureLPMX, FeatureELPM, FeatureELPMX, FeatureSPM, 224349cc55cSDimitry Andric FeatureSPMX, FeatureDES, FeatureRMW, FeatureMultiplication, 225349cc55cSDimitry Andric FeatureBREAK, FeatureMMR 226349cc55cSDimitry Andric ]>; 2270b57cec5SDimitry Andric 2280b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 2290b57cec5SDimitry Andric// AVR microcontrollers supported. 2300b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 2310b57cec5SDimitry Andric 2320b57cec5SDimitry Andricclass Device<string Name, Family Fam, ELFArch Arch, 2330b57cec5SDimitry Andric list<SubtargetFeature> ExtraFeatures = []> 2340b57cec5SDimitry Andric : Processor<Name, NoItineraries, !listconcat([Fam, Arch], ExtraFeatures)>; 2350b57cec5SDimitry Andric 2360b57cec5SDimitry Andric// Generic MCUs 2370b57cec5SDimitry Andric// Note that several versions of GCC has strange ELF architecture 2380b57cec5SDimitry Andric// settings for backwards compatibility - see `gas/config/tc-avr.c` 2390b57cec5SDimitry Andric// in AVR binutils. We do not replicate this. 2400b57cec5SDimitry Andricdef : Device<"avr1", FamilyAVR1, ELFArchAVR1>; 2410b57cec5SDimitry Andricdef : Device<"avr2", FamilyAVR2, ELFArchAVR2>; 2420b57cec5SDimitry Andricdef : Device<"avr25", FamilyAVR25, ELFArchAVR25>; 2430b57cec5SDimitry Andricdef : Device<"avr3", FamilyAVR3, ELFArchAVR3>; 2440b57cec5SDimitry Andricdef : Device<"avr31", FamilyAVR31, ELFArchAVR31>; 2450b57cec5SDimitry Andricdef : Device<"avr35", FamilyAVR35, ELFArchAVR35>; 2460b57cec5SDimitry Andricdef : Device<"avr4", FamilyAVR4, ELFArchAVR4>; 2470b57cec5SDimitry Andricdef : Device<"avr5", FamilyAVR5, ELFArchAVR5>; 2480b57cec5SDimitry Andricdef : Device<"avr51", FamilyAVR51, ELFArchAVR51>; 2490b57cec5SDimitry Andricdef : Device<"avr6", FamilyAVR6, ELFArchAVR6>; 2500b57cec5SDimitry Andricdef : Device<"avrxmega1", FamilyXMEGA, ELFArchXMEGA1>; 2510b57cec5SDimitry Andricdef : Device<"avrxmega2", FamilyXMEGA, ELFArchXMEGA2>; 25281ad6265SDimitry Andricdef : Device<"avrxmega3", FamilyXMEGA3, ELFArchXMEGA3>; 2530b57cec5SDimitry Andricdef : Device<"avrxmega4", FamilyXMEGA, ELFArchXMEGA4>; 2540b57cec5SDimitry Andricdef : Device<"avrxmega5", FamilyXMEGA, ELFArchXMEGA5>; 2550b57cec5SDimitry Andricdef : Device<"avrxmega6", FamilyXMEGA, ELFArchXMEGA6>; 2560b57cec5SDimitry Andricdef : Device<"avrxmega7", FamilyXMEGA, ELFArchXMEGA7>; 2570b57cec5SDimitry Andricdef : Device<"avrtiny", FamilyTiny, ELFArchTiny>; 2580b57cec5SDimitry Andric 2590b57cec5SDimitry Andric// Specific MCUs 26081ad6265SDimitry Andric// NOTE: This list has been synchronized with gcc-avr 5.4.0 and avr-libc 2.0.0. 26181ad6265SDimitry Andricdef : Device<"at90s1200", FamilyAVR0, ELFArchAVR1, [FeatureSmallStack]>; 26281ad6265SDimitry Andricdef : Device<"attiny11", FamilyAVR1, ELFArchAVR1, [FeatureSmallStack]>; 26381ad6265SDimitry Andricdef : Device<"attiny12", FamilyAVR1, ELFArchAVR1, [FeatureSmallStack]>; 26481ad6265SDimitry Andricdef : Device<"attiny15", FamilyAVR1, ELFArchAVR1, [FeatureSmallStack]>; 26581ad6265SDimitry Andricdef : Device<"attiny28", FamilyAVR1, ELFArchAVR1, [FeatureSmallStack]>; 26681ad6265SDimitry Andricdef : Device<"at90s2313", FamilyAVR2, ELFArchAVR2, [FeatureSmallStack]>; 26781ad6265SDimitry Andricdef : Device<"at90s2323", FamilyAVR2, ELFArchAVR2, [FeatureSmallStack]>; 26881ad6265SDimitry Andricdef : Device<"at90s2333", FamilyAVR2, ELFArchAVR2, [FeatureSmallStack]>; 26981ad6265SDimitry Andricdef : Device<"at90s2343", FamilyAVR2, ELFArchAVR2, [FeatureSmallStack]>; 27081ad6265SDimitry Andricdef : Device<"attiny22", FamilyAVR2, ELFArchAVR2, [FeatureSmallStack]>; 27181ad6265SDimitry Andricdef : Device<"attiny26", FamilyAVR2, ELFArchAVR2, 27281ad6265SDimitry Andric [FeatureLPMX, FeatureSmallStack]>; 273349cc55cSDimitry Andricdef : Device<"at86rf401", FamilyAVR2, ELFArchAVR25, [FeatureMOVW, FeatureLPMX]>; 27481ad6265SDimitry Andricdef : Device<"at90s4414", FamilyAVR2, ELFArchAVR2, [FeatureSmallStack]>; 27581ad6265SDimitry Andricdef : Device<"at90s4433", FamilyAVR2, ELFArchAVR2, [FeatureSmallStack]>; 27681ad6265SDimitry Andricdef : Device<"at90s4434", FamilyAVR2, ELFArchAVR2, [FeatureSmallStack]>; 2770b57cec5SDimitry Andricdef : Device<"at90s8515", FamilyAVR2, ELFArchAVR2>; 2780b57cec5SDimitry Andricdef : Device<"at90c8534", FamilyAVR2, ELFArchAVR2>; 2790b57cec5SDimitry Andricdef : Device<"at90s8535", FamilyAVR2, ELFArchAVR2>; 2800b57cec5SDimitry Andricdef : Device<"ata5272", FamilyAVR25, ELFArchAVR25>; 28181ad6265SDimitry Andricdef : Device<"ata6616c", FamilyAVR25, ELFArchAVR25>; 28281ad6265SDimitry Andricdef : Device<"attiny13", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; 28381ad6265SDimitry Andricdef : Device<"attiny13a", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; 28481ad6265SDimitry Andricdef : Device<"attiny2313", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; 28581ad6265SDimitry Andricdef : Device<"attiny2313a", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; 28681ad6265SDimitry Andricdef : Device<"attiny24", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; 28781ad6265SDimitry Andricdef : Device<"attiny24a", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; 2880b57cec5SDimitry Andricdef : Device<"attiny4313", FamilyAVR25, ELFArchAVR25>; 2890b57cec5SDimitry Andricdef : Device<"attiny44", FamilyAVR25, ELFArchAVR25>; 2900b57cec5SDimitry Andricdef : Device<"attiny44a", FamilyAVR25, ELFArchAVR25>; 2910b57cec5SDimitry Andricdef : Device<"attiny84", FamilyAVR25, ELFArchAVR25>; 2920b57cec5SDimitry Andricdef : Device<"attiny84a", FamilyAVR25, ELFArchAVR25>; 29381ad6265SDimitry Andricdef : Device<"attiny25", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; 2940b57cec5SDimitry Andricdef : Device<"attiny45", FamilyAVR25, ELFArchAVR25>; 2950b57cec5SDimitry Andricdef : Device<"attiny85", FamilyAVR25, ELFArchAVR25>; 29681ad6265SDimitry Andricdef : Device<"attiny261", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; 29781ad6265SDimitry Andricdef : Device<"attiny261a", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; 298e8d8bef9SDimitry Andricdef : Device<"attiny441", FamilyAVR25, ELFArchAVR25>; 2990b57cec5SDimitry Andricdef : Device<"attiny461", FamilyAVR25, ELFArchAVR25>; 3000b57cec5SDimitry Andricdef : Device<"attiny461a", FamilyAVR25, ELFArchAVR25>; 301e8d8bef9SDimitry Andricdef : Device<"attiny841", FamilyAVR25, ELFArchAVR25>; 3020b57cec5SDimitry Andricdef : Device<"attiny861", FamilyAVR25, ELFArchAVR25>; 3030b57cec5SDimitry Andricdef : Device<"attiny861a", FamilyAVR25, ELFArchAVR25>; 3040b57cec5SDimitry Andricdef : Device<"attiny87", FamilyAVR25, ELFArchAVR25>; 3050b57cec5SDimitry Andricdef : Device<"attiny43u", FamilyAVR25, ELFArchAVR25>; 3060b57cec5SDimitry Andricdef : Device<"attiny48", FamilyAVR25, ELFArchAVR25>; 3070b57cec5SDimitry Andricdef : Device<"attiny88", FamilyAVR25, ELFArchAVR25>; 3080b57cec5SDimitry Andricdef : Device<"attiny828", FamilyAVR25, ELFArchAVR25>; 3090b57cec5SDimitry Andricdef : Device<"at43usb355", FamilyAVR3, ELFArchAVR3>; 3100b57cec5SDimitry Andricdef : Device<"at76c711", FamilyAVR3, ELFArchAVR3>; 3110b57cec5SDimitry Andricdef : Device<"atmega103", FamilyAVR31, ELFArchAVR31>; 3120b57cec5SDimitry Andricdef : Device<"at43usb320", FamilyAVR31, ELFArchAVR31>; 3130b57cec5SDimitry Andricdef : Device<"attiny167", FamilyAVR35, ELFArchAVR35>; 3140b57cec5SDimitry Andricdef : Device<"at90usb82", FamilyAVR35, ELFArchAVR35>; 3150b57cec5SDimitry Andricdef : Device<"at90usb162", FamilyAVR35, ELFArchAVR35>; 3160b57cec5SDimitry Andricdef : Device<"ata5505", FamilyAVR35, ELFArchAVR35>; 31781ad6265SDimitry Andricdef : Device<"ata6617c", FamilyAVR35, ELFArchAVR35>; 31881ad6265SDimitry Andricdef : Device<"ata664251", FamilyAVR35, ELFArchAVR35>; 3190b57cec5SDimitry Andricdef : Device<"atmega8u2", FamilyAVR35, ELFArchAVR35>; 3200b57cec5SDimitry Andricdef : Device<"atmega16u2", FamilyAVR35, ELFArchAVR35>; 3210b57cec5SDimitry Andricdef : Device<"atmega32u2", FamilyAVR35, ELFArchAVR35>; 3220b57cec5SDimitry Andricdef : Device<"attiny1634", FamilyAVR35, ELFArchAVR35>; 323e8d8bef9SDimitry Andricdef : Device<"atmega8", FamilyAVR2, ELFArchAVR4, 324e8d8bef9SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX, FeatureSPM]>; 3250b57cec5SDimitry Andricdef : Device<"ata6289", FamilyAVR4, ELFArchAVR4>; 326e8d8bef9SDimitry Andricdef : Device<"atmega8a", FamilyAVR2, ELFArchAVR4, 327e8d8bef9SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX, FeatureSPM]>; 3280b57cec5SDimitry Andricdef : Device<"ata6285", FamilyAVR4, ELFArchAVR4>; 3290b57cec5SDimitry Andricdef : Device<"ata6286", FamilyAVR4, ELFArchAVR4>; 33081ad6265SDimitry Andricdef : Device<"ata6612c", FamilyAVR4, ELFArchAVR4>; 3310b57cec5SDimitry Andricdef : Device<"atmega48", FamilyAVR4, ELFArchAVR4>; 3320b57cec5SDimitry Andricdef : Device<"atmega48a", FamilyAVR4, ELFArchAVR4>; 3330b57cec5SDimitry Andricdef : Device<"atmega48pa", FamilyAVR4, ELFArchAVR4>; 334e8d8bef9SDimitry Andricdef : Device<"atmega48pb", FamilyAVR4, ELFArchAVR4>; 3350b57cec5SDimitry Andricdef : Device<"atmega48p", FamilyAVR4, ELFArchAVR4>; 3360b57cec5SDimitry Andricdef : Device<"atmega88", FamilyAVR4, ELFArchAVR4>; 3370b57cec5SDimitry Andricdef : Device<"atmega88a", FamilyAVR4, ELFArchAVR4>; 3380b57cec5SDimitry Andricdef : Device<"atmega88p", FamilyAVR4, ELFArchAVR4>; 3390b57cec5SDimitry Andricdef : Device<"atmega88pa", FamilyAVR4, ELFArchAVR4>; 340e8d8bef9SDimitry Andricdef : Device<"atmega88pb", FamilyAVR4, ELFArchAVR4>; 3410b57cec5SDimitry Andricdef : Device<"atmega8515", FamilyAVR2, ELFArchAVR4, 3420b57cec5SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX, FeatureSPM]>; 3430b57cec5SDimitry Andricdef : Device<"atmega8535", FamilyAVR2, ELFArchAVR4, 3440b57cec5SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX, FeatureSPM]>; 3450b57cec5SDimitry Andricdef : Device<"atmega8hva", FamilyAVR4, ELFArchAVR4>; 3460b57cec5SDimitry Andricdef : Device<"at90pwm1", FamilyAVR4, ELFArchAVR4>; 3470b57cec5SDimitry Andricdef : Device<"at90pwm2", FamilyAVR4, ELFArchAVR4>; 3480b57cec5SDimitry Andricdef : Device<"at90pwm2b", FamilyAVR4, ELFArchAVR4>; 3490b57cec5SDimitry Andricdef : Device<"at90pwm3", FamilyAVR4, ELFArchAVR4>; 3500b57cec5SDimitry Andricdef : Device<"at90pwm3b", FamilyAVR4, ELFArchAVR4>; 3510b57cec5SDimitry Andricdef : Device<"at90pwm81", FamilyAVR4, ELFArchAVR4>; 35281ad6265SDimitry Andricdef : Device<"ata5702m322", FamilyAVR5, ELFArchAVR5>; 35381ad6265SDimitry Andricdef : Device<"ata5782", FamilyAVR5, ELFArchAVR5>; 3540b57cec5SDimitry Andricdef : Device<"ata5790", FamilyAVR5, ELFArchAVR5>; 35581ad6265SDimitry Andricdef : Device<"ata5790n", FamilyAVR5, ELFArchAVR5>; 35681ad6265SDimitry Andricdef : Device<"ata5791", FamilyAVR5, ELFArchAVR5>; 3570b57cec5SDimitry Andricdef : Device<"ata5795", FamilyAVR5, ELFArchAVR5>; 35881ad6265SDimitry Andricdef : Device<"ata5831", FamilyAVR5, ELFArchAVR5>; 35981ad6265SDimitry Andricdef : Device<"ata6613c", FamilyAVR5, ELFArchAVR5>; 36081ad6265SDimitry Andricdef : Device<"ata6614q", FamilyAVR5, ELFArchAVR5>; 36181ad6265SDimitry Andricdef : Device<"ata8210", FamilyAVR5, ELFArchAVR5>; 36281ad6265SDimitry Andricdef : Device<"ata8510", FamilyAVR5, ELFArchAVR5>; 3630b57cec5SDimitry Andricdef : Device<"atmega16", FamilyAVR5, ELFArchAVR5>; 3640b57cec5SDimitry Andricdef : Device<"atmega16a", FamilyAVR5, ELFArchAVR5>; 3650b57cec5SDimitry Andricdef : Device<"atmega161", FamilyAVR3, ELFArchAVR5, 3660b57cec5SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX, FeatureSPM]>; 3670b57cec5SDimitry Andricdef : Device<"atmega162", FamilyAVR5, ELFArchAVR5>; 3680b57cec5SDimitry Andricdef : Device<"atmega163", FamilyAVR3, ELFArchAVR5, 3690b57cec5SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX, FeatureSPM]>; 3700b57cec5SDimitry Andricdef : Device<"atmega164a", FamilyAVR5, ELFArchAVR5>; 3710b57cec5SDimitry Andricdef : Device<"atmega164p", FamilyAVR5, ELFArchAVR5>; 3720b57cec5SDimitry Andricdef : Device<"atmega164pa", FamilyAVR5, ELFArchAVR5>; 3730b57cec5SDimitry Andricdef : Device<"atmega165", FamilyAVR5, ELFArchAVR5>; 3740b57cec5SDimitry Andricdef : Device<"atmega165a", FamilyAVR5, ELFArchAVR5>; 3750b57cec5SDimitry Andricdef : Device<"atmega165p", FamilyAVR5, ELFArchAVR5>; 3760b57cec5SDimitry Andricdef : Device<"atmega165pa", FamilyAVR5, ELFArchAVR5>; 3770b57cec5SDimitry Andricdef : Device<"atmega168", FamilyAVR5, ELFArchAVR5>; 3780b57cec5SDimitry Andricdef : Device<"atmega168a", FamilyAVR5, ELFArchAVR5>; 3790b57cec5SDimitry Andricdef : Device<"atmega168p", FamilyAVR5, ELFArchAVR5>; 3800b57cec5SDimitry Andricdef : Device<"atmega168pa", FamilyAVR5, ELFArchAVR5>; 381e8d8bef9SDimitry Andricdef : Device<"atmega168pb", FamilyAVR5, ELFArchAVR5>; 3820b57cec5SDimitry Andricdef : Device<"atmega169", FamilyAVR5, ELFArchAVR5>; 3830b57cec5SDimitry Andricdef : Device<"atmega169a", FamilyAVR5, ELFArchAVR5>; 3840b57cec5SDimitry Andricdef : Device<"atmega169p", FamilyAVR5, ELFArchAVR5>; 3850b57cec5SDimitry Andricdef : Device<"atmega169pa", FamilyAVR5, ELFArchAVR5>; 3860b57cec5SDimitry Andricdef : Device<"atmega32", FamilyAVR5, ELFArchAVR5>; 3870b57cec5SDimitry Andricdef : Device<"atmega32a", FamilyAVR5, ELFArchAVR5>; 3880b57cec5SDimitry Andricdef : Device<"atmega323", FamilyAVR5, ELFArchAVR5>; 3890b57cec5SDimitry Andricdef : Device<"atmega324a", FamilyAVR5, ELFArchAVR5>; 3900b57cec5SDimitry Andricdef : Device<"atmega324p", FamilyAVR5, ELFArchAVR5>; 3910b57cec5SDimitry Andricdef : Device<"atmega324pa", FamilyAVR5, ELFArchAVR5>; 392e8d8bef9SDimitry Andricdef : Device<"atmega324pb", FamilyAVR5, ELFArchAVR5>; 3930b57cec5SDimitry Andricdef : Device<"atmega325", FamilyAVR5, ELFArchAVR5>; 3940b57cec5SDimitry Andricdef : Device<"atmega325a", FamilyAVR5, ELFArchAVR5>; 3950b57cec5SDimitry Andricdef : Device<"atmega325p", FamilyAVR5, ELFArchAVR5>; 3960b57cec5SDimitry Andricdef : Device<"atmega325pa", FamilyAVR5, ELFArchAVR5>; 3970b57cec5SDimitry Andricdef : Device<"atmega3250", FamilyAVR5, ELFArchAVR5>; 3980b57cec5SDimitry Andricdef : Device<"atmega3250a", FamilyAVR5, ELFArchAVR5>; 3990b57cec5SDimitry Andricdef : Device<"atmega3250p", FamilyAVR5, ELFArchAVR5>; 4000b57cec5SDimitry Andricdef : Device<"atmega3250pa", FamilyAVR5, ELFArchAVR5>; 4010b57cec5SDimitry Andricdef : Device<"atmega328", FamilyAVR5, ELFArchAVR5>; 4020b57cec5SDimitry Andricdef : Device<"atmega328p", FamilyAVR5, ELFArchAVR5>; 403e8d8bef9SDimitry Andricdef : Device<"atmega328pb", FamilyAVR5, ELFArchAVR5>; 4040b57cec5SDimitry Andricdef : Device<"atmega329", FamilyAVR5, ELFArchAVR5>; 4050b57cec5SDimitry Andricdef : Device<"atmega329a", FamilyAVR5, ELFArchAVR5>; 4060b57cec5SDimitry Andricdef : Device<"atmega329p", FamilyAVR5, ELFArchAVR5>; 4070b57cec5SDimitry Andricdef : Device<"atmega329pa", FamilyAVR5, ELFArchAVR5>; 4080b57cec5SDimitry Andricdef : Device<"atmega3290", FamilyAVR5, ELFArchAVR5>; 4090b57cec5SDimitry Andricdef : Device<"atmega3290a", FamilyAVR5, ELFArchAVR5>; 4100b57cec5SDimitry Andricdef : Device<"atmega3290p", FamilyAVR5, ELFArchAVR5>; 4110b57cec5SDimitry Andricdef : Device<"atmega3290pa", FamilyAVR5, ELFArchAVR5>; 4120b57cec5SDimitry Andricdef : Device<"atmega406", FamilyAVR5, ELFArchAVR5>; 4130b57cec5SDimitry Andricdef : Device<"atmega64", FamilyAVR5, ELFArchAVR5>; 4140b57cec5SDimitry Andricdef : Device<"atmega64a", FamilyAVR5, ELFArchAVR5>; 4150b57cec5SDimitry Andricdef : Device<"atmega640", FamilyAVR5, ELFArchAVR5>; 4160b57cec5SDimitry Andricdef : Device<"atmega644", FamilyAVR5, ELFArchAVR5>; 4170b57cec5SDimitry Andricdef : Device<"atmega644a", FamilyAVR5, ELFArchAVR5>; 4180b57cec5SDimitry Andricdef : Device<"atmega644p", FamilyAVR5, ELFArchAVR5>; 4190b57cec5SDimitry Andricdef : Device<"atmega644pa", FamilyAVR5, ELFArchAVR5>; 4200b57cec5SDimitry Andricdef : Device<"atmega645", FamilyAVR5, ELFArchAVR5>; 4210b57cec5SDimitry Andricdef : Device<"atmega645a", FamilyAVR5, ELFArchAVR5>; 4220b57cec5SDimitry Andricdef : Device<"atmega645p", FamilyAVR5, ELFArchAVR5>; 4230b57cec5SDimitry Andricdef : Device<"atmega649", FamilyAVR5, ELFArchAVR5>; 4240b57cec5SDimitry Andricdef : Device<"atmega649a", FamilyAVR5, ELFArchAVR5>; 4250b57cec5SDimitry Andricdef : Device<"atmega649p", FamilyAVR5, ELFArchAVR5>; 4260b57cec5SDimitry Andricdef : Device<"atmega6450", FamilyAVR5, ELFArchAVR5>; 4270b57cec5SDimitry Andricdef : Device<"atmega6450a", FamilyAVR5, ELFArchAVR5>; 4280b57cec5SDimitry Andricdef : Device<"atmega6450p", FamilyAVR5, ELFArchAVR5>; 4290b57cec5SDimitry Andricdef : Device<"atmega6490", FamilyAVR5, ELFArchAVR5>; 4300b57cec5SDimitry Andricdef : Device<"atmega6490a", FamilyAVR5, ELFArchAVR5>; 4310b57cec5SDimitry Andricdef : Device<"atmega6490p", FamilyAVR5, ELFArchAVR5>; 4320b57cec5SDimitry Andricdef : Device<"atmega64rfr2", FamilyAVR5, ELFArchAVR5>; 4330b57cec5SDimitry Andricdef : Device<"atmega644rfr2", FamilyAVR5, ELFArchAVR5>; 4340b57cec5SDimitry Andricdef : Device<"atmega16hva", FamilyAVR5, ELFArchAVR5>; 4350b57cec5SDimitry Andricdef : Device<"atmega16hva2", FamilyAVR5, ELFArchAVR5>; 4360b57cec5SDimitry Andricdef : Device<"atmega16hvb", FamilyAVR5, ELFArchAVR5>; 4370b57cec5SDimitry Andricdef : Device<"atmega16hvbrevb", FamilyAVR5, ELFArchAVR5>; 4380b57cec5SDimitry Andricdef : Device<"atmega32hvb", FamilyAVR5, ELFArchAVR5>; 4390b57cec5SDimitry Andricdef : Device<"atmega32hvbrevb", FamilyAVR5, ELFArchAVR5>; 4400b57cec5SDimitry Andricdef : Device<"atmega64hve", FamilyAVR5, ELFArchAVR5>; 44181ad6265SDimitry Andricdef : Device<"atmega64hve2", FamilyAVR5, ELFArchAVR5>; 4420b57cec5SDimitry Andricdef : Device<"at90can32", FamilyAVR5, ELFArchAVR5>; 4430b57cec5SDimitry Andricdef : Device<"at90can64", FamilyAVR5, ELFArchAVR5>; 4440b57cec5SDimitry Andricdef : Device<"at90pwm161", FamilyAVR5, ELFArchAVR5>; 4450b57cec5SDimitry Andricdef : Device<"at90pwm216", FamilyAVR5, ELFArchAVR5>; 4460b57cec5SDimitry Andricdef : Device<"at90pwm316", FamilyAVR5, ELFArchAVR5>; 4470b57cec5SDimitry Andricdef : Device<"atmega32c1", FamilyAVR5, ELFArchAVR5>; 4480b57cec5SDimitry Andricdef : Device<"atmega64c1", FamilyAVR5, ELFArchAVR5>; 4490b57cec5SDimitry Andricdef : Device<"atmega16m1", FamilyAVR5, ELFArchAVR5>; 4500b57cec5SDimitry Andricdef : Device<"atmega32m1", FamilyAVR5, ELFArchAVR5>; 4510b57cec5SDimitry Andricdef : Device<"atmega64m1", FamilyAVR5, ELFArchAVR5>; 4520b57cec5SDimitry Andricdef : Device<"atmega16u4", FamilyAVR5, ELFArchAVR5>; 4530b57cec5SDimitry Andricdef : Device<"atmega32u4", FamilyAVR5, ELFArchAVR5>; 4540b57cec5SDimitry Andricdef : Device<"atmega32u6", FamilyAVR5, ELFArchAVR5>; 4550b57cec5SDimitry Andricdef : Device<"at90usb646", FamilyAVR5, ELFArchAVR5>; 4560b57cec5SDimitry Andricdef : Device<"at90usb647", FamilyAVR5, ELFArchAVR5>; 4570b57cec5SDimitry Andricdef : Device<"at90scr100", FamilyAVR5, ELFArchAVR5>; 4580b57cec5SDimitry Andricdef : Device<"at94k", FamilyAVR3, ELFArchAVR5, 4590b57cec5SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX]>; 4600b57cec5SDimitry Andricdef : Device<"m3000", FamilyAVR5, ELFArchAVR5>; 4610b57cec5SDimitry Andricdef : Device<"atmega128", FamilyAVR51, ELFArchAVR51>; 4620b57cec5SDimitry Andricdef : Device<"atmega128a", FamilyAVR51, ELFArchAVR51>; 4630b57cec5SDimitry Andricdef : Device<"atmega1280", FamilyAVR51, ELFArchAVR51>; 4640b57cec5SDimitry Andricdef : Device<"atmega1281", FamilyAVR51, ELFArchAVR51>; 4650b57cec5SDimitry Andricdef : Device<"atmega1284", FamilyAVR51, ELFArchAVR51>; 4660b57cec5SDimitry Andricdef : Device<"atmega1284p", FamilyAVR51, ELFArchAVR51>; 4670b57cec5SDimitry Andricdef : Device<"atmega128rfa1", FamilyAVR51, ELFArchAVR51>; 4680b57cec5SDimitry Andricdef : Device<"atmega128rfr2", FamilyAVR51, ELFArchAVR51>; 4690b57cec5SDimitry Andricdef : Device<"atmega1284rfr2", FamilyAVR51, ELFArchAVR51>; 4700b57cec5SDimitry Andricdef : Device<"at90can128", FamilyAVR51, ELFArchAVR51>; 4710b57cec5SDimitry Andricdef : Device<"at90usb1286", FamilyAVR51, ELFArchAVR51>; 4720b57cec5SDimitry Andricdef : Device<"at90usb1287", FamilyAVR51, ELFArchAVR51>; 4730b57cec5SDimitry Andricdef : Device<"atmega2560", FamilyAVR6, ELFArchAVR6>; 4740b57cec5SDimitry Andricdef : Device<"atmega2561", FamilyAVR6, ELFArchAVR6>; 4750b57cec5SDimitry Andricdef : Device<"atmega256rfr2", FamilyAVR6, ELFArchAVR6>; 4760b57cec5SDimitry Andricdef : Device<"atmega2564rfr2", FamilyAVR6, ELFArchAVR6>; 4770b57cec5SDimitry Andricdef : Device<"atxmega16a4", FamilyXMEGA, ELFArchXMEGA2>; 4780b57cec5SDimitry Andricdef : Device<"atxmega16a4u", FamilyXMEGAU, ELFArchXMEGA2>; 4790b57cec5SDimitry Andricdef : Device<"atxmega16c4", FamilyXMEGAU, ELFArchXMEGA2>; 4800b57cec5SDimitry Andricdef : Device<"atxmega16d4", FamilyXMEGA, ELFArchXMEGA2>; 4810b57cec5SDimitry Andricdef : Device<"atxmega32a4", FamilyXMEGA, ELFArchXMEGA2>; 4820b57cec5SDimitry Andricdef : Device<"atxmega32a4u", FamilyXMEGAU, ELFArchXMEGA2>; 48381ad6265SDimitry Andricdef : Device<"atxmega32c3", FamilyXMEGAU, ELFArchXMEGA2>; 4840b57cec5SDimitry Andricdef : Device<"atxmega32c4", FamilyXMEGAU, ELFArchXMEGA2>; 48581ad6265SDimitry Andricdef : Device<"atxmega32d3", FamilyXMEGA, ELFArchXMEGA2>; 4860b57cec5SDimitry Andricdef : Device<"atxmega32d4", FamilyXMEGA, ELFArchXMEGA2>; 487e8d8bef9SDimitry Andricdef : Device<"atxmega32e5", FamilyXMEGAU, ELFArchXMEGA2>; 488e8d8bef9SDimitry Andricdef : Device<"atxmega16e5", FamilyXMEGAU, ELFArchXMEGA2>; 489e8d8bef9SDimitry Andricdef : Device<"atxmega8e5", FamilyXMEGAU, ELFArchXMEGA2>; 4900b57cec5SDimitry Andricdef : Device<"atxmega64a3", FamilyXMEGA, ELFArchXMEGA4>; 4910b57cec5SDimitry Andricdef : Device<"atxmega64a3u", FamilyXMEGAU, ELFArchXMEGA4>; 4920b57cec5SDimitry Andricdef : Device<"atxmega64a4u", FamilyXMEGAU, ELFArchXMEGA4>; 4930b57cec5SDimitry Andricdef : Device<"atxmega64b1", FamilyXMEGAU, ELFArchXMEGA4>; 4940b57cec5SDimitry Andricdef : Device<"atxmega64b3", FamilyXMEGAU, ELFArchXMEGA4>; 4950b57cec5SDimitry Andricdef : Device<"atxmega64c3", FamilyXMEGAU, ELFArchXMEGA4>; 4960b57cec5SDimitry Andricdef : Device<"atxmega64d3", FamilyXMEGA, ELFArchXMEGA4>; 4970b57cec5SDimitry Andricdef : Device<"atxmega64d4", FamilyXMEGA, ELFArchXMEGA4>; 4980b57cec5SDimitry Andricdef : Device<"atxmega64a1", FamilyXMEGA, ELFArchXMEGA5>; 4990b57cec5SDimitry Andricdef : Device<"atxmega64a1u", FamilyXMEGAU, ELFArchXMEGA5>; 5000b57cec5SDimitry Andricdef : Device<"atxmega128a3", FamilyXMEGA, ELFArchXMEGA6>; 5010b57cec5SDimitry Andricdef : Device<"atxmega128a3u", FamilyXMEGAU, ELFArchXMEGA6>; 5020b57cec5SDimitry Andricdef : Device<"atxmega128b1", FamilyXMEGAU, ELFArchXMEGA6>; 5030b57cec5SDimitry Andricdef : Device<"atxmega128b3", FamilyXMEGAU, ELFArchXMEGA6>; 5040b57cec5SDimitry Andricdef : Device<"atxmega128c3", FamilyXMEGAU, ELFArchXMEGA6>; 5050b57cec5SDimitry Andricdef : Device<"atxmega128d3", FamilyXMEGA, ELFArchXMEGA6>; 5060b57cec5SDimitry Andricdef : Device<"atxmega128d4", FamilyXMEGA, ELFArchXMEGA6>; 5070b57cec5SDimitry Andricdef : Device<"atxmega192a3", FamilyXMEGA, ELFArchXMEGA6>; 5080b57cec5SDimitry Andricdef : Device<"atxmega192a3u", FamilyXMEGAU, ELFArchXMEGA6>; 5090b57cec5SDimitry Andricdef : Device<"atxmega192c3", FamilyXMEGAU, ELFArchXMEGA6>; 5100b57cec5SDimitry Andricdef : Device<"atxmega192d3", FamilyXMEGA, ELFArchXMEGA6>; 5110b57cec5SDimitry Andricdef : Device<"atxmega256a3", FamilyXMEGA, ELFArchXMEGA6>; 5120b57cec5SDimitry Andricdef : Device<"atxmega256a3u", FamilyXMEGAU, ELFArchXMEGA6>; 5130b57cec5SDimitry Andricdef : Device<"atxmega256a3b", FamilyXMEGA, ELFArchXMEGA6>; 5140b57cec5SDimitry Andricdef : Device<"atxmega256a3bu", FamilyXMEGAU, ELFArchXMEGA6>; 5150b57cec5SDimitry Andricdef : Device<"atxmega256c3", FamilyXMEGAU, ELFArchXMEGA6>; 5160b57cec5SDimitry Andricdef : Device<"atxmega256d3", FamilyXMEGA, ELFArchXMEGA6>; 5170b57cec5SDimitry Andricdef : Device<"atxmega384c3", FamilyXMEGAU, ELFArchXMEGA6>; 5180b57cec5SDimitry Andricdef : Device<"atxmega384d3", FamilyXMEGA, ELFArchXMEGA6>; 5190b57cec5SDimitry Andricdef : Device<"atxmega128a1", FamilyXMEGA, ELFArchXMEGA7>; 5200b57cec5SDimitry Andricdef : Device<"atxmega128a1u", FamilyXMEGAU, ELFArchXMEGA7>; 5210b57cec5SDimitry Andricdef : Device<"atxmega128a4u", FamilyXMEGAU, ELFArchXMEGA7>; 5220b57cec5SDimitry Andricdef : Device<"attiny4", FamilyTiny, ELFArchTiny>; 5230b57cec5SDimitry Andricdef : Device<"attiny5", FamilyTiny, ELFArchTiny>; 5240b57cec5SDimitry Andricdef : Device<"attiny9", FamilyTiny, ELFArchTiny>; 5250b57cec5SDimitry Andricdef : Device<"attiny10", FamilyTiny, ELFArchTiny>; 5260b57cec5SDimitry Andricdef : Device<"attiny20", FamilyTiny, ELFArchTiny>; 5270b57cec5SDimitry Andricdef : Device<"attiny40", FamilyTiny, ELFArchTiny>; 5280b57cec5SDimitry Andricdef : Device<"attiny102", FamilyTiny, ELFArchTiny>; 5290b57cec5SDimitry Andricdef : Device<"attiny104", FamilyTiny, ELFArchTiny>; 53081ad6265SDimitry Andricdef : Device<"attiny202", FamilyXMEGA3, ELFArchXMEGA3>; 53181ad6265SDimitry Andricdef : Device<"attiny402", FamilyXMEGA3, ELFArchXMEGA3>; 53281ad6265SDimitry Andricdef : Device<"attiny204", FamilyXMEGA3, ELFArchXMEGA3>; 53381ad6265SDimitry Andricdef : Device<"attiny404", FamilyXMEGA3, ELFArchXMEGA3>; 53481ad6265SDimitry Andricdef : Device<"attiny804", FamilyXMEGA3, ELFArchXMEGA3>; 53581ad6265SDimitry Andricdef : Device<"attiny1604", FamilyXMEGA3, ELFArchXMEGA3>; 53681ad6265SDimitry Andricdef : Device<"attiny406", FamilyXMEGA3, ELFArchXMEGA3>; 53781ad6265SDimitry Andricdef : Device<"attiny806", FamilyXMEGA3, ELFArchXMEGA3>; 53881ad6265SDimitry Andricdef : Device<"attiny1606", FamilyXMEGA3, ELFArchXMEGA3>; 53981ad6265SDimitry Andricdef : Device<"attiny807", FamilyXMEGA3, ELFArchXMEGA3>; 54081ad6265SDimitry Andricdef : Device<"attiny1607", FamilyXMEGA3, ELFArchXMEGA3>; 54181ad6265SDimitry Andricdef : Device<"attiny212", FamilyXMEGA3, ELFArchXMEGA3>; 54281ad6265SDimitry Andricdef : Device<"attiny412", FamilyXMEGA3, ELFArchXMEGA3>; 54381ad6265SDimitry Andricdef : Device<"attiny214", FamilyXMEGA3, ELFArchXMEGA3>; 54481ad6265SDimitry Andricdef : Device<"attiny414", FamilyXMEGA3, ELFArchXMEGA3>; 54581ad6265SDimitry Andricdef : Device<"attiny814", FamilyXMEGA3, ELFArchXMEGA3>; 54681ad6265SDimitry Andricdef : Device<"attiny1614", FamilyXMEGA3, ELFArchXMEGA3>; 54781ad6265SDimitry Andricdef : Device<"attiny416", FamilyXMEGA3, ELFArchXMEGA3>; 54881ad6265SDimitry Andricdef : Device<"attiny816", FamilyXMEGA3, ELFArchXMEGA3>; 54981ad6265SDimitry Andricdef : Device<"attiny1616", FamilyXMEGA3, ELFArchXMEGA3>; 55081ad6265SDimitry Andricdef : Device<"attiny3216", FamilyXMEGA3, ELFArchXMEGA3>; 55181ad6265SDimitry Andricdef : Device<"attiny417", FamilyXMEGA3, ELFArchXMEGA3>; 55281ad6265SDimitry Andricdef : Device<"attiny817", FamilyXMEGA3, ELFArchXMEGA3>; 55381ad6265SDimitry Andricdef : Device<"attiny1617", FamilyXMEGA3, ELFArchXMEGA3>; 55481ad6265SDimitry Andricdef : Device<"attiny3217", FamilyXMEGA3, ELFArchXMEGA3>; 55581ad6265SDimitry Andricdef : Device<"attiny1624", FamilyXMEGA3, ELFArchXMEGA3>; 55681ad6265SDimitry Andricdef : Device<"attiny1626", FamilyXMEGA3, ELFArchXMEGA3>; 55781ad6265SDimitry Andricdef : Device<"attiny1627", FamilyXMEGA3, ELFArchXMEGA3>; 55881ad6265SDimitry Andricdef : Device<"atmega808", FamilyXMEGA3, ELFArchXMEGA3>; 55981ad6265SDimitry Andricdef : Device<"atmega809", FamilyXMEGA3, ELFArchXMEGA3>; 56081ad6265SDimitry Andricdef : Device<"atmega1608", FamilyXMEGA3, ELFArchXMEGA3>; 56181ad6265SDimitry Andricdef : Device<"atmega1609", FamilyXMEGA3, ELFArchXMEGA3>; 56281ad6265SDimitry Andricdef : Device<"atmega3208", FamilyXMEGA3, ELFArchXMEGA3>; 56381ad6265SDimitry Andricdef : Device<"atmega3209", FamilyXMEGA3, ELFArchXMEGA3>; 56481ad6265SDimitry Andricdef : Device<"atmega4808", FamilyXMEGA3, ELFArchXMEGA3>; 56581ad6265SDimitry Andricdef : Device<"atmega4809", FamilyXMEGA3, ELFArchXMEGA3>; 566