1*0b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 2*0b57cec5SDimitry Andric// AVR Device Definitions 3*0b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 4*0b57cec5SDimitry Andric 5*0b57cec5SDimitry Andric// :TODO: Implement the skip errata, see `gcc/config/avr/avr-arch.h` for details 6*0b57cec5SDimitry Andric// :TODO: We define all devices with SRAM to have all variants of LD/ST/LDD/STD. 7*0b57cec5SDimitry Andric// In reality, avr1 (no SRAM) has one variant each of `LD` and `ST`. 8*0b57cec5SDimitry Andric// avr2 (with SRAM) adds the rest of the variants. 9*0b57cec5SDimitry Andric 10*0b57cec5SDimitry Andric 11*0b57cec5SDimitry Andric// A feature set aggregates features, grouping them. We don't want to create a 12*0b57cec5SDimitry Andric// new member in AVRSubtarget (to store a value) for each set because we do not 13*0b57cec5SDimitry Andric// care if the set is supported, only the subfeatures inside the set. We fix 14*0b57cec5SDimitry Andric// this by simply setting the same dummy member for all feature sets, which is 15*0b57cec5SDimitry Andric// then ignored. 16*0b57cec5SDimitry Andricclass FeatureSet<string name, string desc, list<SubtargetFeature> i> 17*0b57cec5SDimitry Andric : SubtargetFeature<name, "m_FeatureSetDummy", "true", desc, i>; 18*0b57cec5SDimitry Andric 19*0b57cec5SDimitry Andric// A family of microcontrollers, defining a set of supported features. 20*0b57cec5SDimitry Andricclass Family<string name, list<SubtargetFeature> i> 21*0b57cec5SDimitry Andric : FeatureSet<name, !strconcat("The device is a part of the ", 22*0b57cec5SDimitry Andric name, " family"), i>; 23*0b57cec5SDimitry Andric 24*0b57cec5SDimitry Andric// The device has SRAM, and supports the bare minimum of 25*0b57cec5SDimitry Andric// SRAM-relevant instructions. 26*0b57cec5SDimitry Andric// 27*0b57cec5SDimitry Andric// These are: 28*0b57cec5SDimitry Andric// LD - all 9 variants 29*0b57cec5SDimitry Andric// ST - all 9 variants 30*0b57cec5SDimitry Andric// LDD - two variants for Y and Z 31*0b57cec5SDimitry Andric// STD - two variants for Y and Z 32*0b57cec5SDimitry Andric// `LDS Rd, K` 33*0b57cec5SDimitry Andric// `STS k, Rr` 34*0b57cec5SDimitry Andric// `PUSH`/`POP` 35*0b57cec5SDimitry Andricdef FeatureSRAM : SubtargetFeature<"sram", "m_hasSRAM", "true", 36*0b57cec5SDimitry Andric "The device has random access memory">; 37*0b57cec5SDimitry Andric 38*0b57cec5SDimitry Andric// The device supports the `JMP k` and `CALL k` instructions. 39*0b57cec5SDimitry Andricdef FeatureJMPCALL : SubtargetFeature<"jmpcall", "m_hasJMPCALL", "true", 40*0b57cec5SDimitry Andric "The device supports the `JMP` and " 41*0b57cec5SDimitry Andric "`CALL` instructions">; 42*0b57cec5SDimitry Andric 43*0b57cec5SDimitry Andric 44*0b57cec5SDimitry Andric// The device supports the indirect branches `IJMP` and `ICALL`. 45*0b57cec5SDimitry Andricdef FeatureIJMPCALL : SubtargetFeature<"ijmpcall", "m_hasIJMPCALL", 46*0b57cec5SDimitry Andric "true", 47*0b57cec5SDimitry Andric "The device supports `IJMP`/`ICALL`" 48*0b57cec5SDimitry Andric "instructions">; 49*0b57cec5SDimitry Andric 50*0b57cec5SDimitry Andric// The device supports the extended indirect branches `EIJMP` and `EICALL`. 51*0b57cec5SDimitry Andricdef FeatureEIJMPCALL : SubtargetFeature<"eijmpcall", "m_hasEIJMPCALL", 52*0b57cec5SDimitry Andric "true", "The device supports the " 53*0b57cec5SDimitry Andric "`EIJMP`/`EICALL` instructions">; 54*0b57cec5SDimitry Andric 55*0b57cec5SDimitry Andric// The device supports `ADDI Rd, K`, `SUBI Rd, K`. 56*0b57cec5SDimitry Andricdef FeatureADDSUBIW : SubtargetFeature<"addsubiw", "m_hasADDSUBIW", 57*0b57cec5SDimitry Andric "true", "Enable 16-bit register-immediate " 58*0b57cec5SDimitry Andric "addition and subtraction instructions">; 59*0b57cec5SDimitry Andric 60*0b57cec5SDimitry Andric// The device has an 8-bit stack pointer (SP) register. 61*0b57cec5SDimitry Andricdef FeatureSmallStack : SubtargetFeature<"smallstack", "m_hasSmallStack", 62*0b57cec5SDimitry Andric "true", "The device has an 8-bit " 63*0b57cec5SDimitry Andric "stack pointer">; 64*0b57cec5SDimitry Andric 65*0b57cec5SDimitry Andric// The device supports the 16-bit GPR pair MOVW instruction. 66*0b57cec5SDimitry Andricdef FeatureMOVW : SubtargetFeature<"movw", "m_hasMOVW", "true", 67*0b57cec5SDimitry Andric "The device supports the 16-bit MOVW " 68*0b57cec5SDimitry Andric "instruction">; 69*0b57cec5SDimitry Andric 70*0b57cec5SDimitry Andric// The device supports the `LPM` instruction, with implied destination being r0. 71*0b57cec5SDimitry Andricdef FeatureLPM : SubtargetFeature<"lpm", "m_hasLPM", "true", 72*0b57cec5SDimitry Andric "The device supports the `LPM` instruction">; 73*0b57cec5SDimitry Andric 74*0b57cec5SDimitry Andric// The device supports the `LPM Rd, Z[+] instruction. 75*0b57cec5SDimitry Andricdef FeatureLPMX : SubtargetFeature<"lpmx", "m_hasLPMX", "true", 76*0b57cec5SDimitry Andric "The device supports the `LPM Rd, Z[+]` " 77*0b57cec5SDimitry Andric "instruction">; 78*0b57cec5SDimitry Andric 79*0b57cec5SDimitry Andric// The device supports the `ELPM` instruction. 80*0b57cec5SDimitry Andricdef FeatureELPM : SubtargetFeature<"elpm", "m_hasELPM", "true", 81*0b57cec5SDimitry Andric "The device supports the ELPM instruction">; 82*0b57cec5SDimitry Andric 83*0b57cec5SDimitry Andric// The device supports the `ELPM Rd, Z[+]` instructions. 84*0b57cec5SDimitry Andricdef FeatureELPMX : SubtargetFeature<"elpmx", "m_hasELPMX", "true", 85*0b57cec5SDimitry Andric "The device supports the `ELPM Rd, Z[+]` " 86*0b57cec5SDimitry Andric "instructions">; 87*0b57cec5SDimitry Andric 88*0b57cec5SDimitry Andric// The device supports the `SPM` instruction. 89*0b57cec5SDimitry Andricdef FeatureSPM : SubtargetFeature<"spm", "m_hasSPM", "true", 90*0b57cec5SDimitry Andric "The device supports the `SPM` instruction">; 91*0b57cec5SDimitry Andric 92*0b57cec5SDimitry Andric// The device supports the `SPM Z+` instruction. 93*0b57cec5SDimitry Andricdef FeatureSPMX : SubtargetFeature<"spmx", "m_hasSPMX", "true", 94*0b57cec5SDimitry Andric "The device supports the `SPM Z+` " 95*0b57cec5SDimitry Andric "instruction">; 96*0b57cec5SDimitry Andric 97*0b57cec5SDimitry Andric// The device supports the `DES k` instruction. 98*0b57cec5SDimitry Andricdef FeatureDES : SubtargetFeature<"des", "m_hasDES", "true", 99*0b57cec5SDimitry Andric "The device supports the `DES k` encryption " 100*0b57cec5SDimitry Andric "instruction">; 101*0b57cec5SDimitry Andric 102*0b57cec5SDimitry Andric// The device supports the Read-Write-Modify instructions 103*0b57cec5SDimitry Andric// XCH, LAS, LAC, and LAT. 104*0b57cec5SDimitry Andricdef FeatureRMW : SubtargetFeature<"rmw", "m_supportsRMW", "true", 105*0b57cec5SDimitry Andric "The device supports the read-write-modify " 106*0b57cec5SDimitry Andric "instructions: XCH, LAS, LAC, LAT">; 107*0b57cec5SDimitry Andric 108*0b57cec5SDimitry Andric// The device supports the `[F]MUL[S][U]` family of instructions. 109*0b57cec5SDimitry Andricdef FeatureMultiplication : SubtargetFeature<"mul", "m_supportsMultiplication", 110*0b57cec5SDimitry Andric "true", "The device supports the " 111*0b57cec5SDimitry Andric "multiplication instructions">; 112*0b57cec5SDimitry Andric 113*0b57cec5SDimitry Andric// The device supports the `BREAK` instruction. 114*0b57cec5SDimitry Andricdef FeatureBREAK : SubtargetFeature<"break", "m_hasBREAK", "true", 115*0b57cec5SDimitry Andric "The device supports the `BREAK` debugging " 116*0b57cec5SDimitry Andric "instruction">; 117*0b57cec5SDimitry Andric 118*0b57cec5SDimitry Andric// The device has instruction encodings specific to the Tiny core. 119*0b57cec5SDimitry Andricdef FeatureTinyEncoding : SubtargetFeature<"tinyencoding", 120*0b57cec5SDimitry Andric "m_hasTinyEncoding", "true", 121*0b57cec5SDimitry Andric "The device has Tiny core specific " 122*0b57cec5SDimitry Andric "instruction encodings">; 123*0b57cec5SDimitry Andric 124*0b57cec5SDimitry Andricclass ELFArch<string name> : SubtargetFeature<"", "ELFArch", 125*0b57cec5SDimitry Andric !strconcat("ELF::",name), "">; 126*0b57cec5SDimitry Andric 127*0b57cec5SDimitry Andric// ELF e_flags architecture values 128*0b57cec5SDimitry Andricdef ELFArchAVR1 : ELFArch<"EF_AVR_ARCH_AVR1">; 129*0b57cec5SDimitry Andricdef ELFArchAVR2 : ELFArch<"EF_AVR_ARCH_AVR2">; 130*0b57cec5SDimitry Andricdef ELFArchAVR25 : ELFArch<"EF_AVR_ARCH_AVR25">; 131*0b57cec5SDimitry Andricdef ELFArchAVR3 : ELFArch<"EF_AVR_ARCH_AVR3">; 132*0b57cec5SDimitry Andricdef ELFArchAVR31 : ELFArch<"EF_AVR_ARCH_AVR31">; 133*0b57cec5SDimitry Andricdef ELFArchAVR35 : ELFArch<"EF_AVR_ARCH_AVR35">; 134*0b57cec5SDimitry Andricdef ELFArchAVR4 : ELFArch<"EF_AVR_ARCH_AVR4">; 135*0b57cec5SDimitry Andricdef ELFArchAVR5 : ELFArch<"EF_AVR_ARCH_AVR5">; 136*0b57cec5SDimitry Andricdef ELFArchAVR51 : ELFArch<"EF_AVR_ARCH_AVR51">; 137*0b57cec5SDimitry Andricdef ELFArchAVR6 : ELFArch<"EF_AVR_ARCH_AVR6">; 138*0b57cec5SDimitry Andricdef ELFArchTiny : ELFArch<"EF_AVR_ARCH_AVRTINY">; 139*0b57cec5SDimitry Andricdef ELFArchXMEGA1 : ELFArch<"EF_AVR_ARCH_XMEGA1">; 140*0b57cec5SDimitry Andricdef ELFArchXMEGA2 : ELFArch<"EF_AVR_ARCH_XMEGA2">; 141*0b57cec5SDimitry Andricdef ELFArchXMEGA3 : ELFArch<"EF_AVR_ARCH_XMEGA3">; 142*0b57cec5SDimitry Andricdef ELFArchXMEGA4 : ELFArch<"EF_AVR_ARCH_XMEGA4">; 143*0b57cec5SDimitry Andricdef ELFArchXMEGA5 : ELFArch<"EF_AVR_ARCH_XMEGA5">; 144*0b57cec5SDimitry Andricdef ELFArchXMEGA6 : ELFArch<"EF_AVR_ARCH_XMEGA6">; 145*0b57cec5SDimitry Andricdef ELFArchXMEGA7 : ELFArch<"EF_AVR_ARCH_XMEGA7">; 146*0b57cec5SDimitry Andric 147*0b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 148*0b57cec5SDimitry Andric// AVR Families 149*0b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 150*0b57cec5SDimitry Andric 151*0b57cec5SDimitry Andric// The device has at least the bare minimum that **every** single AVR 152*0b57cec5SDimitry Andric// device should have. 153*0b57cec5SDimitry Andricdef FamilyAVR0 : Family<"avr0", []>; 154*0b57cec5SDimitry Andric 155*0b57cec5SDimitry Andricdef FamilyAVR1 : Family<"avr1", [FamilyAVR0, FeatureLPM]>; 156*0b57cec5SDimitry Andric 157*0b57cec5SDimitry Andricdef FamilyAVR2 : Family<"avr2", 158*0b57cec5SDimitry Andric [FamilyAVR1, FeatureIJMPCALL, FeatureADDSUBIW, 159*0b57cec5SDimitry Andric FeatureSRAM]>; 160*0b57cec5SDimitry Andric 161*0b57cec5SDimitry Andricdef FamilyAVR25 : Family<"avr25", 162*0b57cec5SDimitry Andric [FamilyAVR2, FeatureMOVW, FeatureLPMX, 163*0b57cec5SDimitry Andric FeatureSPM, FeatureBREAK]>; 164*0b57cec5SDimitry Andric 165*0b57cec5SDimitry Andricdef FamilyAVR3 : Family<"avr3", 166*0b57cec5SDimitry Andric [FamilyAVR2, FeatureJMPCALL]>; 167*0b57cec5SDimitry Andric 168*0b57cec5SDimitry Andricdef FamilyAVR31 : Family<"avr31", 169*0b57cec5SDimitry Andric [FamilyAVR3, FeatureELPM]>; 170*0b57cec5SDimitry Andric 171*0b57cec5SDimitry Andricdef FamilyAVR35 : Family<"avr35", 172*0b57cec5SDimitry Andric [FamilyAVR3, FeatureMOVW, FeatureLPMX, 173*0b57cec5SDimitry Andric FeatureSPM, FeatureBREAK]>; 174*0b57cec5SDimitry Andric 175*0b57cec5SDimitry Andricdef FamilyAVR4 : Family<"avr4", 176*0b57cec5SDimitry Andric [FamilyAVR2, FeatureMultiplication, 177*0b57cec5SDimitry Andric FeatureMOVW, FeatureLPMX, FeatureSPM, 178*0b57cec5SDimitry Andric FeatureBREAK]>; 179*0b57cec5SDimitry Andric 180*0b57cec5SDimitry Andricdef FamilyAVR5 : Family<"avr5", 181*0b57cec5SDimitry Andric [FamilyAVR3, FeatureMultiplication, 182*0b57cec5SDimitry Andric FeatureMOVW, FeatureLPMX, FeatureSPM, 183*0b57cec5SDimitry Andric FeatureBREAK]>; 184*0b57cec5SDimitry Andric 185*0b57cec5SDimitry Andricdef FamilyAVR51 : Family<"avr51", 186*0b57cec5SDimitry Andric [FamilyAVR5, FeatureELPM, FeatureELPMX]>; 187*0b57cec5SDimitry Andric 188*0b57cec5SDimitry Andricdef FamilyAVR6 : Family<"avr6", 189*0b57cec5SDimitry Andric [FamilyAVR51]>; 190*0b57cec5SDimitry Andric 191*0b57cec5SDimitry Andricdef FamilyTiny : Family<"avrtiny", 192*0b57cec5SDimitry Andric [FamilyAVR0, FeatureBREAK, FeatureSRAM, 193*0b57cec5SDimitry Andric FeatureTinyEncoding]>; 194*0b57cec5SDimitry Andric 195*0b57cec5SDimitry Andricdef FamilyXMEGA : Family<"xmega", 196*0b57cec5SDimitry Andric [FamilyAVR51, FeatureEIJMPCALL, FeatureSPMX, 197*0b57cec5SDimitry Andric FeatureDES]>; 198*0b57cec5SDimitry Andric 199*0b57cec5SDimitry Andricdef FamilyXMEGAU : Family<"xmegau", 200*0b57cec5SDimitry Andric [FamilyXMEGA, FeatureRMW]>; 201*0b57cec5SDimitry Andric 202*0b57cec5SDimitry Andricdef FeatureSetSpecial : FeatureSet<"special", 203*0b57cec5SDimitry Andric "Enable use of the entire instruction " 204*0b57cec5SDimitry Andric "set - used for debugging", 205*0b57cec5SDimitry Andric [FeatureSRAM, FeatureJMPCALL, 206*0b57cec5SDimitry Andric FeatureIJMPCALL, FeatureEIJMPCALL, 207*0b57cec5SDimitry Andric FeatureADDSUBIW, FeatureMOVW, 208*0b57cec5SDimitry Andric FeatureLPM, FeatureLPMX, FeatureELPM, 209*0b57cec5SDimitry Andric FeatureELPMX, FeatureSPM, FeatureSPMX, 210*0b57cec5SDimitry Andric FeatureDES, FeatureRMW, 211*0b57cec5SDimitry Andric FeatureMultiplication, FeatureBREAK]>; 212*0b57cec5SDimitry Andric 213*0b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 214*0b57cec5SDimitry Andric// AVR microcontrollers supported. 215*0b57cec5SDimitry Andric//===---------------------------------------------------------------------===// 216*0b57cec5SDimitry Andric 217*0b57cec5SDimitry Andricclass Device<string Name, Family Fam, ELFArch Arch, 218*0b57cec5SDimitry Andric list<SubtargetFeature> ExtraFeatures = []> 219*0b57cec5SDimitry Andric : Processor<Name, NoItineraries, !listconcat([Fam,Arch],ExtraFeatures)>; 220*0b57cec5SDimitry Andric 221*0b57cec5SDimitry Andric// Generic MCUs 222*0b57cec5SDimitry Andric// Note that several versions of GCC has strange ELF architecture 223*0b57cec5SDimitry Andric// settings for backwards compatibility - see `gas/config/tc-avr.c` 224*0b57cec5SDimitry Andric// in AVR binutils. We do not replicate this. 225*0b57cec5SDimitry Andricdef : Device<"avr1", FamilyAVR1, ELFArchAVR1>; 226*0b57cec5SDimitry Andricdef : Device<"avr2", FamilyAVR2, ELFArchAVR2>; 227*0b57cec5SDimitry Andricdef : Device<"avr25", FamilyAVR25, ELFArchAVR25>; 228*0b57cec5SDimitry Andricdef : Device<"avr3", FamilyAVR3, ELFArchAVR3>; 229*0b57cec5SDimitry Andricdef : Device<"avr31", FamilyAVR31, ELFArchAVR31>; 230*0b57cec5SDimitry Andricdef : Device<"avr35", FamilyAVR35, ELFArchAVR35>; 231*0b57cec5SDimitry Andricdef : Device<"avr4", FamilyAVR4, ELFArchAVR4>; 232*0b57cec5SDimitry Andricdef : Device<"avr5", FamilyAVR5, ELFArchAVR5>; 233*0b57cec5SDimitry Andricdef : Device<"avr51", FamilyAVR51, ELFArchAVR51>; 234*0b57cec5SDimitry Andricdef : Device<"avr6", FamilyAVR6, ELFArchAVR6>; 235*0b57cec5SDimitry Andricdef : Device<"avrxmega1", FamilyXMEGA, ELFArchXMEGA1>; 236*0b57cec5SDimitry Andricdef : Device<"avrxmega2", FamilyXMEGA, ELFArchXMEGA2>; 237*0b57cec5SDimitry Andricdef : Device<"avrxmega3", FamilyXMEGA, ELFArchXMEGA3>; 238*0b57cec5SDimitry Andricdef : Device<"avrxmega4", FamilyXMEGA, ELFArchXMEGA4>; 239*0b57cec5SDimitry Andricdef : Device<"avrxmega5", FamilyXMEGA, ELFArchXMEGA5>; 240*0b57cec5SDimitry Andricdef : Device<"avrxmega6", FamilyXMEGA, ELFArchXMEGA6>; 241*0b57cec5SDimitry Andricdef : Device<"avrxmega7", FamilyXMEGA, ELFArchXMEGA7>; 242*0b57cec5SDimitry Andricdef : Device<"avrtiny", FamilyTiny, ELFArchTiny>; 243*0b57cec5SDimitry Andric 244*0b57cec5SDimitry Andric// Specific MCUs 245*0b57cec5SDimitry Andricdef : Device<"at90s1200", FamilyAVR0, ELFArchAVR1>; 246*0b57cec5SDimitry Andricdef : Device<"attiny11", FamilyAVR1, ELFArchAVR1>; 247*0b57cec5SDimitry Andricdef : Device<"attiny12", FamilyAVR1, ELFArchAVR1>; 248*0b57cec5SDimitry Andricdef : Device<"attiny15", FamilyAVR1, ELFArchAVR1>; 249*0b57cec5SDimitry Andricdef : Device<"attiny28", FamilyAVR1, ELFArchAVR1>; 250*0b57cec5SDimitry Andricdef : Device<"at90s2313", FamilyAVR2, ELFArchAVR2>; 251*0b57cec5SDimitry Andricdef : Device<"at90s2323", FamilyAVR2, ELFArchAVR2>; 252*0b57cec5SDimitry Andricdef : Device<"at90s2333", FamilyAVR2, ELFArchAVR2>; 253*0b57cec5SDimitry Andricdef : Device<"at90s2343", FamilyAVR2, ELFArchAVR2>; 254*0b57cec5SDimitry Andricdef : Device<"attiny22", FamilyAVR2, ELFArchAVR2>; 255*0b57cec5SDimitry Andricdef : Device<"attiny26", FamilyAVR2, ELFArchAVR2, [FeatureLPMX]>; 256*0b57cec5SDimitry Andricdef : Device<"at86rf401", FamilyAVR2, ELFArchAVR25, 257*0b57cec5SDimitry Andric [FeatureMOVW, FeatureLPMX]>; 258*0b57cec5SDimitry Andricdef : Device<"at90s4414", FamilyAVR2, ELFArchAVR2>; 259*0b57cec5SDimitry Andricdef : Device<"at90s4433", FamilyAVR2, ELFArchAVR2>; 260*0b57cec5SDimitry Andricdef : Device<"at90s4434", FamilyAVR2, ELFArchAVR2>; 261*0b57cec5SDimitry Andricdef : Device<"at90s8515", FamilyAVR2, ELFArchAVR2>; 262*0b57cec5SDimitry Andricdef : Device<"at90c8534", FamilyAVR2, ELFArchAVR2>; 263*0b57cec5SDimitry Andricdef : Device<"at90s8535", FamilyAVR2, ELFArchAVR2>; 264*0b57cec5SDimitry Andricdef : Device<"ata5272", FamilyAVR25, ELFArchAVR25>; 265*0b57cec5SDimitry Andricdef : Device<"attiny13", FamilyAVR25, ELFArchAVR25>; 266*0b57cec5SDimitry Andricdef : Device<"attiny13a", FamilyAVR25, ELFArchAVR25>; 267*0b57cec5SDimitry Andricdef : Device<"attiny2313", FamilyAVR25, ELFArchAVR25>; 268*0b57cec5SDimitry Andricdef : Device<"attiny2313a", FamilyAVR25, ELFArchAVR25>; 269*0b57cec5SDimitry Andricdef : Device<"attiny24", FamilyAVR25, ELFArchAVR25>; 270*0b57cec5SDimitry Andricdef : Device<"attiny24a", FamilyAVR25, ELFArchAVR25>; 271*0b57cec5SDimitry Andricdef : Device<"attiny4313", FamilyAVR25, ELFArchAVR25>; 272*0b57cec5SDimitry Andricdef : Device<"attiny44", FamilyAVR25, ELFArchAVR25>; 273*0b57cec5SDimitry Andricdef : Device<"attiny44a", FamilyAVR25, ELFArchAVR25>; 274*0b57cec5SDimitry Andricdef : Device<"attiny84", FamilyAVR25, ELFArchAVR25>; 275*0b57cec5SDimitry Andricdef : Device<"attiny84a", FamilyAVR25, ELFArchAVR25>; 276*0b57cec5SDimitry Andricdef : Device<"attiny25", FamilyAVR25, ELFArchAVR25>; 277*0b57cec5SDimitry Andricdef : Device<"attiny45", FamilyAVR25, ELFArchAVR25>; 278*0b57cec5SDimitry Andricdef : Device<"attiny85", FamilyAVR25, ELFArchAVR25>; 279*0b57cec5SDimitry Andricdef : Device<"attiny261", FamilyAVR25, ELFArchAVR25>; 280*0b57cec5SDimitry Andricdef : Device<"attiny261a", FamilyAVR25, ELFArchAVR25>; 281*0b57cec5SDimitry Andricdef : Device<"attiny461", FamilyAVR25, ELFArchAVR25>; 282*0b57cec5SDimitry Andricdef : Device<"attiny461a", FamilyAVR25, ELFArchAVR25>; 283*0b57cec5SDimitry Andricdef : Device<"attiny861", FamilyAVR25, ELFArchAVR25>; 284*0b57cec5SDimitry Andricdef : Device<"attiny861a", FamilyAVR25, ELFArchAVR25>; 285*0b57cec5SDimitry Andricdef : Device<"attiny87", FamilyAVR25, ELFArchAVR25>; 286*0b57cec5SDimitry Andricdef : Device<"attiny43u", FamilyAVR25, ELFArchAVR25>; 287*0b57cec5SDimitry Andricdef : Device<"attiny48", FamilyAVR25, ELFArchAVR25>; 288*0b57cec5SDimitry Andricdef : Device<"attiny88", FamilyAVR25, ELFArchAVR25>; 289*0b57cec5SDimitry Andricdef : Device<"attiny828", FamilyAVR25, ELFArchAVR25>; 290*0b57cec5SDimitry Andricdef : Device<"at43usb355", FamilyAVR3, ELFArchAVR3>; 291*0b57cec5SDimitry Andricdef : Device<"at76c711", FamilyAVR3, ELFArchAVR3>; 292*0b57cec5SDimitry Andricdef : Device<"atmega103", FamilyAVR31, ELFArchAVR31>; 293*0b57cec5SDimitry Andricdef : Device<"at43usb320", FamilyAVR31, ELFArchAVR31>; 294*0b57cec5SDimitry Andricdef : Device<"attiny167", FamilyAVR35, ELFArchAVR35>; 295*0b57cec5SDimitry Andricdef : Device<"at90usb82", FamilyAVR35, ELFArchAVR35>; 296*0b57cec5SDimitry Andricdef : Device<"at90usb162", FamilyAVR35, ELFArchAVR35>; 297*0b57cec5SDimitry Andricdef : Device<"ata5505", FamilyAVR35, ELFArchAVR35>; 298*0b57cec5SDimitry Andricdef : Device<"atmega8u2", FamilyAVR35, ELFArchAVR35>; 299*0b57cec5SDimitry Andricdef : Device<"atmega16u2", FamilyAVR35, ELFArchAVR35>; 300*0b57cec5SDimitry Andricdef : Device<"atmega32u2", FamilyAVR35, ELFArchAVR35>; 301*0b57cec5SDimitry Andricdef : Device<"attiny1634", FamilyAVR35, ELFArchAVR35>; 302*0b57cec5SDimitry Andricdef : Device<"atmega8", FamilyAVR4, ELFArchAVR4>; // FIXME: family may be wrong 303*0b57cec5SDimitry Andricdef : Device<"ata6289", FamilyAVR4, ELFArchAVR4>; 304*0b57cec5SDimitry Andricdef : Device<"atmega8a", FamilyAVR4, ELFArchAVR4>; 305*0b57cec5SDimitry Andricdef : Device<"ata6285", FamilyAVR4, ELFArchAVR4>; 306*0b57cec5SDimitry Andricdef : Device<"ata6286", FamilyAVR4, ELFArchAVR4>; 307*0b57cec5SDimitry Andricdef : Device<"atmega48", FamilyAVR4, ELFArchAVR4>; 308*0b57cec5SDimitry Andricdef : Device<"atmega48a", FamilyAVR4, ELFArchAVR4>; 309*0b57cec5SDimitry Andricdef : Device<"atmega48pa", FamilyAVR4, ELFArchAVR4>; 310*0b57cec5SDimitry Andricdef : Device<"atmega48p", FamilyAVR4, ELFArchAVR4>; 311*0b57cec5SDimitry Andricdef : Device<"atmega88", FamilyAVR4, ELFArchAVR4>; 312*0b57cec5SDimitry Andricdef : Device<"atmega88a", FamilyAVR4, ELFArchAVR4>; 313*0b57cec5SDimitry Andricdef : Device<"atmega88p", FamilyAVR4, ELFArchAVR4>; 314*0b57cec5SDimitry Andricdef : Device<"atmega88pa", FamilyAVR4, ELFArchAVR4>; 315*0b57cec5SDimitry Andricdef : Device<"atmega8515", FamilyAVR2, ELFArchAVR4, 316*0b57cec5SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX, FeatureSPM]>; 317*0b57cec5SDimitry Andricdef : Device<"atmega8535", FamilyAVR2, ELFArchAVR4, 318*0b57cec5SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX, FeatureSPM]>; 319*0b57cec5SDimitry Andricdef : Device<"atmega8hva", FamilyAVR4, ELFArchAVR4>; 320*0b57cec5SDimitry Andricdef : Device<"at90pwm1", FamilyAVR4, ELFArchAVR4>; 321*0b57cec5SDimitry Andricdef : Device<"at90pwm2", FamilyAVR4, ELFArchAVR4>; 322*0b57cec5SDimitry Andricdef : Device<"at90pwm2b", FamilyAVR4, ELFArchAVR4>; 323*0b57cec5SDimitry Andricdef : Device<"at90pwm3", FamilyAVR4, ELFArchAVR4>; 324*0b57cec5SDimitry Andricdef : Device<"at90pwm3b", FamilyAVR4, ELFArchAVR4>; 325*0b57cec5SDimitry Andricdef : Device<"at90pwm81", FamilyAVR4, ELFArchAVR4>; 326*0b57cec5SDimitry Andricdef : Device<"ata5790", FamilyAVR5, ELFArchAVR5>; 327*0b57cec5SDimitry Andricdef : Device<"ata5795", FamilyAVR5, ELFArchAVR5>; 328*0b57cec5SDimitry Andricdef : Device<"atmega16", FamilyAVR5, ELFArchAVR5>; 329*0b57cec5SDimitry Andricdef : Device<"atmega16a", FamilyAVR5, ELFArchAVR5>; 330*0b57cec5SDimitry Andricdef : Device<"atmega161", FamilyAVR3, ELFArchAVR5, 331*0b57cec5SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX, FeatureSPM]>; 332*0b57cec5SDimitry Andricdef : Device<"atmega162", FamilyAVR5, ELFArchAVR5>; 333*0b57cec5SDimitry Andricdef : Device<"atmega163", FamilyAVR3, ELFArchAVR5, 334*0b57cec5SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX, FeatureSPM]>; 335*0b57cec5SDimitry Andricdef : Device<"atmega164a", FamilyAVR5, ELFArchAVR5>; 336*0b57cec5SDimitry Andricdef : Device<"atmega164p", FamilyAVR5, ELFArchAVR5>; 337*0b57cec5SDimitry Andricdef : Device<"atmega164pa", FamilyAVR5, ELFArchAVR5>; 338*0b57cec5SDimitry Andricdef : Device<"atmega165", FamilyAVR5, ELFArchAVR5>; 339*0b57cec5SDimitry Andricdef : Device<"atmega165a", FamilyAVR5, ELFArchAVR5>; 340*0b57cec5SDimitry Andricdef : Device<"atmega165p", FamilyAVR5, ELFArchAVR5>; 341*0b57cec5SDimitry Andricdef : Device<"atmega165pa", FamilyAVR5, ELFArchAVR5>; 342*0b57cec5SDimitry Andricdef : Device<"atmega168", FamilyAVR5, ELFArchAVR5>; 343*0b57cec5SDimitry Andricdef : Device<"atmega168a", FamilyAVR5, ELFArchAVR5>; 344*0b57cec5SDimitry Andricdef : Device<"atmega168p", FamilyAVR5, ELFArchAVR5>; 345*0b57cec5SDimitry Andricdef : Device<"atmega168pa", FamilyAVR5, ELFArchAVR5>; 346*0b57cec5SDimitry Andricdef : Device<"atmega169", FamilyAVR5, ELFArchAVR5>; 347*0b57cec5SDimitry Andricdef : Device<"atmega169a", FamilyAVR5, ELFArchAVR5>; 348*0b57cec5SDimitry Andricdef : Device<"atmega169p", FamilyAVR5, ELFArchAVR5>; 349*0b57cec5SDimitry Andricdef : Device<"atmega169pa", FamilyAVR5, ELFArchAVR5>; 350*0b57cec5SDimitry Andricdef : Device<"atmega32", FamilyAVR5, ELFArchAVR5>; 351*0b57cec5SDimitry Andricdef : Device<"atmega32a", FamilyAVR5, ELFArchAVR5>; 352*0b57cec5SDimitry Andricdef : Device<"atmega323", FamilyAVR5, ELFArchAVR5>; 353*0b57cec5SDimitry Andricdef : Device<"atmega324a", FamilyAVR5, ELFArchAVR5>; 354*0b57cec5SDimitry Andricdef : Device<"atmega324p", FamilyAVR5, ELFArchAVR5>; 355*0b57cec5SDimitry Andricdef : Device<"atmega324pa", FamilyAVR5, ELFArchAVR5>; 356*0b57cec5SDimitry Andricdef : Device<"atmega325", FamilyAVR5, ELFArchAVR5>; 357*0b57cec5SDimitry Andricdef : Device<"atmega325a", FamilyAVR5, ELFArchAVR5>; 358*0b57cec5SDimitry Andricdef : Device<"atmega325p", FamilyAVR5, ELFArchAVR5>; 359*0b57cec5SDimitry Andricdef : Device<"atmega325pa", FamilyAVR5, ELFArchAVR5>; 360*0b57cec5SDimitry Andricdef : Device<"atmega3250", FamilyAVR5, ELFArchAVR5>; 361*0b57cec5SDimitry Andricdef : Device<"atmega3250a", FamilyAVR5, ELFArchAVR5>; 362*0b57cec5SDimitry Andricdef : Device<"atmega3250p", FamilyAVR5, ELFArchAVR5>; 363*0b57cec5SDimitry Andricdef : Device<"atmega3250pa", FamilyAVR5, ELFArchAVR5>; 364*0b57cec5SDimitry Andricdef : Device<"atmega328", FamilyAVR5, ELFArchAVR5>; 365*0b57cec5SDimitry Andricdef : Device<"atmega328p", FamilyAVR5, ELFArchAVR5>; 366*0b57cec5SDimitry Andricdef : Device<"atmega329", FamilyAVR5, ELFArchAVR5>; 367*0b57cec5SDimitry Andricdef : Device<"atmega329a", FamilyAVR5, ELFArchAVR5>; 368*0b57cec5SDimitry Andricdef : Device<"atmega329p", FamilyAVR5, ELFArchAVR5>; 369*0b57cec5SDimitry Andricdef : Device<"atmega329pa", FamilyAVR5, ELFArchAVR5>; 370*0b57cec5SDimitry Andricdef : Device<"atmega3290", FamilyAVR5, ELFArchAVR5>; 371*0b57cec5SDimitry Andricdef : Device<"atmega3290a", FamilyAVR5, ELFArchAVR5>; 372*0b57cec5SDimitry Andricdef : Device<"atmega3290p", FamilyAVR5, ELFArchAVR5>; 373*0b57cec5SDimitry Andricdef : Device<"atmega3290pa", FamilyAVR5, ELFArchAVR5>; 374*0b57cec5SDimitry Andricdef : Device<"atmega406", FamilyAVR5, ELFArchAVR5>; 375*0b57cec5SDimitry Andricdef : Device<"atmega64", FamilyAVR5, ELFArchAVR5>; 376*0b57cec5SDimitry Andricdef : Device<"atmega64a", FamilyAVR5, ELFArchAVR5>; 377*0b57cec5SDimitry Andricdef : Device<"atmega640", FamilyAVR5, ELFArchAVR5>; 378*0b57cec5SDimitry Andricdef : Device<"atmega644", FamilyAVR5, ELFArchAVR5>; 379*0b57cec5SDimitry Andricdef : Device<"atmega644a", FamilyAVR5, ELFArchAVR5>; 380*0b57cec5SDimitry Andricdef : Device<"atmega644p", FamilyAVR5, ELFArchAVR5>; 381*0b57cec5SDimitry Andricdef : Device<"atmega644pa", FamilyAVR5, ELFArchAVR5>; 382*0b57cec5SDimitry Andricdef : Device<"atmega645", FamilyAVR5, ELFArchAVR5>; 383*0b57cec5SDimitry Andricdef : Device<"atmega645a", FamilyAVR5, ELFArchAVR5>; 384*0b57cec5SDimitry Andricdef : Device<"atmega645p", FamilyAVR5, ELFArchAVR5>; 385*0b57cec5SDimitry Andricdef : Device<"atmega649", FamilyAVR5, ELFArchAVR5>; 386*0b57cec5SDimitry Andricdef : Device<"atmega649a", FamilyAVR5, ELFArchAVR5>; 387*0b57cec5SDimitry Andricdef : Device<"atmega649p", FamilyAVR5, ELFArchAVR5>; 388*0b57cec5SDimitry Andricdef : Device<"atmega6450", FamilyAVR5, ELFArchAVR5>; 389*0b57cec5SDimitry Andricdef : Device<"atmega6450a", FamilyAVR5, ELFArchAVR5>; 390*0b57cec5SDimitry Andricdef : Device<"atmega6450p", FamilyAVR5, ELFArchAVR5>; 391*0b57cec5SDimitry Andricdef : Device<"atmega6490", FamilyAVR5, ELFArchAVR5>; 392*0b57cec5SDimitry Andricdef : Device<"atmega6490a", FamilyAVR5, ELFArchAVR5>; 393*0b57cec5SDimitry Andricdef : Device<"atmega6490p", FamilyAVR5, ELFArchAVR5>; 394*0b57cec5SDimitry Andricdef : Device<"atmega64rfr2", FamilyAVR5, ELFArchAVR5>; 395*0b57cec5SDimitry Andricdef : Device<"atmega644rfr2", FamilyAVR5, ELFArchAVR5>; 396*0b57cec5SDimitry Andricdef : Device<"atmega16hva", FamilyAVR5, ELFArchAVR5>; 397*0b57cec5SDimitry Andricdef : Device<"atmega16hva2", FamilyAVR5, ELFArchAVR5>; 398*0b57cec5SDimitry Andricdef : Device<"atmega16hvb", FamilyAVR5, ELFArchAVR5>; 399*0b57cec5SDimitry Andricdef : Device<"atmega16hvbrevb", FamilyAVR5, ELFArchAVR5>; 400*0b57cec5SDimitry Andricdef : Device<"atmega32hvb", FamilyAVR5, ELFArchAVR5>; 401*0b57cec5SDimitry Andricdef : Device<"atmega32hvbrevb", FamilyAVR5, ELFArchAVR5>; 402*0b57cec5SDimitry Andricdef : Device<"atmega64hve", FamilyAVR5, ELFArchAVR5>; 403*0b57cec5SDimitry Andricdef : Device<"at90can32", FamilyAVR5, ELFArchAVR5>; 404*0b57cec5SDimitry Andricdef : Device<"at90can64", FamilyAVR5, ELFArchAVR5>; 405*0b57cec5SDimitry Andricdef : Device<"at90pwm161", FamilyAVR5, ELFArchAVR5>; 406*0b57cec5SDimitry Andricdef : Device<"at90pwm216", FamilyAVR5, ELFArchAVR5>; 407*0b57cec5SDimitry Andricdef : Device<"at90pwm316", FamilyAVR5, ELFArchAVR5>; 408*0b57cec5SDimitry Andricdef : Device<"atmega32c1", FamilyAVR5, ELFArchAVR5>; 409*0b57cec5SDimitry Andricdef : Device<"atmega64c1", FamilyAVR5, ELFArchAVR5>; 410*0b57cec5SDimitry Andricdef : Device<"atmega16m1", FamilyAVR5, ELFArchAVR5>; 411*0b57cec5SDimitry Andricdef : Device<"atmega32m1", FamilyAVR5, ELFArchAVR5>; 412*0b57cec5SDimitry Andricdef : Device<"atmega64m1", FamilyAVR5, ELFArchAVR5>; 413*0b57cec5SDimitry Andricdef : Device<"atmega16u4", FamilyAVR5, ELFArchAVR5>; 414*0b57cec5SDimitry Andricdef : Device<"atmega32u4", FamilyAVR5, ELFArchAVR5>; 415*0b57cec5SDimitry Andricdef : Device<"atmega32u6", FamilyAVR5, ELFArchAVR5>; 416*0b57cec5SDimitry Andricdef : Device<"at90usb646", FamilyAVR5, ELFArchAVR5>; 417*0b57cec5SDimitry Andricdef : Device<"at90usb647", FamilyAVR5, ELFArchAVR5>; 418*0b57cec5SDimitry Andricdef : Device<"at90scr100", FamilyAVR5, ELFArchAVR5>; 419*0b57cec5SDimitry Andricdef : Device<"at94k", FamilyAVR3, ELFArchAVR5, 420*0b57cec5SDimitry Andric [FeatureMultiplication, FeatureMOVW, FeatureLPMX]>; 421*0b57cec5SDimitry Andricdef : Device<"m3000", FamilyAVR5, ELFArchAVR5>; 422*0b57cec5SDimitry Andricdef : Device<"atmega128", FamilyAVR51, ELFArchAVR51>; 423*0b57cec5SDimitry Andricdef : Device<"atmega128a", FamilyAVR51, ELFArchAVR51>; 424*0b57cec5SDimitry Andricdef : Device<"atmega1280", FamilyAVR51, ELFArchAVR51>; 425*0b57cec5SDimitry Andricdef : Device<"atmega1281", FamilyAVR51, ELFArchAVR51>; 426*0b57cec5SDimitry Andricdef : Device<"atmega1284", FamilyAVR51, ELFArchAVR51>; 427*0b57cec5SDimitry Andricdef : Device<"atmega1284p", FamilyAVR51, ELFArchAVR51>; 428*0b57cec5SDimitry Andricdef : Device<"atmega128rfa1", FamilyAVR51, ELFArchAVR51>; 429*0b57cec5SDimitry Andricdef : Device<"atmega128rfr2", FamilyAVR51, ELFArchAVR51>; 430*0b57cec5SDimitry Andricdef : Device<"atmega1284rfr2", FamilyAVR51, ELFArchAVR51>; 431*0b57cec5SDimitry Andricdef : Device<"at90can128", FamilyAVR51, ELFArchAVR51>; 432*0b57cec5SDimitry Andricdef : Device<"at90usb1286", FamilyAVR51, ELFArchAVR51>; 433*0b57cec5SDimitry Andricdef : Device<"at90usb1287", FamilyAVR51, ELFArchAVR51>; 434*0b57cec5SDimitry Andricdef : Device<"atmega2560", FamilyAVR6, ELFArchAVR6>; 435*0b57cec5SDimitry Andricdef : Device<"atmega2561", FamilyAVR6, ELFArchAVR6>; 436*0b57cec5SDimitry Andricdef : Device<"atmega256rfr2", FamilyAVR6, ELFArchAVR6>; 437*0b57cec5SDimitry Andricdef : Device<"atmega2564rfr2", FamilyAVR6, ELFArchAVR6>; 438*0b57cec5SDimitry Andricdef : Device<"atxmega16a4", FamilyXMEGA, ELFArchXMEGA2>; 439*0b57cec5SDimitry Andricdef : Device<"atxmega16a4u", FamilyXMEGAU, ELFArchXMEGA2>; 440*0b57cec5SDimitry Andricdef : Device<"atxmega16c4", FamilyXMEGAU, ELFArchXMEGA2>; 441*0b57cec5SDimitry Andricdef : Device<"atxmega16d4", FamilyXMEGA, ELFArchXMEGA2>; 442*0b57cec5SDimitry Andricdef : Device<"atxmega32a4", FamilyXMEGA, ELFArchXMEGA2>; 443*0b57cec5SDimitry Andricdef : Device<"atxmega32a4u", FamilyXMEGAU, ELFArchXMEGA2>; 444*0b57cec5SDimitry Andricdef : Device<"atxmega32c4", FamilyXMEGAU, ELFArchXMEGA2>; 445*0b57cec5SDimitry Andricdef : Device<"atxmega32d4", FamilyXMEGA, ELFArchXMEGA2>; 446*0b57cec5SDimitry Andricdef : Device<"atxmega32e5", FamilyXMEGA, ELFArchXMEGA2>; 447*0b57cec5SDimitry Andricdef : Device<"atxmega16e5", FamilyXMEGA, ELFArchXMEGA2>; 448*0b57cec5SDimitry Andricdef : Device<"atxmega8e5", FamilyXMEGA, ELFArchXMEGA2>; 449*0b57cec5SDimitry Andricdef : Device<"atxmega32x1", FamilyXMEGA, ELFArchXMEGA2>; 450*0b57cec5SDimitry Andricdef : Device<"atxmega64a3", FamilyXMEGA, ELFArchXMEGA4>; 451*0b57cec5SDimitry Andricdef : Device<"atxmega64a3u", FamilyXMEGAU, ELFArchXMEGA4>; 452*0b57cec5SDimitry Andricdef : Device<"atxmega64a4u", FamilyXMEGAU, ELFArchXMEGA4>; 453*0b57cec5SDimitry Andricdef : Device<"atxmega64b1", FamilyXMEGAU, ELFArchXMEGA4>; 454*0b57cec5SDimitry Andricdef : Device<"atxmega64b3", FamilyXMEGAU, ELFArchXMEGA4>; 455*0b57cec5SDimitry Andricdef : Device<"atxmega64c3", FamilyXMEGAU, ELFArchXMEGA4>; 456*0b57cec5SDimitry Andricdef : Device<"atxmega64d3", FamilyXMEGA, ELFArchXMEGA4>; 457*0b57cec5SDimitry Andricdef : Device<"atxmega64d4", FamilyXMEGA, ELFArchXMEGA4>; 458*0b57cec5SDimitry Andricdef : Device<"atxmega64a1", FamilyXMEGA, ELFArchXMEGA5>; 459*0b57cec5SDimitry Andricdef : Device<"atxmega64a1u", FamilyXMEGAU, ELFArchXMEGA5>; 460*0b57cec5SDimitry Andricdef : Device<"atxmega128a3", FamilyXMEGA, ELFArchXMEGA6>; 461*0b57cec5SDimitry Andricdef : Device<"atxmega128a3u", FamilyXMEGAU, ELFArchXMEGA6>; 462*0b57cec5SDimitry Andricdef : Device<"atxmega128b1", FamilyXMEGAU, ELFArchXMEGA6>; 463*0b57cec5SDimitry Andricdef : Device<"atxmega128b3", FamilyXMEGAU, ELFArchXMEGA6>; 464*0b57cec5SDimitry Andricdef : Device<"atxmega128c3", FamilyXMEGAU, ELFArchXMEGA6>; 465*0b57cec5SDimitry Andricdef : Device<"atxmega128d3", FamilyXMEGA, ELFArchXMEGA6>; 466*0b57cec5SDimitry Andricdef : Device<"atxmega128d4", FamilyXMEGA, ELFArchXMEGA6>; 467*0b57cec5SDimitry Andricdef : Device<"atxmega192a3", FamilyXMEGA, ELFArchXMEGA6>; 468*0b57cec5SDimitry Andricdef : Device<"atxmega192a3u", FamilyXMEGAU, ELFArchXMEGA6>; 469*0b57cec5SDimitry Andricdef : Device<"atxmega192c3", FamilyXMEGAU, ELFArchXMEGA6>; 470*0b57cec5SDimitry Andricdef : Device<"atxmega192d3", FamilyXMEGA, ELFArchXMEGA6>; 471*0b57cec5SDimitry Andricdef : Device<"atxmega256a3", FamilyXMEGA, ELFArchXMEGA6>; 472*0b57cec5SDimitry Andricdef : Device<"atxmega256a3u", FamilyXMEGAU, ELFArchXMEGA6>; 473*0b57cec5SDimitry Andricdef : Device<"atxmega256a3b", FamilyXMEGA, ELFArchXMEGA6>; 474*0b57cec5SDimitry Andricdef : Device<"atxmega256a3bu", FamilyXMEGAU, ELFArchXMEGA6>; 475*0b57cec5SDimitry Andricdef : Device<"atxmega256c3", FamilyXMEGAU, ELFArchXMEGA6>; 476*0b57cec5SDimitry Andricdef : Device<"atxmega256d3", FamilyXMEGA, ELFArchXMEGA6>; 477*0b57cec5SDimitry Andricdef : Device<"atxmega384c3", FamilyXMEGAU, ELFArchXMEGA6>; 478*0b57cec5SDimitry Andricdef : Device<"atxmega384d3", FamilyXMEGA, ELFArchXMEGA6>; 479*0b57cec5SDimitry Andricdef : Device<"atxmega128a1", FamilyXMEGA, ELFArchXMEGA7>; 480*0b57cec5SDimitry Andricdef : Device<"atxmega128a1u", FamilyXMEGAU, ELFArchXMEGA7>; 481*0b57cec5SDimitry Andricdef : Device<"atxmega128a4u", FamilyXMEGAU, ELFArchXMEGA7>; 482*0b57cec5SDimitry Andricdef : Device<"attiny4", FamilyTiny, ELFArchTiny>; 483*0b57cec5SDimitry Andricdef : Device<"attiny5", FamilyTiny, ELFArchTiny>; 484*0b57cec5SDimitry Andricdef : Device<"attiny9", FamilyTiny, ELFArchTiny>; 485*0b57cec5SDimitry Andricdef : Device<"attiny10", FamilyTiny, ELFArchTiny>; 486*0b57cec5SDimitry Andricdef : Device<"attiny20", FamilyTiny, ELFArchTiny>; 487*0b57cec5SDimitry Andricdef : Device<"attiny40", FamilyTiny, ELFArchTiny>; 488*0b57cec5SDimitry Andricdef : Device<"attiny102", FamilyTiny, ELFArchTiny>; 489*0b57cec5SDimitry Andricdef : Device<"attiny104", FamilyTiny, ELFArchTiny>; 490*0b57cec5SDimitry Andric 491