Skip to content

Commit ad94f77

Browse files
authored
[AVR] Add many new AVR MCU model definitions (#144229)
1. Added the missing XMEGA2 definition. The avr64 devices use xmega2 which has SPM(X) defined. 2. The avr16/avr32 devices do have SPM and SPMX features, but the current xmega3 definition has not. Xmega3 is also used for modern attiny series which do not have SPM(X), so that is correct. Leave the avr16/avr32 devices unchanged (using xmega3 to be in sync with gcc definitions). Fixes #116116
1 parent d793168 commit ad94f77

File tree

4 files changed

+288
-0
lines changed

4 files changed

+288
-0
lines changed

clang/lib/Basic/Targets/AVR.cpp

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,9 @@ static MCUInfo AVRMcus[] = {
336336
{"attiny1624", "__AVR_ATtiny1624__", "103", 1},
337337
{"attiny1626", "__AVR_ATtiny1626__", "103", 1},
338338
{"attiny1627", "__AVR_ATtiny1627__", "103", 1},
339+
{"attiny3224", "__AVR_ATtiny3224__", "103", 1},
340+
{"attiny3226", "__AVR_ATtiny3226__", "103", 1},
341+
{"attiny3227", "__AVR_ATtiny3227__", "103", 1},
339342
{"atmega808", "__AVR_ATmega808__", "103", 1},
340343
{"atmega809", "__AVR_ATmega809__", "103", 1},
341344
{"atmega1608", "__AVR_ATmega1608__", "103", 1},
@@ -344,6 +347,72 @@ static MCUInfo AVRMcus[] = {
344347
{"atmega3209", "__AVR_ATmega3209__", "103", 1},
345348
{"atmega4808", "__AVR_ATmega4808__", "103", 1},
346349
{"atmega4809", "__AVR_ATmega4809__", "103", 1},
350+
351+
// gcc 14 additions:
352+
353+
{"avr64da28", "__AVR_AVR64DA28__", "102", 1},
354+
{"avr64da32", "__AVR_AVR64DA32__", "102", 1},
355+
{"avr64da48", "__AVR_AVR64DA48__", "102", 1},
356+
{"avr64da64", "__AVR_AVR64DA64__", "102", 1},
357+
{"avr64db28", "__AVR_AVR64DB28__", "102", 1},
358+
{"avr64db32", "__AVR_AVR64DB32__", "102", 1},
359+
{"avr64db48", "__AVR_AVR64DB48__", "102", 1},
360+
{"avr64db64", "__AVR_AVR64DB64__", "102", 1},
361+
{"avr64dd14", "__AVR_AVR64DD14__", "102", 1},
362+
{"avr64dd20", "__AVR_AVR64DD20__", "102", 1},
363+
{"avr64dd28", "__AVR_AVR64DD28__", "102", 1},
364+
{"avr64dd32", "__AVR_AVR64DD32__", "102", 1},
365+
{"avr64du28", "__AVR_AVR64DU28__", "102", 1},
366+
{"avr64du32", "__AVR_AVR64DU32__", "102", 1},
367+
{"avr64ea28", "__AVR_AVR64EA28__", "102", 1},
368+
{"avr64ea32", "__AVR_AVR64EA32__", "102", 1},
369+
{"avr64ea48", "__AVR_AVR64EA48__", "102", 1},
370+
{"avr64sd28", "__AVR_AVR64SD28__", "102", 1},
371+
{"avr64sd32", "__AVR_AVR64SD32__", "102", 1},
372+
{"avr64sd48", "__AVR_AVR64SD48__", "102", 1},
373+
374+
{"avr16dd20", "__AVR_AVR16DD20__", "103", 1},
375+
{"avr16dd28", "__AVR_AVR16DD28__", "103", 1},
376+
{"avr16dd32", "__AVR_AVR16DD32__", "103", 1},
377+
{"avr16du14", "__AVR_AVR16DU14__", "103", 1},
378+
{"avr16du20", "__AVR_AVR16DU20__", "103", 1},
379+
{"avr16du28", "__AVR_AVR16DU28__", "103", 1},
380+
{"avr16du32", "__AVR_AVR16DU32__", "103", 1},
381+
{"avr32da28", "__AVR_AVR32DA28__", "103", 1},
382+
{"avr32da32", "__AVR_AVR32DA32__", "103", 1},
383+
{"avr32da48", "__AVR_AVR32DA48__", "103", 1},
384+
{"avr32db28", "__AVR_AVR32DB28__", "103", 1},
385+
{"avr32db32", "__AVR_AVR32DB32__", "103", 1},
386+
{"avr32db48", "__AVR_AVR32DB48__", "103", 1},
387+
{"avr32dd14", "__AVR_AVR32DD14__", "103", 1},
388+
{"avr32dd20", "__AVR_AVR32DD20__", "103", 1},
389+
{"avr32dd28", "__AVR_AVR32DD28__", "103", 1},
390+
{"avr32dd32", "__AVR_AVR32DD32__", "103", 1},
391+
{"avr32du14", "__AVR_AVR32DU14__", "103", 1},
392+
{"avr32du20", "__AVR_AVR32DU20__", "103", 1},
393+
{"avr32du28", "__AVR_AVR32DU28__", "103", 1},
394+
{"avr32du32", "__AVR_AVR32DU32__", "103", 1},
395+
{"avr16eb14", "__AVR_AVR16EB14__", "103", 1},
396+
{"avr16eb20", "__AVR_AVR16EB20__", "103", 1},
397+
{"avr16eb28", "__AVR_AVR16EB28__", "103", 1},
398+
{"avr16eb32", "__AVR_AVR16EB32__", "103", 1},
399+
{"avr16ea28", "__AVR_AVR16EA28__", "103", 1},
400+
{"avr16ea32", "__AVR_AVR16EA32__", "103", 1},
401+
{"avr16ea48", "__AVR_AVR16EA48__", "103", 1},
402+
{"avr32ea28", "__AVR_AVR32EA28__", "103", 1},
403+
{"avr32ea32", "__AVR_AVR32EA32__", "103", 1},
404+
{"avr32ea48", "__AVR_AVR32EA48__", "103", 1},
405+
{"avr32sd20", "__AVR_AVR32SD20__", "103", 1},
406+
{"avr32sd28", "__AVR_AVR32SD28__", "103", 1},
407+
{"avr32sd32", "__AVR_AVR32SD32__", "103", 1},
408+
{"avr128da28", "__AVR_AVR128DA28__", "104", 2},
409+
{"avr128da32", "__AVR_AVR128DA32__", "104", 2},
410+
{"avr128da48", "__AVR_AVR128DA48__", "104", 2},
411+
{"avr128da64", "__AVR_AVR128DA64__", "104", 2},
412+
{"avr128db28", "__AVR_AVR128DB28__", "104", 2},
413+
{"avr128db32", "__AVR_AVR128DB32__", "104", 2},
414+
{"avr128db48", "__AVR_AVR128DB48__", "104", 2},
415+
{"avr128db64", "__AVR_AVR128DB64__", "104", 2},
347416
};
348417

349418
} // namespace targets

clang/lib/Driver/ToolChains/AVR.cpp

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,8 +326,78 @@ constexpr struct {
326326
{"attiny1624", "avrxmega3", "avrxmega3", 0x803800},
327327
{"attiny1626", "avrxmega3", "avrxmega3", 0x803800},
328328
{"attiny1627", "avrxmega3", "avrxmega3", 0x803800},
329+
{"attiny3224", "avrxmega3", "avrxmega3", 0x803400},
330+
{"attiny3226", "avrxmega3", "avrxmega3", 0x803400},
331+
{"attiny3227", "avrxmega3", "avrxmega3", 0x803400},
329332
{"attiny3216", "avrxmega3", "avrxmega3", 0x803800},
330333
{"attiny3217", "avrxmega3", "avrxmega3", 0x803800},
334+
335+
// gcc 14 additions:
336+
337+
{"avr64da28", "avrxmega2", "avrxmega2", 0x806000},
338+
{"avr64da32", "avrxmega2", "avrxmega2", 0x806000},
339+
{"avr64da48", "avrxmega2", "avrxmega2", 0x806000},
340+
{"avr64da64", "avrxmega2", "avrxmega2", 0x806000},
341+
{"avr64db28", "avrxmega2", "avrxmega2", 0x806000},
342+
{"avr64db32", "avrxmega2", "avrxmega2", 0x806000},
343+
{"avr64db48", "avrxmega2", "avrxmega2", 0x806000},
344+
{"avr64db64", "avrxmega2", "avrxmega2", 0x806000},
345+
{"avr64dd14", "avrxmega2", "avrxmega2", 0x806000},
346+
{"avr64dd20", "avrxmega2", "avrxmega2", 0x806000},
347+
{"avr64dd28", "avrxmega2", "avrxmega2", 0x806000},
348+
{"avr64dd32", "avrxmega2", "avrxmega2", 0x806000},
349+
{"avr64du28", "avrxmega2", "avrxmega2", 0x806000},
350+
{"avr64du32", "avrxmega2", "avrxmega2", 0x806000},
351+
{"avr64ea28", "avrxmega2", "avrxmega2", 0x806800},
352+
{"avr64ea32", "avrxmega2", "avrxmega2", 0x806800},
353+
{"avr64ea48", "avrxmega2", "avrxmega2", 0x806800},
354+
{"avr64sd28", "avrxmega2", "avrxmega2", 0x806000},
355+
{"avr64sd32", "avrxmega2", "avrxmega2", 0x806000},
356+
{"avr64sd48", "avrxmega2", "avrxmega2", 0x806000},
357+
358+
{"avr16dd20", "avrxmega3", "avrxmega3", 0x807800},
359+
{"avr16dd28", "avrxmega3", "avrxmega3", 0x807800},
360+
{"avr16dd32", "avrxmega3", "avrxmega3", 0x807800},
361+
{"avr16du14", "avrxmega3", "avrxmega3", 0x807800},
362+
{"avr16du20", "avrxmega3", "avrxmega3", 0x807800},
363+
{"avr16du28", "avrxmega3", "avrxmega3", 0x807800},
364+
{"avr16du32", "avrxmega3", "avrxmega3", 0x807800},
365+
{"avr32da28", "avrxmega3", "avrxmega3", 0x807000},
366+
{"avr32da32", "avrxmega3", "avrxmega3", 0x807000},
367+
{"avr32da48", "avrxmega3", "avrxmega3", 0x807000},
368+
{"avr32db28", "avrxmega3", "avrxmega3", 0x807000},
369+
{"avr32db32", "avrxmega3", "avrxmega3", 0x807000},
370+
{"avr32db48", "avrxmega3", "avrxmega3", 0x807000},
371+
{"avr32dd14", "avrxmega3", "avrxmega3", 0x807000},
372+
{"avr32dd20", "avrxmega3", "avrxmega3", 0x807000},
373+
{"avr32dd28", "avrxmega3", "avrxmega3", 0x807000},
374+
{"avr32dd32", "avrxmega3", "avrxmega3", 0x807000},
375+
{"avr32du14", "avrxmega3", "avrxmega3", 0x807000},
376+
{"avr32du20", "avrxmega3", "avrxmega3", 0x807000},
377+
{"avr32du28", "avrxmega3", "avrxmega3", 0x807000},
378+
{"avr32du32", "avrxmega3", "avrxmega3", 0x807000},
379+
{"avr16eb14", "avrxmega3", "avrxmega3", 0x807800},
380+
{"avr16eb20", "avrxmega3", "avrxmega3", 0x807800},
381+
{"avr16eb28", "avrxmega3", "avrxmega3", 0x807800},
382+
{"avr16eb32", "avrxmega3", "avrxmega3", 0x807800},
383+
{"avr16ea28", "avrxmega3", "avrxmega3", 0x807800},
384+
{"avr16ea32", "avrxmega3", "avrxmega3", 0x807800},
385+
{"avr16ea48", "avrxmega3", "avrxmega3", 0x807800},
386+
{"avr32ea28", "avrxmega3", "avrxmega3", 0x807000},
387+
{"avr32ea32", "avrxmega3", "avrxmega3", 0x807000},
388+
{"avr32ea48", "avrxmega3", "avrxmega3", 0x807000},
389+
{"avr32sd20", "avrxmega3", "avrxmega3", 0x807000},
390+
{"avr32sd28", "avrxmega3", "avrxmega3", 0x807000},
391+
{"avr32sd32", "avrxmega3", "avrxmega3", 0x807000},
392+
{"avr128da28", "avrxmega4", "avrxmega4", 0x804000},
393+
{"avr128da32", "avrxmega4", "avrxmega4", 0x804000},
394+
{"avr128da48", "avrxmega4", "avrxmega4", 0x804000},
395+
{"avr128da64", "avrxmega4", "avrxmega4", 0x804000},
396+
{"avr128db28", "avrxmega4", "avrxmega4", 0x804000},
397+
{"avr128db32", "avrxmega4", "avrxmega4", 0x804000},
398+
{"avr128db48", "avrxmega4", "avrxmega4", 0x804000},
399+
{"avr128db64", "avrxmega4", "avrxmega4", 0x804000},
400+
331401
};
332402

333403
std::string GetMCUSubPath(StringRef MCUName) {

clang/test/Misc/target-invalid-cpu-note/avr.c

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,9 @@
311311
// CHECK-SAME: {{^}}, attiny1624
312312
// CHECK-SAME: {{^}}, attiny1626
313313
// CHECK-SAME: {{^}}, attiny1627
314+
// CHECK-SAME: {{^}}, attiny3224
315+
// CHECK-SAME: {{^}}, attiny3226
316+
// CHECK-SAME: {{^}}, attiny3227
314317
// CHECK-SAME: {{^}}, atmega808
315318
// CHECK-SAME: {{^}}, atmega809
316319
// CHECK-SAME: {{^}}, atmega1608
@@ -319,4 +322,66 @@
319322
// CHECK-SAME: {{^}}, atmega3209
320323
// CHECK-SAME: {{^}}, atmega4808
321324
// CHECK-SAME: {{^}}, atmega4809
325+
// CHECK-SAME: {{^}}, avr64da28
326+
// CHECK-SAME: {{^}}, avr64da32
327+
// CHECK-SAME: {{^}}, avr64da48
328+
// CHECK-SAME: {{^}}, avr64da64
329+
// CHECK-SAME: {{^}}, avr64db28
330+
// CHECK-SAME: {{^}}, avr64db32
331+
// CHECK-SAME: {{^}}, avr64db48
332+
// CHECK-SAME: {{^}}, avr64db64
333+
// CHECK-SAME: {{^}}, avr64dd14
334+
// CHECK-SAME: {{^}}, avr64dd20
335+
// CHECK-SAME: {{^}}, avr64dd28
336+
// CHECK-SAME: {{^}}, avr64dd32
337+
// CHECK-SAME: {{^}}, avr64du28
338+
// CHECK-SAME: {{^}}, avr64du32
339+
// CHECK-SAME: {{^}}, avr64ea28
340+
// CHECK-SAME: {{^}}, avr64ea32
341+
// CHECK-SAME: {{^}}, avr64ea48
342+
// CHECK-SAME: {{^}}, avr64sd28
343+
// CHECK-SAME: {{^}}, avr64sd32
344+
// CHECK-SAME: {{^}}, avr64sd48
345+
// CHECK-SAME: {{^}}, avr16dd20
346+
// CHECK-SAME: {{^}}, avr16dd28
347+
// CHECK-SAME: {{^}}, avr16dd32
348+
// CHECK-SAME: {{^}}, avr16du14
349+
// CHECK-SAME: {{^}}, avr16du20
350+
// CHECK-SAME: {{^}}, avr16du28
351+
// CHECK-SAME: {{^}}, avr16du32
352+
// CHECK-SAME: {{^}}, avr32da28
353+
// CHECK-SAME: {{^}}, avr32da32
354+
// CHECK-SAME: {{^}}, avr32da48
355+
// CHECK-SAME: {{^}}, avr32db28
356+
// CHECK-SAME: {{^}}, avr32db32
357+
// CHECK-SAME: {{^}}, avr32db48
358+
// CHECK-SAME: {{^}}, avr32dd14
359+
// CHECK-SAME: {{^}}, avr32dd20
360+
// CHECK-SAME: {{^}}, avr32dd28
361+
// CHECK-SAME: {{^}}, avr32dd32
362+
// CHECK-SAME: {{^}}, avr32du14
363+
// CHECK-SAME: {{^}}, avr32du20
364+
// CHECK-SAME: {{^}}, avr32du28
365+
// CHECK-SAME: {{^}}, avr32du32
366+
// CHECK-SAME: {{^}}, avr16eb14
367+
// CHECK-SAME: {{^}}, avr16eb20
368+
// CHECK-SAME: {{^}}, avr16eb28
369+
// CHECK-SAME: {{^}}, avr16eb32
370+
// CHECK-SAME: {{^}}, avr16ea28
371+
// CHECK-SAME: {{^}}, avr16ea32
372+
// CHECK-SAME: {{^}}, avr16ea48
373+
// CHECK-SAME: {{^}}, avr32ea28
374+
// CHECK-SAME: {{^}}, avr32ea32
375+
// CHECK-SAME: {{^}}, avr32ea48
376+
// CHECK-SAME: {{^}}, avr32sd20
377+
// CHECK-SAME: {{^}}, avr32sd28
378+
// CHECK-SAME: {{^}}, avr32sd32
379+
// CHECK-SAME: {{^}}, avr128da28
380+
// CHECK-SAME: {{^}}, avr128da32
381+
// CHECK-SAME: {{^}}, avr128da48
382+
// CHECK-SAME: {{^}}, avr128da64
383+
// CHECK-SAME: {{^}}, avr128db28
384+
// CHECK-SAME: {{^}}, avr128db32
385+
// CHECK-SAME: {{^}}, avr128db48
386+
// CHECK-SAME: {{^}}, avr128db64
322387
// CHECK-SAME: {{$}}

llvm/lib/Target/AVR/AVRDevices.td

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,12 +209,27 @@ def FamilyTiny
209209
[FamilyAVR0, FeatureBREAK, FeatureSRAM, FeatureTinyEncoding,
210210
FeatureSmallStack]>;
211211

212+
def FamilyXMEGA2 : Family<"xmega2",
213+
[FamilyAVR0, FeatureLPM, FeatureIJMPCALL,
214+
FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL,
215+
FeatureMultiplication, FeatureMOVW, FeatureLPMX,
216+
FeatureSPM, FeatureSPMX,
217+
FeatureBREAK, FeatureLowByteFirst]>;
218+
212219
def FamilyXMEGA3 : Family<"xmega3",
213220
[FamilyAVR0, FeatureLPM, FeatureIJMPCALL,
214221
FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL,
215222
FeatureMultiplication, FeatureMOVW, FeatureLPMX,
216223
FeatureBREAK, FeatureLowByteFirst]>;
217224

225+
def FamilyXMEGA4 : Family<"xmega4",
226+
[FamilyAVR0, FeatureLPM, FeatureIJMPCALL,
227+
FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL,
228+
FeatureMultiplication, FeatureMOVW, FeatureLPMX,
229+
FeatureELPM, FeatureELPMX,
230+
FeatureSPM, FeatureSPMX,
231+
FeatureBREAK, FeatureLowByteFirst]>;
232+
218233
def FamilyXMEGA : Family<"xmega",
219234
[FamilyAVR0, FeatureLPM, FeatureIJMPCALL,
220235
FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL,
@@ -567,6 +582,9 @@ def : Device<"attiny3217", FamilyXMEGA3, ELFArchXMEGA3>;
567582
def : Device<"attiny1624", FamilyXMEGA3, ELFArchXMEGA3>;
568583
def : Device<"attiny1626", FamilyXMEGA3, ELFArchXMEGA3>;
569584
def : Device<"attiny1627", FamilyXMEGA3, ELFArchXMEGA3>;
585+
def : Device<"attiny3224", FamilyXMEGA3, ELFArchXMEGA3>;
586+
def : Device<"attiny3226", FamilyXMEGA3, ELFArchXMEGA3>;
587+
def : Device<"attiny3227", FamilyXMEGA3, ELFArchXMEGA3>;
570588
def : Device<"atmega808", FamilyXMEGA3, ELFArchXMEGA3>;
571589
def : Device<"atmega809", FamilyXMEGA3, ELFArchXMEGA3>;
572590
def : Device<"atmega1608", FamilyXMEGA3, ELFArchXMEGA3>;
@@ -575,3 +593,69 @@ def : Device<"atmega3208", FamilyXMEGA3, ELFArchXMEGA3>;
575593
def : Device<"atmega3209", FamilyXMEGA3, ELFArchXMEGA3>;
576594
def : Device<"atmega4808", FamilyXMEGA3, ELFArchXMEGA3>;
577595
def : Device<"atmega4809", FamilyXMEGA3, ELFArchXMEGA3>;
596+
597+
// Additions from gcc 14:
598+
599+
def : Device<"avr64da28", FamilyXMEGA2, ELFArchXMEGA2>;
600+
def : Device<"avr64da32", FamilyXMEGA2, ELFArchXMEGA2>;
601+
def : Device<"avr64da48", FamilyXMEGA2, ELFArchXMEGA2>;
602+
def : Device<"avr64da64", FamilyXMEGA2, ELFArchXMEGA2>;
603+
def : Device<"avr64db28", FamilyXMEGA2, ELFArchXMEGA2>;
604+
def : Device<"avr64db32", FamilyXMEGA2, ELFArchXMEGA2>;
605+
def : Device<"avr64db48", FamilyXMEGA2, ELFArchXMEGA2>;
606+
def : Device<"avr64db64", FamilyXMEGA2, ELFArchXMEGA2>;
607+
def : Device<"avr64dd14", FamilyXMEGA2, ELFArchXMEGA2>;
608+
def : Device<"avr64dd20", FamilyXMEGA2, ELFArchXMEGA2>;
609+
def : Device<"avr64dd28", FamilyXMEGA2, ELFArchXMEGA2>;
610+
def : Device<"avr64dd32", FamilyXMEGA2, ELFArchXMEGA2>;
611+
def : Device<"avr64du28", FamilyXMEGA2, ELFArchXMEGA2>;
612+
def : Device<"avr64du32", FamilyXMEGA2, ELFArchXMEGA2>;
613+
def : Device<"avr64ea28", FamilyXMEGA2, ELFArchXMEGA2>;
614+
def : Device<"avr64ea32", FamilyXMEGA2, ELFArchXMEGA2>;
615+
def : Device<"avr64ea48", FamilyXMEGA2, ELFArchXMEGA2>;
616+
def : Device<"avr64sd28", FamilyXMEGA2, ELFArchXMEGA2>;
617+
def : Device<"avr64sd32", FamilyXMEGA2, ELFArchXMEGA2>;
618+
def : Device<"avr64sd48", FamilyXMEGA2, ELFArchXMEGA2>;
619+
620+
def : Device<"avr16dd20", FamilyXMEGA3, ELFArchXMEGA3>;
621+
def : Device<"avr16dd28", FamilyXMEGA3, ELFArchXMEGA3>;
622+
def : Device<"avr16dd32", FamilyXMEGA3, ELFArchXMEGA3>;
623+
def : Device<"avr16du14", FamilyXMEGA3, ELFArchXMEGA3>;
624+
def : Device<"avr16du20", FamilyXMEGA3, ELFArchXMEGA3>;
625+
def : Device<"avr16du28", FamilyXMEGA3, ELFArchXMEGA3>;
626+
def : Device<"avr16du32", FamilyXMEGA3, ELFArchXMEGA3>;
627+
def : Device<"avr32da28", FamilyXMEGA3, ELFArchXMEGA3>;
628+
def : Device<"avr32da32", FamilyXMEGA3, ELFArchXMEGA3>;
629+
def : Device<"avr32da48", FamilyXMEGA3, ELFArchXMEGA3>;
630+
def : Device<"avr32db28", FamilyXMEGA3, ELFArchXMEGA3>;
631+
def : Device<"avr32db32", FamilyXMEGA3, ELFArchXMEGA3>;
632+
def : Device<"avr32db48", FamilyXMEGA3, ELFArchXMEGA3>;
633+
def : Device<"avr32dd14", FamilyXMEGA3, ELFArchXMEGA3>;
634+
def : Device<"avr32dd20", FamilyXMEGA3, ELFArchXMEGA3>;
635+
def : Device<"avr32dd28", FamilyXMEGA3, ELFArchXMEGA3>;
636+
def : Device<"avr32dd32", FamilyXMEGA3, ELFArchXMEGA3>;
637+
def : Device<"avr32du14", FamilyXMEGA3, ELFArchXMEGA3>;
638+
def : Device<"avr32du20", FamilyXMEGA3, ELFArchXMEGA3>;
639+
def : Device<"avr32du28", FamilyXMEGA3, ELFArchXMEGA3>;
640+
def : Device<"avr32du32", FamilyXMEGA3, ELFArchXMEGA3>;
641+
def : Device<"avr16eb14", FamilyXMEGA3, ELFArchXMEGA3>;
642+
def : Device<"avr16eb20", FamilyXMEGA3, ELFArchXMEGA3>;
643+
def : Device<"avr16eb28", FamilyXMEGA3, ELFArchXMEGA3>;
644+
def : Device<"avr16eb32", FamilyXMEGA3, ELFArchXMEGA3>;
645+
def : Device<"avr16ea28", FamilyXMEGA3, ELFArchXMEGA3>;
646+
def : Device<"avr16ea32", FamilyXMEGA3, ELFArchXMEGA3>;
647+
def : Device<"avr16ea48", FamilyXMEGA3, ELFArchXMEGA3>;
648+
def : Device<"avr32ea28", FamilyXMEGA3, ELFArchXMEGA3>;
649+
def : Device<"avr32ea32", FamilyXMEGA3, ELFArchXMEGA3>;
650+
def : Device<"avr32ea48", FamilyXMEGA3, ELFArchXMEGA3>;
651+
def : Device<"avr32sd20", FamilyXMEGA3, ELFArchXMEGA3>;
652+
def : Device<"avr32sd28", FamilyXMEGA3, ELFArchXMEGA3>;
653+
def : Device<"avr32sd32", FamilyXMEGA3, ELFArchXMEGA3>;
654+
def : Device<"avr128da28", FamilyXMEGA4, ELFArchXMEGA4>;
655+
def : Device<"avr128da32", FamilyXMEGA4, ELFArchXMEGA4>;
656+
def : Device<"avr128da48", FamilyXMEGA4, ELFArchXMEGA4>;
657+
def : Device<"avr128da64", FamilyXMEGA4, ELFArchXMEGA4>;
658+
def : Device<"avr128db28", FamilyXMEGA4, ELFArchXMEGA4>;
659+
def : Device<"avr128db32", FamilyXMEGA4, ELFArchXMEGA4>;
660+
def : Device<"avr128db48", FamilyXMEGA4, ELFArchXMEGA4>;
661+
def : Device<"avr128db64", FamilyXMEGA4, ELFArchXMEGA4>;

0 commit comments

Comments
 (0)