Author: Tom Vijlbrief Date: 2025-06-16T09:25:40+08:00 New Revision: ad94f77a6a0c421e1f5815d1b8e5aa86d8dd2e92
URL: https://github.com/llvm/llvm-project/commit/ad94f77a6a0c421e1f5815d1b8e5aa86d8dd2e92 DIFF: https://github.com/llvm/llvm-project/commit/ad94f77a6a0c421e1f5815d1b8e5aa86d8dd2e92.diff LOG: [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 https://github.com/llvm/llvm-project/issues/116116 Added: Modified: clang/lib/Basic/Targets/AVR.cpp clang/lib/Driver/ToolChains/AVR.cpp clang/test/Misc/target-invalid-cpu-note/avr.c llvm/lib/Target/AVR/AVRDevices.td Removed: ################################################################################ diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp index 85ca4bc30c461..bbe7b01ca036d 100644 --- a/clang/lib/Basic/Targets/AVR.cpp +++ b/clang/lib/Basic/Targets/AVR.cpp @@ -336,6 +336,9 @@ static MCUInfo AVRMcus[] = { {"attiny1624", "__AVR_ATtiny1624__", "103", 1}, {"attiny1626", "__AVR_ATtiny1626__", "103", 1}, {"attiny1627", "__AVR_ATtiny1627__", "103", 1}, + {"attiny3224", "__AVR_ATtiny3224__", "103", 1}, + {"attiny3226", "__AVR_ATtiny3226__", "103", 1}, + {"attiny3227", "__AVR_ATtiny3227__", "103", 1}, {"atmega808", "__AVR_ATmega808__", "103", 1}, {"atmega809", "__AVR_ATmega809__", "103", 1}, {"atmega1608", "__AVR_ATmega1608__", "103", 1}, @@ -344,6 +347,72 @@ static MCUInfo AVRMcus[] = { {"atmega3209", "__AVR_ATmega3209__", "103", 1}, {"atmega4808", "__AVR_ATmega4808__", "103", 1}, {"atmega4809", "__AVR_ATmega4809__", "103", 1}, + + // gcc 14 additions: + + {"avr64da28", "__AVR_AVR64DA28__", "102", 1}, + {"avr64da32", "__AVR_AVR64DA32__", "102", 1}, + {"avr64da48", "__AVR_AVR64DA48__", "102", 1}, + {"avr64da64", "__AVR_AVR64DA64__", "102", 1}, + {"avr64db28", "__AVR_AVR64DB28__", "102", 1}, + {"avr64db32", "__AVR_AVR64DB32__", "102", 1}, + {"avr64db48", "__AVR_AVR64DB48__", "102", 1}, + {"avr64db64", "__AVR_AVR64DB64__", "102", 1}, + {"avr64dd14", "__AVR_AVR64DD14__", "102", 1}, + {"avr64dd20", "__AVR_AVR64DD20__", "102", 1}, + {"avr64dd28", "__AVR_AVR64DD28__", "102", 1}, + {"avr64dd32", "__AVR_AVR64DD32__", "102", 1}, + {"avr64du28", "__AVR_AVR64DU28__", "102", 1}, + {"avr64du32", "__AVR_AVR64DU32__", "102", 1}, + {"avr64ea28", "__AVR_AVR64EA28__", "102", 1}, + {"avr64ea32", "__AVR_AVR64EA32__", "102", 1}, + {"avr64ea48", "__AVR_AVR64EA48__", "102", 1}, + {"avr64sd28", "__AVR_AVR64SD28__", "102", 1}, + {"avr64sd32", "__AVR_AVR64SD32__", "102", 1}, + {"avr64sd48", "__AVR_AVR64SD48__", "102", 1}, + + {"avr16dd20", "__AVR_AVR16DD20__", "103", 1}, + {"avr16dd28", "__AVR_AVR16DD28__", "103", 1}, + {"avr16dd32", "__AVR_AVR16DD32__", "103", 1}, + {"avr16du14", "__AVR_AVR16DU14__", "103", 1}, + {"avr16du20", "__AVR_AVR16DU20__", "103", 1}, + {"avr16du28", "__AVR_AVR16DU28__", "103", 1}, + {"avr16du32", "__AVR_AVR16DU32__", "103", 1}, + {"avr32da28", "__AVR_AVR32DA28__", "103", 1}, + {"avr32da32", "__AVR_AVR32DA32__", "103", 1}, + {"avr32da48", "__AVR_AVR32DA48__", "103", 1}, + {"avr32db28", "__AVR_AVR32DB28__", "103", 1}, + {"avr32db32", "__AVR_AVR32DB32__", "103", 1}, + {"avr32db48", "__AVR_AVR32DB48__", "103", 1}, + {"avr32dd14", "__AVR_AVR32DD14__", "103", 1}, + {"avr32dd20", "__AVR_AVR32DD20__", "103", 1}, + {"avr32dd28", "__AVR_AVR32DD28__", "103", 1}, + {"avr32dd32", "__AVR_AVR32DD32__", "103", 1}, + {"avr32du14", "__AVR_AVR32DU14__", "103", 1}, + {"avr32du20", "__AVR_AVR32DU20__", "103", 1}, + {"avr32du28", "__AVR_AVR32DU28__", "103", 1}, + {"avr32du32", "__AVR_AVR32DU32__", "103", 1}, + {"avr16eb14", "__AVR_AVR16EB14__", "103", 1}, + {"avr16eb20", "__AVR_AVR16EB20__", "103", 1}, + {"avr16eb28", "__AVR_AVR16EB28__", "103", 1}, + {"avr16eb32", "__AVR_AVR16EB32__", "103", 1}, + {"avr16ea28", "__AVR_AVR16EA28__", "103", 1}, + {"avr16ea32", "__AVR_AVR16EA32__", "103", 1}, + {"avr16ea48", "__AVR_AVR16EA48__", "103", 1}, + {"avr32ea28", "__AVR_AVR32EA28__", "103", 1}, + {"avr32ea32", "__AVR_AVR32EA32__", "103", 1}, + {"avr32ea48", "__AVR_AVR32EA48__", "103", 1}, + {"avr32sd20", "__AVR_AVR32SD20__", "103", 1}, + {"avr32sd28", "__AVR_AVR32SD28__", "103", 1}, + {"avr32sd32", "__AVR_AVR32SD32__", "103", 1}, + {"avr128da28", "__AVR_AVR128DA28__", "104", 2}, + {"avr128da32", "__AVR_AVR128DA32__", "104", 2}, + {"avr128da48", "__AVR_AVR128DA48__", "104", 2}, + {"avr128da64", "__AVR_AVR128DA64__", "104", 2}, + {"avr128db28", "__AVR_AVR128DB28__", "104", 2}, + {"avr128db32", "__AVR_AVR128DB32__", "104", 2}, + {"avr128db48", "__AVR_AVR128DB48__", "104", 2}, + {"avr128db64", "__AVR_AVR128DB64__", "104", 2}, }; } // namespace targets diff --git a/clang/lib/Driver/ToolChains/AVR.cpp b/clang/lib/Driver/ToolChains/AVR.cpp index b0523a7f4e40e..731076d9754a9 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -326,8 +326,78 @@ constexpr struct { {"attiny1624", "avrxmega3", "avrxmega3", 0x803800}, {"attiny1626", "avrxmega3", "avrxmega3", 0x803800}, {"attiny1627", "avrxmega3", "avrxmega3", 0x803800}, + {"attiny3224", "avrxmega3", "avrxmega3", 0x803400}, + {"attiny3226", "avrxmega3", "avrxmega3", 0x803400}, + {"attiny3227", "avrxmega3", "avrxmega3", 0x803400}, {"attiny3216", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3217", "avrxmega3", "avrxmega3", 0x803800}, + + // gcc 14 additions: + + {"avr64da28", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64da32", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64da48", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64da64", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64db28", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64db32", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64db48", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64db64", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64dd14", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64dd20", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64dd28", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64dd32", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64du28", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64du32", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64ea28", "avrxmega2", "avrxmega2", 0x806800}, + {"avr64ea32", "avrxmega2", "avrxmega2", 0x806800}, + {"avr64ea48", "avrxmega2", "avrxmega2", 0x806800}, + {"avr64sd28", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64sd32", "avrxmega2", "avrxmega2", 0x806000}, + {"avr64sd48", "avrxmega2", "avrxmega2", 0x806000}, + + {"avr16dd20", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16dd28", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16dd32", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16du14", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16du20", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16du28", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16du32", "avrxmega3", "avrxmega3", 0x807800}, + {"avr32da28", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32da32", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32da48", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32db28", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32db32", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32db48", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32dd14", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32dd20", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32dd28", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32dd32", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32du14", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32du20", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32du28", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32du32", "avrxmega3", "avrxmega3", 0x807000}, + {"avr16eb14", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16eb20", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16eb28", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16eb32", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16ea28", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16ea32", "avrxmega3", "avrxmega3", 0x807800}, + {"avr16ea48", "avrxmega3", "avrxmega3", 0x807800}, + {"avr32ea28", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32ea32", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32ea48", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32sd20", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32sd28", "avrxmega3", "avrxmega3", 0x807000}, + {"avr32sd32", "avrxmega3", "avrxmega3", 0x807000}, + {"avr128da28", "avrxmega4", "avrxmega4", 0x804000}, + {"avr128da32", "avrxmega4", "avrxmega4", 0x804000}, + {"avr128da48", "avrxmega4", "avrxmega4", 0x804000}, + {"avr128da64", "avrxmega4", "avrxmega4", 0x804000}, + {"avr128db28", "avrxmega4", "avrxmega4", 0x804000}, + {"avr128db32", "avrxmega4", "avrxmega4", 0x804000}, + {"avr128db48", "avrxmega4", "avrxmega4", 0x804000}, + {"avr128db64", "avrxmega4", "avrxmega4", 0x804000}, + }; std::string GetMCUSubPath(StringRef MCUName) { diff --git a/clang/test/Misc/target-invalid-cpu-note/avr.c b/clang/test/Misc/target-invalid-cpu-note/avr.c index 86ffbb6838582..49d68bcc2edf8 100644 --- a/clang/test/Misc/target-invalid-cpu-note/avr.c +++ b/clang/test/Misc/target-invalid-cpu-note/avr.c @@ -311,6 +311,9 @@ // CHECK-SAME: {{^}}, attiny1624 // CHECK-SAME: {{^}}, attiny1626 // CHECK-SAME: {{^}}, attiny1627 +// CHECK-SAME: {{^}}, attiny3224 +// CHECK-SAME: {{^}}, attiny3226 +// CHECK-SAME: {{^}}, attiny3227 // CHECK-SAME: {{^}}, atmega808 // CHECK-SAME: {{^}}, atmega809 // CHECK-SAME: {{^}}, atmega1608 @@ -319,4 +322,66 @@ // CHECK-SAME: {{^}}, atmega3209 // CHECK-SAME: {{^}}, atmega4808 // CHECK-SAME: {{^}}, atmega4809 +// CHECK-SAME: {{^}}, avr64da28 +// CHECK-SAME: {{^}}, avr64da32 +// CHECK-SAME: {{^}}, avr64da48 +// CHECK-SAME: {{^}}, avr64da64 +// CHECK-SAME: {{^}}, avr64db28 +// CHECK-SAME: {{^}}, avr64db32 +// CHECK-SAME: {{^}}, avr64db48 +// CHECK-SAME: {{^}}, avr64db64 +// CHECK-SAME: {{^}}, avr64dd14 +// CHECK-SAME: {{^}}, avr64dd20 +// CHECK-SAME: {{^}}, avr64dd28 +// CHECK-SAME: {{^}}, avr64dd32 +// CHECK-SAME: {{^}}, avr64du28 +// CHECK-SAME: {{^}}, avr64du32 +// CHECK-SAME: {{^}}, avr64ea28 +// CHECK-SAME: {{^}}, avr64ea32 +// CHECK-SAME: {{^}}, avr64ea48 +// CHECK-SAME: {{^}}, avr64sd28 +// CHECK-SAME: {{^}}, avr64sd32 +// CHECK-SAME: {{^}}, avr64sd48 +// CHECK-SAME: {{^}}, avr16dd20 +// CHECK-SAME: {{^}}, avr16dd28 +// CHECK-SAME: {{^}}, avr16dd32 +// CHECK-SAME: {{^}}, avr16du14 +// CHECK-SAME: {{^}}, avr16du20 +// CHECK-SAME: {{^}}, avr16du28 +// CHECK-SAME: {{^}}, avr16du32 +// CHECK-SAME: {{^}}, avr32da28 +// CHECK-SAME: {{^}}, avr32da32 +// CHECK-SAME: {{^}}, avr32da48 +// CHECK-SAME: {{^}}, avr32db28 +// CHECK-SAME: {{^}}, avr32db32 +// CHECK-SAME: {{^}}, avr32db48 +// CHECK-SAME: {{^}}, avr32dd14 +// CHECK-SAME: {{^}}, avr32dd20 +// CHECK-SAME: {{^}}, avr32dd28 +// CHECK-SAME: {{^}}, avr32dd32 +// CHECK-SAME: {{^}}, avr32du14 +// CHECK-SAME: {{^}}, avr32du20 +// CHECK-SAME: {{^}}, avr32du28 +// CHECK-SAME: {{^}}, avr32du32 +// CHECK-SAME: {{^}}, avr16eb14 +// CHECK-SAME: {{^}}, avr16eb20 +// CHECK-SAME: {{^}}, avr16eb28 +// CHECK-SAME: {{^}}, avr16eb32 +// CHECK-SAME: {{^}}, avr16ea28 +// CHECK-SAME: {{^}}, avr16ea32 +// CHECK-SAME: {{^}}, avr16ea48 +// CHECK-SAME: {{^}}, avr32ea28 +// CHECK-SAME: {{^}}, avr32ea32 +// CHECK-SAME: {{^}}, avr32ea48 +// CHECK-SAME: {{^}}, avr32sd20 +// CHECK-SAME: {{^}}, avr32sd28 +// CHECK-SAME: {{^}}, avr32sd32 +// CHECK-SAME: {{^}}, avr128da28 +// CHECK-SAME: {{^}}, avr128da32 +// CHECK-SAME: {{^}}, avr128da48 +// CHECK-SAME: {{^}}, avr128da64 +// CHECK-SAME: {{^}}, avr128db28 +// CHECK-SAME: {{^}}, avr128db32 +// CHECK-SAME: {{^}}, avr128db48 +// CHECK-SAME: {{^}}, avr128db64 // CHECK-SAME: {{$}} diff --git a/llvm/lib/Target/AVR/AVRDevices.td b/llvm/lib/Target/AVR/AVRDevices.td index 56147bb473bc4..ad760d7403573 100644 --- a/llvm/lib/Target/AVR/AVRDevices.td +++ b/llvm/lib/Target/AVR/AVRDevices.td @@ -209,12 +209,27 @@ def FamilyTiny [FamilyAVR0, FeatureBREAK, FeatureSRAM, FeatureTinyEncoding, FeatureSmallStack]>; +def FamilyXMEGA2 : Family<"xmega2", + [FamilyAVR0, FeatureLPM, FeatureIJMPCALL, + FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL, + FeatureMultiplication, FeatureMOVW, FeatureLPMX, + FeatureSPM, FeatureSPMX, + FeatureBREAK, FeatureLowByteFirst]>; + def FamilyXMEGA3 : Family<"xmega3", [FamilyAVR0, FeatureLPM, FeatureIJMPCALL, FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL, FeatureMultiplication, FeatureMOVW, FeatureLPMX, FeatureBREAK, FeatureLowByteFirst]>; +def FamilyXMEGA4 : Family<"xmega4", + [FamilyAVR0, FeatureLPM, FeatureIJMPCALL, + FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL, + FeatureMultiplication, FeatureMOVW, FeatureLPMX, + FeatureELPM, FeatureELPMX, + FeatureSPM, FeatureSPMX, + FeatureBREAK, FeatureLowByteFirst]>; + def FamilyXMEGA : Family<"xmega", [FamilyAVR0, FeatureLPM, FeatureIJMPCALL, FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL, @@ -567,6 +582,9 @@ def : Device<"attiny3217", FamilyXMEGA3, ELFArchXMEGA3>; def : Device<"attiny1624", FamilyXMEGA3, ELFArchXMEGA3>; def : Device<"attiny1626", FamilyXMEGA3, ELFArchXMEGA3>; def : Device<"attiny1627", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny3224", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny3226", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny3227", FamilyXMEGA3, ELFArchXMEGA3>; def : Device<"atmega808", FamilyXMEGA3, ELFArchXMEGA3>; def : Device<"atmega809", FamilyXMEGA3, ELFArchXMEGA3>; def : Device<"atmega1608", FamilyXMEGA3, ELFArchXMEGA3>; @@ -575,3 +593,69 @@ def : Device<"atmega3208", FamilyXMEGA3, ELFArchXMEGA3>; def : Device<"atmega3209", FamilyXMEGA3, ELFArchXMEGA3>; def : Device<"atmega4808", FamilyXMEGA3, ELFArchXMEGA3>; def : Device<"atmega4809", FamilyXMEGA3, ELFArchXMEGA3>; + +// Additions from gcc 14: + +def : Device<"avr64da28", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64da32", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64da48", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64da64", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64db28", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64db32", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64db48", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64db64", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64dd14", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64dd20", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64dd28", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64dd32", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64du28", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64du32", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64ea28", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64ea32", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64ea48", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64sd28", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64sd32", FamilyXMEGA2, ELFArchXMEGA2>; +def : Device<"avr64sd48", FamilyXMEGA2, ELFArchXMEGA2>; + +def : Device<"avr16dd20", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16dd28", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16dd32", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16du14", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16du20", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16du28", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16du32", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32da28", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32da32", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32da48", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32db28", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32db32", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32db48", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32dd14", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32dd20", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32dd28", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32dd32", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32du14", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32du20", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32du28", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32du32", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16eb14", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16eb20", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16eb28", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16eb32", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16ea28", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16ea32", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr16ea48", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32ea28", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32ea32", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32ea48", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32sd20", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32sd28", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr32sd32", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"avr128da28", FamilyXMEGA4, ELFArchXMEGA4>; +def : Device<"avr128da32", FamilyXMEGA4, ELFArchXMEGA4>; +def : Device<"avr128da48", FamilyXMEGA4, ELFArchXMEGA4>; +def : Device<"avr128da64", FamilyXMEGA4, ELFArchXMEGA4>; +def : Device<"avr128db28", FamilyXMEGA4, ELFArchXMEGA4>; +def : Device<"avr128db32", FamilyXMEGA4, ELFArchXMEGA4>; +def : Device<"avr128db48", FamilyXMEGA4, ELFArchXMEGA4>; +def : Device<"avr128db64", FamilyXMEGA4, ELFArchXMEGA4>; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits