[clang] [llvm] [AVR] Add support for many new AVR mcus like AVR128DB28 (PR #143914)
https://github.com/tomtor updated https://github.com/llvm/llvm-project/pull/143914 >From 3e070f4aa1e105a4f5b486b662e481195a0a4608 Mon Sep 17 00:00:00 2001 From: Tom Vijlbrief Date: Thu, 12 Jun 2025 16:59:46 +0200 Subject: [PATCH 1/3] Add support for many new AVR mcus like AVR128DB28 --- clang/lib/Basic/Targets/AVR.cpp | 45 + clang/lib/Driver/ToolChains/AVR.cpp | 46 + llvm/lib/Target/AVR/AVRDevices.td | 52 + 3 files changed, 143 insertions(+) diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp index 85ca4bc30c461..72268a50a247a 100644 --- a/clang/lib/Basic/Targets/AVR.cpp +++ b/clang/lib/Basic/Targets/AVR.cpp @@ -344,6 +344,51 @@ static MCUInfo AVRMcus[] = { {"atmega3209", "__AVR_ATmega3209__", "103", 1}, {"atmega4808", "__AVR_ATmega4808__", "103", 1}, {"atmega4809", "__AVR_ATmega4809__", "103", 1}, + +// gcc 14 additions: + +{"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 f1529f857eef8..2ea80a039a7ff 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -328,6 +328,52 @@ constexpr struct { {"attiny1627", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3216", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3217", "avrxmega3", "avrxmega3", 0x803800}, + +// gcc 14 additions: + +{"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", "avrxm
[clang] [llvm] [AVR] Add support for many new AVR MCUs (PR #143914)
https://github.com/tomtor updated https://github.com/llvm/llvm-project/pull/143914 >From 3e070f4aa1e105a4f5b486b662e481195a0a4608 Mon Sep 17 00:00:00 2001 From: Tom Vijlbrief Date: Thu, 12 Jun 2025 16:59:46 +0200 Subject: [PATCH 1/5] Add support for many new AVR mcus like AVR128DB28 --- clang/lib/Basic/Targets/AVR.cpp | 45 + clang/lib/Driver/ToolChains/AVR.cpp | 46 + llvm/lib/Target/AVR/AVRDevices.td | 52 + 3 files changed, 143 insertions(+) diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp index 85ca4bc30c461..72268a50a247a 100644 --- a/clang/lib/Basic/Targets/AVR.cpp +++ b/clang/lib/Basic/Targets/AVR.cpp @@ -344,6 +344,51 @@ static MCUInfo AVRMcus[] = { {"atmega3209", "__AVR_ATmega3209__", "103", 1}, {"atmega4808", "__AVR_ATmega4808__", "103", 1}, {"atmega4809", "__AVR_ATmega4809__", "103", 1}, + +// gcc 14 additions: + +{"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 f1529f857eef8..2ea80a039a7ff 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -328,6 +328,52 @@ constexpr struct { {"attiny1627", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3216", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3217", "avrxmega3", "avrxmega3", 0x803800}, + +// gcc 14 additions: + +{"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", "avrxm
[clang] [llvm] [AVR] Add support for many new AVR MCUs (PR #143914)
tomtor wrote: Removed EIJMP for avr128 devices, see: https://onlinedocs.microchip.com/oxy/GUID-0B644D8F-67E7-49E6-82C9-1B2B9ABE6A0D-en-US-23/GUID-3F578DEB-6EE6-4081-AEF2-B505FF2AE8A5.html https://github.com/llvm/llvm-project/pull/143914 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add support for many new AVR MCUs (PR #143914)
https://github.com/tomtor edited https://github.com/llvm/llvm-project/pull/143914 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
https://github.com/tomtor updated https://github.com/llvm/llvm-project/pull/144229 >From 57a30b4bfd87a8389ab042b2c9184a59bf7f4519 Mon Sep 17 00:00:00 2001 From: Tom Vijlbrief Date: Thu, 12 Jun 2025 16:59:46 +0200 Subject: [PATCH 1/8] Add support for many new AVR mcus like AVR128DB28 --- clang/lib/Basic/Targets/AVR.cpp | 45 + clang/lib/Driver/ToolChains/AVR.cpp | 46 + llvm/lib/Target/AVR/AVRDevices.td | 52 + 3 files changed, 143 insertions(+) diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp index 85ca4bc30c461..72268a50a247a 100644 --- a/clang/lib/Basic/Targets/AVR.cpp +++ b/clang/lib/Basic/Targets/AVR.cpp @@ -344,6 +344,51 @@ static MCUInfo AVRMcus[] = { {"atmega3209", "__AVR_ATmega3209__", "103", 1}, {"atmega4808", "__AVR_ATmega4808__", "103", 1}, {"atmega4809", "__AVR_ATmega4809__", "103", 1}, + +// gcc 14 additions: + +{"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..f9242ec33cf5a 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -328,6 +328,52 @@ constexpr struct { {"attiny1627", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3216", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3217", "avrxmega3", "avrxmega3", 0x803800}, + +// gcc 14 additions: + +{"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", "avrxm
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
https://github.com/tomtor updated https://github.com/llvm/llvm-project/pull/144229 >From 57a30b4bfd87a8389ab042b2c9184a59bf7f4519 Mon Sep 17 00:00:00 2001 From: Tom Vijlbrief Date: Thu, 12 Jun 2025 16:59:46 +0200 Subject: [PATCH 1/9] Add support for many new AVR mcus like AVR128DB28 --- clang/lib/Basic/Targets/AVR.cpp | 45 + clang/lib/Driver/ToolChains/AVR.cpp | 46 + llvm/lib/Target/AVR/AVRDevices.td | 52 + 3 files changed, 143 insertions(+) diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp index 85ca4bc30c461..72268a50a247a 100644 --- a/clang/lib/Basic/Targets/AVR.cpp +++ b/clang/lib/Basic/Targets/AVR.cpp @@ -344,6 +344,51 @@ static MCUInfo AVRMcus[] = { {"atmega3209", "__AVR_ATmega3209__", "103", 1}, {"atmega4808", "__AVR_ATmega4808__", "103", 1}, {"atmega4809", "__AVR_ATmega4809__", "103", 1}, + +// gcc 14 additions: + +{"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..f9242ec33cf5a 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -328,6 +328,52 @@ constexpr struct { {"attiny1627", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3216", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3217", "avrxmega3", "avrxmega3", 0x803800}, + +// gcc 14 additions: + +{"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", "avrxm
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
tomtor wrote: Double checking https://onlinedocs.microchip.com/oxy/GUID-0B644D8F-67E7-49E6-82C9-1B2B9ABE6A0D-en-US-23/GUID-33953345-30E8-49BC-89A0-9734DC6EA5B9.html https://github.com/llvm/llvm-project/pull/144229 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add support for many new AVR MCUs (PR #143914)
https://github.com/tomtor updated https://github.com/llvm/llvm-project/pull/143914 >From 3e070f4aa1e105a4f5b486b662e481195a0a4608 Mon Sep 17 00:00:00 2001 From: Tom Vijlbrief Date: Thu, 12 Jun 2025 16:59:46 +0200 Subject: [PATCH 1/4] Add support for many new AVR mcus like AVR128DB28 --- clang/lib/Basic/Targets/AVR.cpp | 45 + clang/lib/Driver/ToolChains/AVR.cpp | 46 + llvm/lib/Target/AVR/AVRDevices.td | 52 + 3 files changed, 143 insertions(+) diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp index 85ca4bc30c461..72268a50a247a 100644 --- a/clang/lib/Basic/Targets/AVR.cpp +++ b/clang/lib/Basic/Targets/AVR.cpp @@ -344,6 +344,51 @@ static MCUInfo AVRMcus[] = { {"atmega3209", "__AVR_ATmega3209__", "103", 1}, {"atmega4808", "__AVR_ATmega4808__", "103", 1}, {"atmega4809", "__AVR_ATmega4809__", "103", 1}, + +// gcc 14 additions: + +{"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 f1529f857eef8..2ea80a039a7ff 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -328,6 +328,52 @@ constexpr struct { {"attiny1627", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3216", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3217", "avrxmega3", "avrxmega3", 0x803800}, + +// gcc 14 additions: + +{"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", "avrxm
[clang] [llvm] [AVR] Add support for many new AVR MCUs (PR #143914)
@@ -336,6 +336,9 @@ static MCUInfo AVRMcus[] = { {"attiny1624", "__AVR_ATtiny1624__", "103", 1}, {"attiny1626", "__AVR_ATtiny1626__", "103", 1}, {"attiny1627", "__AVR_ATtiny1627__", "103", 1}, +{"attiny3224", "__AVR_ATtiny1624__", "103", 1}, tomtor wrote: Oops, missed that, fixed... https://github.com/llvm/llvm-project/pull/143914 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add support for many new AVR MCUs (PR #143914)
@@ -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}, tomtor wrote: Avr32dd20: 4096 bytes ram avr16dd20: 2048 bytes ram, just checked on https://www.microchip.com/en-us/product/AVR16DD20 Yes, all avr16* and avr32* have these same sizes. The last digit specifes number of pins, higher is more pins, and more uarts, etc. https://github.com/llvm/llvm-project/pull/143914 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add support for many new AVR MCUs (PR #143914)
https://github.com/tomtor edited https://github.com/llvm/llvm-project/pull/143914 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add support for many new AVR MCUs (PR #143914)
https://github.com/tomtor edited https://github.com/llvm/llvm-project/pull/143914 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add support for many new AVR MCUs (PR #143914)
https://github.com/tomtor edited https://github.com/llvm/llvm-project/pull/143914 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add support for many new AVR MCUs (PR #143914)
https://github.com/tomtor edited https://github.com/llvm/llvm-project/pull/143914 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
tomtor wrote: For future reference, 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. The avr64 devices use xmega2 which has SPM(X) defined, so that is also ok. I prefer to leave the avr16/avr32 devices unchanged (using xmega3 to be in sync with gcc definitions), because the SPM instructions write flash and users can use asm if they want that feature. For me this PR is complete now. https://github.com/llvm/llvm-project/pull/144229 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
tomtor wrote: > LGTM. Thank you for updating the patch! Thanks! I am now rebuilding after: `cmake -S llvm -B build -G Ninja` https://github.com/llvm/llvm-project/pull/144229 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
tomtor wrote: My local tree build OK... https://github.com/llvm/llvm-project/pull/144229 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
https://github.com/tomtor edited https://github.com/llvm/llvm-project/pull/144229 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
tomtor wrote: @Patryk27 @benshi001 @kazutakahirata Oops, as you noticed I did not recompile after adding the avr64* models. Sorry for that, changes are almost never trivial Hope all is ok now, my local compile did compile my files, but ended with: cc1plus: fatal error: /home/tom/src/rust/llvm-project/llvm/lib/DebugInfo/LogicalView/Core/LVSourceLanguage.cpp: No such file or directory compilation terminated. [1758/5167] Building CXX object lib/DebugInfo/LogicalView/CMakeFiles/LLVMDebugInfoLogicalView.dir/Core/LVScope.cpp.o ninja: build stopped: subcommand failed. https://github.com/llvm/llvm-project/pull/144229 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
https://github.com/tomtor created https://github.com/llvm/llvm-project/pull/144229 https://github.com/llvm/llvm-project/pull/143914 failed to compile due to an unchecked late change. Sorry for that. Added the missing XMEGA2 definition. >From 57a30b4bfd87a8389ab042b2c9184a59bf7f4519 Mon Sep 17 00:00:00 2001 From: Tom Vijlbrief Date: Thu, 12 Jun 2025 16:59:46 +0200 Subject: [PATCH 1/6] Add support for many new AVR mcus like AVR128DB28 --- clang/lib/Basic/Targets/AVR.cpp | 45 + clang/lib/Driver/ToolChains/AVR.cpp | 46 + llvm/lib/Target/AVR/AVRDevices.td | 52 + 3 files changed, 143 insertions(+) diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp index 85ca4bc30c461..72268a50a247a 100644 --- a/clang/lib/Basic/Targets/AVR.cpp +++ b/clang/lib/Basic/Targets/AVR.cpp @@ -344,6 +344,51 @@ static MCUInfo AVRMcus[] = { {"atmega3209", "__AVR_ATmega3209__", "103", 1}, {"atmega4808", "__AVR_ATmega4808__", "103", 1}, {"atmega4809", "__AVR_ATmega4809__", "103", 1}, + +// gcc 14 additions: + +{"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..f9242ec33cf5a 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -328,6 +328,52 @@ constexpr struct { {"attiny1627", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3216", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3217", "avrxmega3", "avrxmega3", 0x803800}, + +// gcc 14 additions: + +{"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", 0x8
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
tomtor wrote: In the CI check I find one ` FAIL:` ``` 2025-06-15T07:21:48.1250696Z FAIL: Flang :: Semantics/modfile76.F90 (3383 of 3529) 2025-06-15T07:21:48.1251772Z TEST 'Flang :: Semantics/modfile76.F90' FAILED ``` but this is unrelated? (Flang, fortran) https://github.com/llvm/llvm-project/pull/144229 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
https://github.com/tomtor updated https://github.com/llvm/llvm-project/pull/144229 >From 57a30b4bfd87a8389ab042b2c9184a59bf7f4519 Mon Sep 17 00:00:00 2001 From: Tom Vijlbrief Date: Thu, 12 Jun 2025 16:59:46 +0200 Subject: [PATCH 1/7] Add support for many new AVR mcus like AVR128DB28 --- clang/lib/Basic/Targets/AVR.cpp | 45 + clang/lib/Driver/ToolChains/AVR.cpp | 46 + llvm/lib/Target/AVR/AVRDevices.td | 52 + 3 files changed, 143 insertions(+) diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp index 85ca4bc30c461..72268a50a247a 100644 --- a/clang/lib/Basic/Targets/AVR.cpp +++ b/clang/lib/Basic/Targets/AVR.cpp @@ -344,6 +344,51 @@ static MCUInfo AVRMcus[] = { {"atmega3209", "__AVR_ATmega3209__", "103", 1}, {"atmega4808", "__AVR_ATmega4808__", "103", 1}, {"atmega4809", "__AVR_ATmega4809__", "103", 1}, + +// gcc 14 additions: + +{"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..f9242ec33cf5a 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -328,6 +328,52 @@ constexpr struct { {"attiny1627", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3216", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3217", "avrxmega3", "avrxmega3", 0x803800}, + +// gcc 14 additions: + +{"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", "avrxm
[clang] [llvm] [AVR] Add many new AVR MCU model definitions (PR #144229)
tomtor wrote: @kazutakahirata Thanks again! I noticed the failling check but could not find the cause in the enormous log file. Wondered if it could be caused by a timeout on the build, but it was this failing check. Added new test patterns for the new MCUs. Did not manage to run these tests locally yet, but will figure that out. https://github.com/llvm/llvm-project/pull/144229 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] Add support for many new AVR mcus like AVR128DB28 (PR #143914)
https://github.com/tomtor created https://github.com/llvm/llvm-project/pull/143914 Should fix https://github.com/llvm/llvm-project/issues/116116 >From 3e070f4aa1e105a4f5b486b662e481195a0a4608 Mon Sep 17 00:00:00 2001 From: Tom Vijlbrief Date: Thu, 12 Jun 2025 16:59:46 +0200 Subject: [PATCH] Add support for many new AVR mcus like AVR128DB28 --- clang/lib/Basic/Targets/AVR.cpp | 45 + clang/lib/Driver/ToolChains/AVR.cpp | 46 + llvm/lib/Target/AVR/AVRDevices.td | 52 + 3 files changed, 143 insertions(+) diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp index 85ca4bc30c461..72268a50a247a 100644 --- a/clang/lib/Basic/Targets/AVR.cpp +++ b/clang/lib/Basic/Targets/AVR.cpp @@ -344,6 +344,51 @@ static MCUInfo AVRMcus[] = { {"atmega3209", "__AVR_ATmega3209__", "103", 1}, {"atmega4808", "__AVR_ATmega4808__", "103", 1}, {"atmega4809", "__AVR_ATmega4809__", "103", 1}, + +// gcc 14 additions: + +{"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 f1529f857eef8..2ea80a039a7ff 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -328,6 +328,52 @@ constexpr struct { {"attiny1627", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3216", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3217", "avrxmega3", "avrxmega3", 0x803800}, + +// gcc 14 additions: + +{"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", "av
[clang] [llvm] Add support for many new AVR mcus like AVR128DB28 (PR #143914)
https://github.com/tomtor updated https://github.com/llvm/llvm-project/pull/143914 >From 3e070f4aa1e105a4f5b486b662e481195a0a4608 Mon Sep 17 00:00:00 2001 From: Tom Vijlbrief Date: Thu, 12 Jun 2025 16:59:46 +0200 Subject: [PATCH 1/2] Add support for many new AVR mcus like AVR128DB28 --- clang/lib/Basic/Targets/AVR.cpp | 45 + clang/lib/Driver/ToolChains/AVR.cpp | 46 + llvm/lib/Target/AVR/AVRDevices.td | 52 + 3 files changed, 143 insertions(+) diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp index 85ca4bc30c461..72268a50a247a 100644 --- a/clang/lib/Basic/Targets/AVR.cpp +++ b/clang/lib/Basic/Targets/AVR.cpp @@ -344,6 +344,51 @@ static MCUInfo AVRMcus[] = { {"atmega3209", "__AVR_ATmega3209__", "103", 1}, {"atmega4808", "__AVR_ATmega4808__", "103", 1}, {"atmega4809", "__AVR_ATmega4809__", "103", 1}, + +// gcc 14 additions: + +{"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 f1529f857eef8..2ea80a039a7ff 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -328,6 +328,52 @@ constexpr struct { {"attiny1627", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3216", "avrxmega3", "avrxmega3", 0x803800}, {"attiny3217", "avrxmega3", "avrxmega3", 0x803800}, + +// gcc 14 additions: + +{"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", "avrxm