Author: Ben Shi Date: 2022-03-25T01:43:41Z New Revision: b62ea9b38b627ce2a96f66242c15250d59a9b134
URL: https://github.com/llvm/llvm-project/commit/b62ea9b38b627ce2a96f66242c15250d59a9b134 DIFF: https://github.com/llvm/llvm-project/commit/b62ea9b38b627ce2a96f66242c15250d59a9b134.diff LOG: [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 Added: Modified: clang/lib/Basic/Targets/AVR.cpp clang/lib/Driver/ToolChains/AVR.cpp clang/test/Misc/target-invalid-cpu-note.c llvm/lib/Target/AVR/AVRDevices.td Removed: clang/test/Driver/avr-link-mcu-family-unimplemented.c ################################################################################ diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp index ec021ad29fdf8..14b3d0497c62c 100644 --- a/clang/lib/Basic/Targets/AVR.cpp +++ b/clang/lib/Basic/Targets/AVR.cpp @@ -49,6 +49,7 @@ static MCUInfo AVRMcus[] = { {"at90c8534", "__AVR_AT90c8534__", 1, false}, {"at90s8535", "__AVR_AT90S8535__", 1, false}, {"ata5272", "__AVR_ATA5272__", 1, false}, + {"ata6616c", "__AVR_ATA6616c__", 1, false}, {"attiny13", "__AVR_ATtiny13__", 1, false}, {"attiny13a", "__AVR_ATtiny13A__", 1, false}, {"attiny2313", "__AVR_ATtiny2313__", 1, false}, @@ -250,7 +251,6 @@ static MCUInfo AVRMcus[] = { {"atxmega32e5", "__AVR_ATxmega32E5__", 1, false}, {"atxmega16e5", "__AVR_ATxmega16E5__", 1, false}, {"atxmega8e5", "__AVR_ATxmega8E5__", 1, false}, - {"atxmega32x1", "__AVR_ATxmega32X1__", 1, false}, {"atxmega64a3", "__AVR_ATxmega64A3__", 1, false}, {"atxmega64a3u", "__AVR_ATxmega64A3U__", 1, false}, {"atxmega64a4u", "__AVR_ATxmega64A4U__", 1, false}, @@ -291,31 +291,42 @@ static MCUInfo AVRMcus[] = { {"attiny40", "__AVR_ATtiny40__", 0, true}, {"attiny102", "__AVR_ATtiny102__", 0, true}, {"attiny104", "__AVR_ATtiny104__", 0, true}, - {"attiny202", "__AVR_ATtiny202__", 1, true}, - {"attiny402", "__AVR_ATtiny402__", 1, true}, - {"attiny204", "__AVR_ATtiny204__", 1, true}, - {"attiny404", "__AVR_ATtiny404__", 1, true}, - {"attiny804", "__AVR_ATtiny804__", 1, true}, - {"attiny1604", "__AVR_ATtiny1604__", 1, true}, - {"attiny406", "__AVR_ATtiny406__", 1, true}, - {"attiny806", "__AVR_ATtiny806__", 1, true}, - {"attiny1606", "__AVR_ATtiny1606__", 1, true}, - {"attiny807", "__AVR_ATtiny807__", 1, true}, - {"attiny1607", "__AVR_ATtiny1607__", 1, true}, - {"attiny212", "__AVR_ATtiny212__", 1, true}, - {"attiny412", "__AVR_ATtiny412__", 1, true}, - {"attiny214", "__AVR_ATtiny214__", 1, true}, - {"attiny414", "__AVR_ATtiny414__", 1, true}, - {"attiny814", "__AVR_ATtiny814__", 1, true}, - {"attiny1614", "__AVR_ATtiny1614__", 1, true}, - {"attiny416", "__AVR_ATtiny416__", 1, true}, - {"attiny816", "__AVR_ATtiny816__", 1, true}, - {"attiny1616", "__AVR_ATtiny1616__", 1, true}, - {"attiny3216", "__AVR_ATtiny3216__", 1, true}, - {"attiny417", "__AVR_ATtiny417__", 1, true}, - {"attiny817", "__AVR_ATtiny817__", 1, true}, - {"attiny1617", "__AVR_ATtiny1617__", 1, true}, - {"attiny3217", "__AVR_ATtiny3217__", 1, true}, + {"attiny202", "__AVR_ATtiny202__", 1, false}, + {"attiny402", "__AVR_ATtiny402__", 1, false}, + {"attiny204", "__AVR_ATtiny204__", 1, false}, + {"attiny404", "__AVR_ATtiny404__", 1, false}, + {"attiny804", "__AVR_ATtiny804__", 1, false}, + {"attiny1604", "__AVR_ATtiny1604__", 1, false}, + {"attiny406", "__AVR_ATtiny406__", 1, false}, + {"attiny806", "__AVR_ATtiny806__", 1, false}, + {"attiny1606", "__AVR_ATtiny1606__", 1, false}, + {"attiny807", "__AVR_ATtiny807__", 1, false}, + {"attiny1607", "__AVR_ATtiny1607__", 1, false}, + {"attiny212", "__AVR_ATtiny212__", 1, false}, + {"attiny412", "__AVR_ATtiny412__", 1, false}, + {"attiny214", "__AVR_ATtiny214__", 1, false}, + {"attiny414", "__AVR_ATtiny414__", 1, false}, + {"attiny814", "__AVR_ATtiny814__", 1, false}, + {"attiny1614", "__AVR_ATtiny1614__", 1, false}, + {"attiny416", "__AVR_ATtiny416__", 1, false}, + {"attiny816", "__AVR_ATtiny816__", 1, false}, + {"attiny1616", "__AVR_ATtiny1616__", 1, false}, + {"attiny3216", "__AVR_ATtiny3216__", 1, false}, + {"attiny417", "__AVR_ATtiny417__", 1, false}, + {"attiny817", "__AVR_ATtiny817__", 1, false}, + {"attiny1617", "__AVR_ATtiny1617__", 1, false}, + {"attiny3217", "__AVR_ATtiny3217__", 1, false}, + {"attiny1624", "__AVR_ATtiny1624__", 1, false}, + {"attiny1626", "__AVR_ATtiny1626__", 1, false}, + {"attiny1627", "__AVR_ATtiny1627__", 1, false}, + {"atmega808", "__AVR_ATmega808__", 1, false}, + {"atmega809", "__AVR_ATmega809__", 1, false}, + {"atmega1608", "__AVR_ATmega1608__", 1, false}, + {"atmega1609", "__AVR_ATmega1609__", 1, false}, + {"atmega3208", "__AVR_ATmega3208__", 1, false}, + {"atmega3209", "__AVR_ATmega3209__", 1, false}, + {"atmega4808", "__AVR_ATmega4808__", 1, false}, + {"atmega4809", "__AVR_ATmega4809__", 1, false}, }; } // namespace targets diff --git a/clang/lib/Driver/ToolChains/AVR.cpp b/clang/lib/Driver/ToolChains/AVR.cpp index 5577c709a09fc..8688e06e78cc3 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -28,7 +28,7 @@ using namespace llvm::opt; namespace { -// NOTE: This list has been synchronized with gcc-avr 5.4.0 and avr-libc 2.0.0. +// NOTE: This list has been synchronized with gcc-avr 7.3.0 and avr-libc 2.0.0. constexpr struct { StringRef Name; StringRef SubPath; @@ -63,6 +63,7 @@ constexpr struct { {"attiny261a", "avr25/tiny-stack", "avr25", 0x800060}, {"at86rf401", "avr25", "avr25", 0x800060}, {"ata5272", "avr25", "avr25", 0x800100}, + {"ata6616c", "avr25", "avr25", 0x800100}, {"attiny4313", "avr25", "avr25", 0x800060}, {"attiny44", "avr25", "avr25", 0x800060}, {"attiny44a", "avr25", "avr25", 0x800060}, @@ -158,6 +159,7 @@ constexpr struct { {"atmega324a", "avr5", "avr5", 0x800100}, {"atmega324p", "avr5", "avr5", 0x800100}, {"atmega324pa", "avr5", "avr5", 0x800100}, + {"atmega324pb", "avr5", "avr5", 0x800100}, {"atmega325", "avr5", "avr5", 0x800100}, {"atmega325a", "avr5", "avr5", 0x800100}, {"atmega325p", "avr5", "avr5", 0x800100}, @@ -168,6 +170,7 @@ constexpr struct { {"atmega3250pa", "avr5", "avr5", 0x800100}, {"atmega328", "avr5", "avr5", 0x800100}, {"atmega328p", "avr5", "avr5", 0x800100}, + {"atmega328pb", "avr5", "avr5", 0x800100}, {"atmega329", "avr5", "avr5", 0x800100}, {"atmega329a", "avr5", "avr5", 0x800100}, {"atmega329p", "avr5", "avr5", 0x800100}, @@ -246,6 +249,8 @@ constexpr struct { {"attiny10", "avrtiny", "avrtiny", 0x800040}, {"attiny20", "avrtiny", "avrtiny", 0x800040}, {"attiny40", "avrtiny", "avrtiny", 0x800040}, + {"attiny102", "avrtiny", "avrtiny", 0x800040}, + {"attiny104", "avrtiny", "avrtiny", 0x800040}, {"atxmega16a4", "avrxmega2", "avrxmega2", 0x802000}, {"atxmega16a4u", "avrxmega2", "avrxmega2", 0x802000}, {"atxmega16c4", "avrxmega2", "avrxmega2", 0x802000}, @@ -291,6 +296,42 @@ constexpr struct { {"atxmega128a1", "avrxmega7", "avrxmega7", 0x802000}, {"atxmega128a1u", "avrxmega7", "avrxmega7", 0x802000}, {"atxmega128a4u", "avrxmega7", "avrxmega7", 0x802000}, + {"attiny202", "avrxmega3/short-calls", "avrxmega3", 0x803F80}, + {"attiny204", "avrxmega3/short-calls", "avrxmega3", 0x803F80}, + {"attiny212", "avrxmega3/short-calls", "avrxmega3", 0x803F80}, + {"attiny214", "avrxmega3/short-calls", "avrxmega3", 0x803F80}, + {"attiny402", "avrxmega3/short-calls", "avrxmega3", 0x803F00}, + {"attiny404", "avrxmega3/short-calls", "avrxmega3", 0x803F00}, + {"attiny406", "avrxmega3/short-calls", "avrxmega3", 0x803F00}, + {"attiny412", "avrxmega3/short-calls", "avrxmega3", 0x803F00}, + {"attiny414", "avrxmega3/short-calls", "avrxmega3", 0x803F00}, + {"attiny416", "avrxmega3/short-calls", "avrxmega3", 0x803F00}, + {"attiny417", "avrxmega3/short-calls", "avrxmega3", 0x803F00}, + {"attiny804", "avrxmega3/short-calls", "avrxmega3", 0x803E00}, + {"attiny806", "avrxmega3/short-calls", "avrxmega3", 0x803E00}, + {"attiny807", "avrxmega3/short-calls", "avrxmega3", 0x803E00}, + {"attiny814", "avrxmega3/short-calls", "avrxmega3", 0x803E00}, + {"attiny816", "avrxmega3/short-calls", "avrxmega3", 0x803E00}, + {"attiny817", "avrxmega3/short-calls", "avrxmega3", 0x803E00}, + {"atmega808", "avrxmega3/short-calls", "avrxmega3", 0x803C00}, + {"atmega809", "avrxmega3/short-calls", "avrxmega3", 0x803C00}, + {"atmega1608", "avrxmega3", "avrxmega3", 0x803800}, + {"atmega1609", "avrxmega3", "avrxmega3", 0x803800}, + {"atmega3208", "avrxmega3", "avrxmega3", 0x803000}, + {"atmega3209", "avrxmega3", "avrxmega3", 0x803000}, + {"atmega4808", "avrxmega3", "avrxmega3", 0x802800}, + {"atmega4809", "avrxmega3", "avrxmega3", 0x802800}, + {"attiny1604", "avrxmega3", "avrxmega3", 0x803C00}, + {"attiny1606", "avrxmega3", "avrxmega3", 0x803C00}, + {"attiny1607", "avrxmega3", "avrxmega3", 0x803C00}, + {"attiny1614", "avrxmega3", "avrxmega3", 0x803800}, + {"attiny1616", "avrxmega3", "avrxmega3", 0x803800}, + {"attiny1617", "avrxmega3", "avrxmega3", 0x803800}, + {"attiny1624", "avrxmega3", "avrxmega3", 0x803800}, + {"attiny1626", "avrxmega3", "avrxmega3", 0x803800}, + {"attiny1627", "avrxmega3", "avrxmega3", 0x803800}, + {"attiny3216", "avrxmega3", "avrxmega3", 0x803800}, + {"attiny3217", "avrxmega3", "avrxmega3", 0x803800}, }; std::string GetMCUSubPath(StringRef MCUName) { diff --git a/clang/test/Driver/avr-link-mcu-family-unimplemented.c b/clang/test/Driver/avr-link-mcu-family-unimplemented.c deleted file mode 100644 index 59087b0cb9d93..0000000000000 --- a/clang/test/Driver/avr-link-mcu-family-unimplemented.c +++ /dev/null @@ -1,10 +0,0 @@ -// RUN: %clang -### -target avr -no-canonical-prefixes -save-temps -mmcu=attiny102 %s 2>&1 | FileCheck --check-prefix=WARN0 %s -// WARN0: warning: support for linking stdlibs for microcontroller 'attiny102' is not implemented -// WARN0: warning: standard library not linked and so no interrupt vector table or compiler runtime routines will be linked - -// RUN: %clang -### -target avr -no-canonical-prefixes -save-temps -mmcu=atxmega32x1 %s 2>&1 | FileCheck --check-prefix=WARN1 %s -// WARN1: warning: support for linking stdlibs for microcontroller 'atxmega32x1' is not implemented -// WARN1: warning: standard library not linked and so no interrupt vector table or compiler runtime routines will be linked - -int main() { return 0; } - diff --git a/clang/test/Misc/target-invalid-cpu-note.c b/clang/test/Misc/target-invalid-cpu-note.c index 935f7ad6b83c1..84bdb68b741c2 100644 --- a/clang/test/Misc/target-invalid-cpu-note.c +++ b/clang/test/Misc/target-invalid-cpu-note.c @@ -77,7 +77,7 @@ // RUN: not %clang_cc1 -triple avr--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix AVR // AVR: error: unknown target CPU 'not-a-cpu' -// 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 +// 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 // RUN: not %clang_cc1 -triple riscv32 -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix RISCV32 // RISCV32: error: unknown target CPU 'not-a-cpu' diff --git a/llvm/lib/Target/AVR/AVRDevices.td b/llvm/lib/Target/AVR/AVRDevices.td index 97a6e3af2fc5c..3eb5a16204e7a 100644 --- a/llvm/lib/Target/AVR/AVRDevices.td +++ b/llvm/lib/Target/AVR/AVRDevices.td @@ -191,6 +191,12 @@ def FamilyTiny [FamilyAVR0, FeatureBREAK, FeatureSRAM, FeatureTinyEncoding, FeatureSmallStack]>; +def FamilyXMEGA3 : Family<"xmega3", + [FamilyAVR0, FeatureLPM, FeatureIJMPCALL, + FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL, + FeatureMultiplication, FeatureMOVW, FeatureLPMX, + FeatureBREAK]>; + def FamilyXMEGA : Family<"xmega", [FamilyAVR0, FeatureLPM, FeatureIJMPCALL, FeatureADDSUBIW, FeatureSRAM, FeatureJMPCALL, @@ -236,7 +242,7 @@ def : Device<"avr51", FamilyAVR51, ELFArchAVR51>; def : Device<"avr6", FamilyAVR6, ELFArchAVR6>; def : Device<"avrxmega1", FamilyXMEGA, ELFArchXMEGA1>; def : Device<"avrxmega2", FamilyXMEGA, ELFArchXMEGA2>; -def : Device<"avrxmega3", FamilyXMEGA, ELFArchXMEGA3>; +def : Device<"avrxmega3", FamilyXMEGA3, ELFArchXMEGA3>; def : Device<"avrxmega4", FamilyXMEGA, ELFArchXMEGA4>; def : Device<"avrxmega5", FamilyXMEGA, ELFArchXMEGA5>; def : Device<"avrxmega6", FamilyXMEGA, ELFArchXMEGA6>; @@ -265,6 +271,7 @@ def : Device<"at90s8515", FamilyAVR2, ELFArchAVR2>; def : Device<"at90c8534", FamilyAVR2, ELFArchAVR2>; def : Device<"at90s8535", FamilyAVR2, ELFArchAVR2>; def : Device<"ata5272", FamilyAVR25, ELFArchAVR25>; +def : Device<"ata6616c", FamilyAVR25, ELFArchAVR25>; def : Device<"attiny13", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; def : Device<"attiny13a", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; def : Device<"attiny2313", FamilyAVR25, ELFArchAVR25, [FeatureSmallStack]>; @@ -473,7 +480,6 @@ def : Device<"atxmega32d4", FamilyXMEGA, ELFArchXMEGA2>; def : Device<"atxmega32e5", FamilyXMEGAU, ELFArchXMEGA2>; def : Device<"atxmega16e5", FamilyXMEGAU, ELFArchXMEGA2>; def : Device<"atxmega8e5", FamilyXMEGAU, ELFArchXMEGA2>; -def : Device<"atxmega32x1", FamilyXMEGA, ELFArchXMEGA2>; def : Device<"atxmega64a3", FamilyXMEGA, ELFArchXMEGA4>; def : Device<"atxmega64a3u", FamilyXMEGAU, ELFArchXMEGA4>; def : Device<"atxmega64a4u", FamilyXMEGAU, ELFArchXMEGA4>; @@ -514,28 +520,39 @@ def : Device<"attiny20", FamilyTiny, ELFArchTiny>; def : Device<"attiny40", FamilyTiny, ELFArchTiny>; def : Device<"attiny102", FamilyTiny, ELFArchTiny>; def : Device<"attiny104", FamilyTiny, ELFArchTiny>; -def : Device<"attiny202", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny402", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny204", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny404", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny804", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny1604", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny406", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny806", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny1606", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny807", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny1607", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny212", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny412", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny214", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny414", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny814", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny1614", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny416", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny816", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny1616", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny3216", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny417", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny817", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny1617", FamilyXMEGA, ELFArchXMEGA3>; -def : Device<"attiny3217", FamilyXMEGA, ELFArchXMEGA3>; +def : Device<"attiny202", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny402", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny204", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny404", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny804", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny1604", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny406", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny806", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny1606", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny807", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny1607", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny212", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny412", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny214", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny414", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny814", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny1614", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny416", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny816", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny1616", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny3216", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny417", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny817", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny1617", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny3217", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny1624", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny1626", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"attiny1627", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"atmega808", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"atmega809", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"atmega1608", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"atmega1609", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"atmega3208", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"atmega3209", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"atmega4808", FamilyXMEGA3, ELFArchXMEGA3>; +def : Device<"atmega4809", FamilyXMEGA3, ELFArchXMEGA3>; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits