Skip to content

Commit b62ea9b

Browse files
committed
[AVR] Add more devices
Synchronize device list with avr-gcc 7.3.0 and avrlibc 2.0.0. Reviewed By: aykevl Differential Revision: https://reviews.llvm.org/D122401
1 parent c4eae8a commit b62ea9b

File tree

5 files changed

+124
-65
lines changed

5 files changed

+124
-65
lines changed

Diff for: clang/lib/Basic/Targets/AVR.cpp

+37-26
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ static MCUInfo AVRMcus[] = {
4949
{"at90c8534", "__AVR_AT90c8534__", 1, false},
5050
{"at90s8535", "__AVR_AT90S8535__", 1, false},
5151
{"ata5272", "__AVR_ATA5272__", 1, false},
52+
{"ata6616c", "__AVR_ATA6616c__", 1, false},
5253
{"attiny13", "__AVR_ATtiny13__", 1, false},
5354
{"attiny13a", "__AVR_ATtiny13A__", 1, false},
5455
{"attiny2313", "__AVR_ATtiny2313__", 1, false},
@@ -250,7 +251,6 @@ static MCUInfo AVRMcus[] = {
250251
{"atxmega32e5", "__AVR_ATxmega32E5__", 1, false},
251252
{"atxmega16e5", "__AVR_ATxmega16E5__", 1, false},
252253
{"atxmega8e5", "__AVR_ATxmega8E5__", 1, false},
253-
{"atxmega32x1", "__AVR_ATxmega32X1__", 1, false},
254254
{"atxmega64a3", "__AVR_ATxmega64A3__", 1, false},
255255
{"atxmega64a3u", "__AVR_ATxmega64A3U__", 1, false},
256256
{"atxmega64a4u", "__AVR_ATxmega64A4U__", 1, false},
@@ -291,31 +291,42 @@ static MCUInfo AVRMcus[] = {
291291
{"attiny40", "__AVR_ATtiny40__", 0, true},
292292
{"attiny102", "__AVR_ATtiny102__", 0, true},
293293
{"attiny104", "__AVR_ATtiny104__", 0, true},
294-
{"attiny202", "__AVR_ATtiny202__", 1, true},
295-
{"attiny402", "__AVR_ATtiny402__", 1, true},
296-
{"attiny204", "__AVR_ATtiny204__", 1, true},
297-
{"attiny404", "__AVR_ATtiny404__", 1, true},
298-
{"attiny804", "__AVR_ATtiny804__", 1, true},
299-
{"attiny1604", "__AVR_ATtiny1604__", 1, true},
300-
{"attiny406", "__AVR_ATtiny406__", 1, true},
301-
{"attiny806", "__AVR_ATtiny806__", 1, true},
302-
{"attiny1606", "__AVR_ATtiny1606__", 1, true},
303-
{"attiny807", "__AVR_ATtiny807__", 1, true},
304-
{"attiny1607", "__AVR_ATtiny1607__", 1, true},
305-
{"attiny212", "__AVR_ATtiny212__", 1, true},
306-
{"attiny412", "__AVR_ATtiny412__", 1, true},
307-
{"attiny214", "__AVR_ATtiny214__", 1, true},
308-
{"attiny414", "__AVR_ATtiny414__", 1, true},
309-
{"attiny814", "__AVR_ATtiny814__", 1, true},
310-
{"attiny1614", "__AVR_ATtiny1614__", 1, true},
311-
{"attiny416", "__AVR_ATtiny416__", 1, true},
312-
{"attiny816", "__AVR_ATtiny816__", 1, true},
313-
{"attiny1616", "__AVR_ATtiny1616__", 1, true},
314-
{"attiny3216", "__AVR_ATtiny3216__", 1, true},
315-
{"attiny417", "__AVR_ATtiny417__", 1, true},
316-
{"attiny817", "__AVR_ATtiny817__", 1, true},
317-
{"attiny1617", "__AVR_ATtiny1617__", 1, true},
318-
{"attiny3217", "__AVR_ATtiny3217__", 1, true},
294+
{"attiny202", "__AVR_ATtiny202__", 1, false},
295+
{"attiny402", "__AVR_ATtiny402__", 1, false},
296+
{"attiny204", "__AVR_ATtiny204__", 1, false},
297+
{"attiny404", "__AVR_ATtiny404__", 1, false},
298+
{"attiny804", "__AVR_ATtiny804__", 1, false},
299+
{"attiny1604", "__AVR_ATtiny1604__", 1, false},
300+
{"attiny406", "__AVR_ATtiny406__", 1, false},
301+
{"attiny806", "__AVR_ATtiny806__", 1, false},
302+
{"attiny1606", "__AVR_ATtiny1606__", 1, false},
303+
{"attiny807", "__AVR_ATtiny807__", 1, false},
304+
{"attiny1607", "__AVR_ATtiny1607__", 1, false},
305+
{"attiny212", "__AVR_ATtiny212__", 1, false},
306+
{"attiny412", "__AVR_ATtiny412__", 1, false},
307+
{"attiny214", "__AVR_ATtiny214__", 1, false},
308+
{"attiny414", "__AVR_ATtiny414__", 1, false},
309+
{"attiny814", "__AVR_ATtiny814__", 1, false},
310+
{"attiny1614", "__AVR_ATtiny1614__", 1, false},
311+
{"attiny416", "__AVR_ATtiny416__", 1, false},
312+
{"attiny816", "__AVR_ATtiny816__", 1, false},
313+
{"attiny1616", "__AVR_ATtiny1616__", 1, false},
314+
{"attiny3216", "__AVR_ATtiny3216__", 1, false},
315+
{"attiny417", "__AVR_ATtiny417__", 1, false},
316+
{"attiny817", "__AVR_ATtiny817__", 1, false},
317+
{"attiny1617", "__AVR_ATtiny1617__", 1, false},
318+
{"attiny3217", "__AVR_ATtiny3217__", 1, false},
319+
{"attiny1624", "__AVR_ATtiny1624__", 1, false},
320+
{"attiny1626", "__AVR_ATtiny1626__", 1, false},
321+
{"attiny1627", "__AVR_ATtiny1627__", 1, false},
322+
{"atmega808", "__AVR_ATmega808__", 1, false},
323+
{"atmega809", "__AVR_ATmega809__", 1, false},
324+
{"atmega1608", "__AVR_ATmega1608__", 1, false},
325+
{"atmega1609", "__AVR_ATmega1609__", 1, false},
326+
{"atmega3208", "__AVR_ATmega3208__", 1, false},
327+
{"atmega3209", "__AVR_ATmega3209__", 1, false},
328+
{"atmega4808", "__AVR_ATmega4808__", 1, false},
329+
{"atmega4809", "__AVR_ATmega4809__", 1, false},
319330
};
320331

321332
} // namespace targets

Diff for: clang/lib/Driver/ToolChains/AVR.cpp

+42-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ using namespace llvm::opt;
2828

2929
namespace {
3030

31-
// NOTE: This list has been synchronized with gcc-avr 5.4.0 and avr-libc 2.0.0.
31+
// NOTE: This list has been synchronized with gcc-avr 7.3.0 and avr-libc 2.0.0.
3232
constexpr struct {
3333
StringRef Name;
3434
StringRef SubPath;
@@ -63,6 +63,7 @@ constexpr struct {
6363
{"attiny261a", "avr25/tiny-stack", "avr25", 0x800060},
6464
{"at86rf401", "avr25", "avr25", 0x800060},
6565
{"ata5272", "avr25", "avr25", 0x800100},
66+
{"ata6616c", "avr25", "avr25", 0x800100},
6667
{"attiny4313", "avr25", "avr25", 0x800060},
6768
{"attiny44", "avr25", "avr25", 0x800060},
6869
{"attiny44a", "avr25", "avr25", 0x800060},
@@ -158,6 +159,7 @@ constexpr struct {
158159
{"atmega324a", "avr5", "avr5", 0x800100},
159160
{"atmega324p", "avr5", "avr5", 0x800100},
160161
{"atmega324pa", "avr5", "avr5", 0x800100},
162+
{"atmega324pb", "avr5", "avr5", 0x800100},
161163
{"atmega325", "avr5", "avr5", 0x800100},
162164
{"atmega325a", "avr5", "avr5", 0x800100},
163165
{"atmega325p", "avr5", "avr5", 0x800100},
@@ -168,6 +170,7 @@ constexpr struct {
168170
{"atmega3250pa", "avr5", "avr5", 0x800100},
169171
{"atmega328", "avr5", "avr5", 0x800100},
170172
{"atmega328p", "avr5", "avr5", 0x800100},
173+
{"atmega328pb", "avr5", "avr5", 0x800100},
171174
{"atmega329", "avr5", "avr5", 0x800100},
172175
{"atmega329a", "avr5", "avr5", 0x800100},
173176
{"atmega329p", "avr5", "avr5", 0x800100},
@@ -246,6 +249,8 @@ constexpr struct {
246249
{"attiny10", "avrtiny", "avrtiny", 0x800040},
247250
{"attiny20", "avrtiny", "avrtiny", 0x800040},
248251
{"attiny40", "avrtiny", "avrtiny", 0x800040},
252+
{"attiny102", "avrtiny", "avrtiny", 0x800040},
253+
{"attiny104", "avrtiny", "avrtiny", 0x800040},
249254
{"atxmega16a4", "avrxmega2", "avrxmega2", 0x802000},
250255
{"atxmega16a4u", "avrxmega2", "avrxmega2", 0x802000},
251256
{"atxmega16c4", "avrxmega2", "avrxmega2", 0x802000},
@@ -291,6 +296,42 @@ constexpr struct {
291296
{"atxmega128a1", "avrxmega7", "avrxmega7", 0x802000},
292297
{"atxmega128a1u", "avrxmega7", "avrxmega7", 0x802000},
293298
{"atxmega128a4u", "avrxmega7", "avrxmega7", 0x802000},
299+
{"attiny202", "avrxmega3/short-calls", "avrxmega3", 0x803F80},
300+
{"attiny204", "avrxmega3/short-calls", "avrxmega3", 0x803F80},
301+
{"attiny212", "avrxmega3/short-calls", "avrxmega3", 0x803F80},
302+
{"attiny214", "avrxmega3/short-calls", "avrxmega3", 0x803F80},
303+
{"attiny402", "avrxmega3/short-calls", "avrxmega3", 0x803F00},
304+
{"attiny404", "avrxmega3/short-calls", "avrxmega3", 0x803F00},
305+
{"attiny406", "avrxmega3/short-calls", "avrxmega3", 0x803F00},
306+
{"attiny412", "avrxmega3/short-calls", "avrxmega3", 0x803F00},
307+
{"attiny414", "avrxmega3/short-calls", "avrxmega3", 0x803F00},
308+
{"attiny416", "avrxmega3/short-calls", "avrxmega3", 0x803F00},
309+
{"attiny417", "avrxmega3/short-calls", "avrxmega3", 0x803F00},
310+
{"attiny804", "avrxmega3/short-calls", "avrxmega3", 0x803E00},
311+
{"attiny806", "avrxmega3/short-calls", "avrxmega3", 0x803E00},
312+
{"attiny807", "avrxmega3/short-calls", "avrxmega3", 0x803E00},
313+
{"attiny814", "avrxmega3/short-calls", "avrxmega3", 0x803E00},
314+
{"attiny816", "avrxmega3/short-calls", "avrxmega3", 0x803E00},
315+
{"attiny817", "avrxmega3/short-calls", "avrxmega3", 0x803E00},
316+
{"atmega808", "avrxmega3/short-calls", "avrxmega3", 0x803C00},
317+
{"atmega809", "avrxmega3/short-calls", "avrxmega3", 0x803C00},
318+
{"atmega1608", "avrxmega3", "avrxmega3", 0x803800},
319+
{"atmega1609", "avrxmega3", "avrxmega3", 0x803800},
320+
{"atmega3208", "avrxmega3", "avrxmega3", 0x803000},
321+
{"atmega3209", "avrxmega3", "avrxmega3", 0x803000},
322+
{"atmega4808", "avrxmega3", "avrxmega3", 0x802800},
323+
{"atmega4809", "avrxmega3", "avrxmega3", 0x802800},
324+
{"attiny1604", "avrxmega3", "avrxmega3", 0x803C00},
325+
{"attiny1606", "avrxmega3", "avrxmega3", 0x803C00},
326+
{"attiny1607", "avrxmega3", "avrxmega3", 0x803C00},
327+
{"attiny1614", "avrxmega3", "avrxmega3", 0x803800},
328+
{"attiny1616", "avrxmega3", "avrxmega3", 0x803800},
329+
{"attiny1617", "avrxmega3", "avrxmega3", 0x803800},
330+
{"attiny1624", "avrxmega3", "avrxmega3", 0x803800},
331+
{"attiny1626", "avrxmega3", "avrxmega3", 0x803800},
332+
{"attiny1627", "avrxmega3", "avrxmega3", 0x803800},
333+
{"attiny3216", "avrxmega3", "avrxmega3", 0x803800},
334+
{"attiny3217", "avrxmega3", "avrxmega3", 0x803800},
294335
};
295336

296337
std::string GetMCUSubPath(StringRef MCUName) {

Diff for: clang/test/Driver/avr-link-mcu-family-unimplemented.c

-10
This file was deleted.

Diff for: clang/test/Misc/target-invalid-cpu-note.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777

7878
// RUN: not %clang_cc1 -triple avr--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix AVR
7979
// AVR: error: unknown target CPU 'not-a-cpu'
80-
// AVR-NEXT: note: valid target CPU values are: avr1, avr2, avr25, avr3, avr31, avr35, avr4, avr5, avr51, avr6, avrxmega1, avrxmega2, avrxmega3, avrxmega4, avrxmega5, avrxmega6, avrxmega7, avrtiny, at90s1200, attiny11, attiny12, attiny15, attiny28, at90s2313, at90s2323, at90s2333, at90s2343, attiny22, attiny26, at86rf401, at90s4414, at90s4433, at90s4434, at90s8515, at90c8534, at90s8535, ata5272, attiny13, attiny13a, attiny2313, attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84, attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny441, attiny461, attiny461a, attiny841, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88, attiny828, at43usb355, at76c711, atmega103, at43usb320, attiny167, at90usb82, at90usb162, ata5505, ata6617c, ata664251, atmega8u2, atmega16u2, atmega32u2, attiny1634, atmega8, ata6289, atmega8a, ata6285, ata6286, ata6612c, atmega48, atmega48a, atmega48pa, atmega48pb, atmega48p, atmega88, atmega88a, atmega88p, atmega88pa, atmega88pb, atmega8515, atmega8535, atmega8hva, at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, ata5702m322, ata5782, ata5790, ata5790n, ata5791, ata5795, ata5831, ata6613c, ata6614q, ata8210, ata8510, atmega16, atmega16a, atmega161, atmega162, atmega163, atmega164a, atmega164p, atmega164pa, atmega165, atmega165a, atmega165p, atmega165pa, atmega168, atmega168a, atmega168p, atmega168pa, atmega168pb, atmega169, atmega169a, atmega169p, atmega169pa, atmega32, atmega32a, atmega323, atmega324a, atmega324p, atmega324pa, atmega324pb, atmega325, atmega325a, atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328, atmega328p, atmega328pb, atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64, atmega64a, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645, atmega645a, atmega645p, atmega649, atmega649a, atmega649p, atmega6450, atmega6450a, atmega6450p, atmega6490, atmega6490a, atmega6490p, atmega64rfr2, atmega644rfr2, atmega16hva, atmega16hva2, atmega16hvb, atmega16hvbrevb, atmega32hvb, atmega32hvbrevb, atmega64hve, atmega64hve2, at90can32, at90can64, at90pwm161, at90pwm216, at90pwm316, atmega32c1, atmega64c1, atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at90scr100, at94k, m3000, atmega128, atmega128a, atmega1280, atmega1281, atmega1284, atmega1284p, atmega128rfa1, atmega128rfr2, atmega1284rfr2, at90can128, at90usb1286, at90usb1287, atmega2560, atmega2561, atmega256rfr2, atmega2564rfr2, atxmega16a4, atxmega16a4u, atxmega16c4, atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32c3, atxmega32c4, atxmega32d3, atxmega32d4, atxmega32e5, atxmega16e5, atxmega8e5, atxmega32x1, atxmega64a3, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3, atxmega64c3, atxmega64d3, atxmega64d4, atxmega64a1, atxmega64a1u, atxmega128a3, atxmega128a3u, atxmega128b1, atxmega128b3, atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega192c3, atxmega192d3, atxmega256a3, atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega256c3, atxmega256d3, atxmega384c3, atxmega384d3, atxmega128a1, atxmega128a1u, atxmega128a4u, attiny4, attiny5, attiny9, attiny10, attiny20, attiny40, attiny102, attiny104, attiny202, attiny402, attiny204, attiny404, attiny804, attiny1604, attiny406, attiny806, attiny1606, attiny807, attiny1607, attiny212, attiny412, attiny214, attiny414, attiny814, attiny1614, attiny416, attiny816, attiny1616, attiny3216, attiny417, attiny817, attiny1617, attiny3217
80+
// AVR-NEXT: note: valid target CPU values are: avr1, avr2, avr25, avr3, avr31, avr35, avr4, avr5, avr51, avr6, avrxmega1, avrxmega2, avrxmega3, avrxmega4, avrxmega5, avrxmega6, avrxmega7, avrtiny, at90s1200, attiny11, attiny12, attiny15, attiny28, at90s2313, at90s2323, at90s2333, at90s2343, attiny22, attiny26, at86rf401, at90s4414, at90s4433, at90s4434, at90s8515, at90c8534, at90s8535, ata5272, ata6616c, attiny13, attiny13a, attiny2313, attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84, attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny441, attiny461, attiny461a, attiny841, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88, attiny828, at43usb355, at76c711, atmega103, at43usb320, attiny167, at90usb82, at90usb162, ata5505, ata6617c, ata664251, atmega8u2, atmega16u2, atmega32u2, attiny1634, atmega8, ata6289, atmega8a, ata6285, ata6286, ata6612c, atmega48, atmega48a, atmega48pa, atmega48pb, atmega48p, atmega88, atmega88a, atmega88p, atmega88pa, atmega88pb, atmega8515, atmega8535, atmega8hva, at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, ata5702m322, ata5782, ata5790, ata5790n, ata5791, ata5795, ata5831, ata6613c, ata6614q, ata8210, ata8510, atmega16, atmega16a, atmega161, atmega162, atmega163, atmega164a, atmega164p, atmega164pa, atmega165, atmega165a, atmega165p, atmega165pa, atmega168, atmega168a, atmega168p, atmega168pa, atmega168pb, atmega169, atmega169a, atmega169p, atmega169pa, atmega32, atmega32a, atmega323, atmega324a, atmega324p, atmega324pa, atmega324pb, atmega325, atmega325a, atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328, atmega328p, atmega328pb, atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64, atmega64a, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645, atmega645a, atmega645p, atmega649, atmega649a, atmega649p, atmega6450, atmega6450a, atmega6450p, atmega6490, atmega6490a, atmega6490p, atmega64rfr2, atmega644rfr2, atmega16hva, atmega16hva2, atmega16hvb, atmega16hvbrevb, atmega32hvb, atmega32hvbrevb, atmega64hve, atmega64hve2, at90can32, at90can64, at90pwm161, at90pwm216, at90pwm316, atmega32c1, atmega64c1, atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at90scr100, at94k, m3000, atmega128, atmega128a, atmega1280, atmega1281, atmega1284, atmega1284p, atmega128rfa1, atmega128rfr2, atmega1284rfr2, at90can128, at90usb1286, at90usb1287, atmega2560, atmega2561, atmega256rfr2, atmega2564rfr2, atxmega16a4, atxmega16a4u, atxmega16c4, atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32c3, atxmega32c4, atxmega32d3, atxmega32d4, atxmega32e5, atxmega16e5, atxmega8e5, atxmega64a3, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3, atxmega64c3, atxmega64d3, atxmega64d4, atxmega64a1, atxmega64a1u, atxmega128a3, atxmega128a3u, atxmega128b1, atxmega128b3, atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega192c3, atxmega192d3, atxmega256a3, atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega256c3, atxmega256d3, atxmega384c3, atxmega384d3, atxmega128a1, atxmega128a1u, atxmega128a4u, attiny4, attiny5, attiny9, attiny10, attiny20, attiny40, attiny102, attiny104, attiny202, attiny402, attiny204, attiny404, attiny804, attiny1604, attiny406, attiny806, attiny1606, attiny807, attiny1607, attiny212, attiny412, attiny214, attiny414, attiny814, attiny1614, attiny416, attiny816, attiny1616, attiny3216, attiny417, attiny817, attiny1617, attiny3217, attiny1624, attiny1626, attiny1627, atmega808, atmega809, atmega1608, atmega1609, atmega3208, atmega3209, atmega4808, atmega4809
8181

8282
// RUN: not %clang_cc1 -triple riscv32 -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix RISCV32
8383
// RISCV32: error: unknown target CPU 'not-a-cpu'

0 commit comments

Comments
 (0)