Skip to content

Commit b0d4d96

Browse files
justinlatimerbenshi001
authored andcommitted
[AVR] Add support for the tinyAVR 0-series and tinyAVR 1-series
Reviewed By: Dylan McKay, Ben Shi Differential Revision: https://reviews.llvm.org/D103136
1 parent f0460fa commit b0d4d96

File tree

3 files changed

+55
-1
lines changed

3 files changed

+55
-1
lines changed

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

+25
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,31 @@ static MCUInfo AVRMcus[] = {
274274
{"attiny40", "__AVR_ATtiny40__"},
275275
{"attiny102", "__AVR_ATtiny102__"},
276276
{"attiny104", "__AVR_ATtiny104__"},
277+
{"attiny202", "__AVR_ATtiny202__"},
278+
{"attiny402", "__AVR_ATtiny402__"},
279+
{"attiny204", "__AVR_ATtiny204__"},
280+
{"attiny404", "__AVR_ATtiny404__"},
281+
{"attiny804", "__AVR_ATtiny804__"},
282+
{"attiny1604", "__AVR_ATtiny1604__"},
283+
{"attiny406", "__AVR_ATtiny406__"},
284+
{"attiny806", "__AVR_ATtiny806__"},
285+
{"attiny1606", "__AVR_ATtiny1606__"},
286+
{"attiny807", "__AVR_ATtiny807__"},
287+
{"attiny1607", "__AVR_ATtiny1607__"},
288+
{"attiny212", "__AVR_ATtiny212__"},
289+
{"attiny412", "__AVR_ATtiny412__"},
290+
{"attiny214", "__AVR_ATtiny214__"},
291+
{"attiny414", "__AVR_ATtiny414__"},
292+
{"attiny814", "__AVR_ATtiny814__"},
293+
{"attiny1614", "__AVR_ATtiny1614__"},
294+
{"attiny416", "__AVR_ATtiny416__"},
295+
{"attiny816", "__AVR_ATtiny816__"},
296+
{"attiny1616", "__AVR_ATtiny1616__"},
297+
{"attiny3216", "__AVR_ATtiny3216__"},
298+
{"attiny417", "__AVR_ATtiny417__"},
299+
{"attiny817", "__AVR_ATtiny817__"},
300+
{"attiny1617", "__AVR_ATtiny1617__"},
301+
{"attiny3217", "__AVR_ATtiny3217__"},
277302
};
278303

279304
} // namespace targets

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

+5-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,11 @@
188188
// AVR-SAME: atxmega256a3, atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega256c3,
189189
// AVR-SAME: atxmega256d3, atxmega384c3, atxmega384d3, atxmega128a1, atxmega128a1u,
190190
// AVR-SAME: atxmega128a4u, attiny4, attiny5, attiny9, attiny10, attiny20, attiny40,
191-
// AVR-SAME: attiny102, attiny104
191+
// AVR-SAME: attiny102, attiny104, attiny202, attiny402, attiny204, attiny404, attiny804,
192+
// AVR-SAME: attiny1604, attiny406, attiny806, attiny1606, attiny807, attiny1607,
193+
// AVR-SAME: attiny212, attiny412, attiny214, attiny414, attiny814, attiny1614,
194+
// AVR-SAME: attiny416, attiny816, attiny1616, attiny3216, attiny417, attiny817,
195+
// AVR-SAME: attiny1617, attiny3217
192196

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

Diff for: llvm/lib/Target/AVR/AVRDevices.td

+25
Original file line numberDiff line numberDiff line change
@@ -498,3 +498,28 @@ def : Device<"attiny20", FamilyTiny, ELFArchTiny>;
498498
def : Device<"attiny40", FamilyTiny, ELFArchTiny>;
499499
def : Device<"attiny102", FamilyTiny, ELFArchTiny>;
500500
def : Device<"attiny104", FamilyTiny, ELFArchTiny>;
501+
def : Device<"attiny202", FamilyXMEGA, ELFArchXMEGA3>;
502+
def : Device<"attiny402", FamilyXMEGA, ELFArchXMEGA3>;
503+
def : Device<"attiny204", FamilyXMEGA, ELFArchXMEGA3>;
504+
def : Device<"attiny404", FamilyXMEGA, ELFArchXMEGA3>;
505+
def : Device<"attiny804", FamilyXMEGA, ELFArchXMEGA3>;
506+
def : Device<"attiny1604", FamilyXMEGA, ELFArchXMEGA3>;
507+
def : Device<"attiny406", FamilyXMEGA, ELFArchXMEGA3>;
508+
def : Device<"attiny806", FamilyXMEGA, ELFArchXMEGA3>;
509+
def : Device<"attiny1606", FamilyXMEGA, ELFArchXMEGA3>;
510+
def : Device<"attiny807", FamilyXMEGA, ELFArchXMEGA3>;
511+
def : Device<"attiny1607", FamilyXMEGA, ELFArchXMEGA3>;
512+
def : Device<"attiny212", FamilyXMEGA, ELFArchXMEGA3>;
513+
def : Device<"attiny412", FamilyXMEGA, ELFArchXMEGA3>;
514+
def : Device<"attiny214", FamilyXMEGA, ELFArchXMEGA3>;
515+
def : Device<"attiny414", FamilyXMEGA, ELFArchXMEGA3>;
516+
def : Device<"attiny814", FamilyXMEGA, ELFArchXMEGA3>;
517+
def : Device<"attiny1614", FamilyXMEGA, ELFArchXMEGA3>;
518+
def : Device<"attiny416", FamilyXMEGA, ELFArchXMEGA3>;
519+
def : Device<"attiny816", FamilyXMEGA, ELFArchXMEGA3>;
520+
def : Device<"attiny1616", FamilyXMEGA, ELFArchXMEGA3>;
521+
def : Device<"attiny3216", FamilyXMEGA, ELFArchXMEGA3>;
522+
def : Device<"attiny417", FamilyXMEGA, ELFArchXMEGA3>;
523+
def : Device<"attiny817", FamilyXMEGA, ELFArchXMEGA3>;
524+
def : Device<"attiny1617", FamilyXMEGA, ELFArchXMEGA3>;
525+
def : Device<"attiny3217", FamilyXMEGA, ELFArchXMEGA3>;

0 commit comments

Comments
 (0)