Go to the documentation of this file.
15 #include "llvm/ADT/StringSwitch.h"
17 using namespace clang;
33 {
"at90s1200",
"__AVR_AT90S1200__", 0,
false},
34 {
"attiny11",
"__AVR_ATtiny11__", 0,
false},
35 {
"attiny12",
"__AVR_ATtiny12__", 0,
false},
36 {
"attiny15",
"__AVR_ATtiny15__", 0,
false},
37 {
"attiny28",
"__AVR_ATtiny28__", 0,
false},
38 {
"at90s2313",
"__AVR_AT90S2313__", 1,
false},
39 {
"at90s2323",
"__AVR_AT90S2323__", 1,
false},
40 {
"at90s2333",
"__AVR_AT90S2333__", 1,
false},
41 {
"at90s2343",
"__AVR_AT90S2343__", 1,
false},
42 {
"attiny22",
"__AVR_ATtiny22__", 1,
false},
43 {
"attiny26",
"__AVR_ATtiny26__", 1,
false},
44 {
"at86rf401",
"__AVR_AT86RF401__", 1,
false},
45 {
"at90s4414",
"__AVR_AT90S4414__", 1,
false},
46 {
"at90s4433",
"__AVR_AT90S4433__", 1,
false},
47 {
"at90s4434",
"__AVR_AT90S4434__", 1,
false},
48 {
"at90s8515",
"__AVR_AT90S8515__", 1,
false},
49 {
"at90c8534",
"__AVR_AT90c8534__", 1,
false},
50 {
"at90s8535",
"__AVR_AT90S8535__", 1,
false},
51 {
"ata5272",
"__AVR_ATA5272__", 1,
false},
52 {
"ata6616c",
"__AVR_ATA6616c__", 1,
false},
53 {
"attiny13",
"__AVR_ATtiny13__", 1,
false},
54 {
"attiny13a",
"__AVR_ATtiny13A__", 1,
false},
55 {
"attiny2313",
"__AVR_ATtiny2313__", 1,
false},
56 {
"attiny2313a",
"__AVR_ATtiny2313A__", 1,
false},
57 {
"attiny24",
"__AVR_ATtiny24__", 1,
false},
58 {
"attiny24a",
"__AVR_ATtiny24A__", 1,
false},
59 {
"attiny4313",
"__AVR_ATtiny4313__", 1,
false},
60 {
"attiny44",
"__AVR_ATtiny44__", 1,
false},
61 {
"attiny44a",
"__AVR_ATtiny44A__", 1,
false},
62 {
"attiny84",
"__AVR_ATtiny84__", 1,
false},
63 {
"attiny84a",
"__AVR_ATtiny84A__", 1,
false},
64 {
"attiny25",
"__AVR_ATtiny25__", 1,
false},
65 {
"attiny45",
"__AVR_ATtiny45__", 1,
false},
66 {
"attiny85",
"__AVR_ATtiny85__", 1,
false},
67 {
"attiny261",
"__AVR_ATtiny261__", 1,
false},
68 {
"attiny261a",
"__AVR_ATtiny261A__", 1,
false},
69 {
"attiny441",
"__AVR_ATtiny441__", 1,
false},
70 {
"attiny461",
"__AVR_ATtiny461__", 1,
false},
71 {
"attiny461a",
"__AVR_ATtiny461A__", 1,
false},
72 {
"attiny841",
"__AVR_ATtiny841__", 1,
false},
73 {
"attiny861",
"__AVR_ATtiny861__", 1,
false},
74 {
"attiny861a",
"__AVR_ATtiny861A__", 1,
false},
75 {
"attiny87",
"__AVR_ATtiny87__", 1,
false},
76 {
"attiny43u",
"__AVR_ATtiny43U__", 1,
false},
77 {
"attiny48",
"__AVR_ATtiny48__", 1,
false},
78 {
"attiny88",
"__AVR_ATtiny88__", 1,
false},
79 {
"attiny828",
"__AVR_ATtiny828__", 1,
false},
80 {
"at43usb355",
"__AVR_AT43USB355__", 1,
false},
81 {
"at76c711",
"__AVR_AT76C711__", 1,
false},
82 {
"atmega103",
"__AVR_ATmega103__", 1,
false},
83 {
"at43usb320",
"__AVR_AT43USB320__", 1,
false},
84 {
"attiny167",
"__AVR_ATtiny167__", 1,
false},
85 {
"at90usb82",
"__AVR_AT90USB82__", 1,
false},
86 {
"at90usb162",
"__AVR_AT90USB162__", 1,
false},
87 {
"ata5505",
"__AVR_ATA5505__", 1,
false},
88 {
"ata6617c",
"__AVR_ATA6617C__", 1,
false},
89 {
"ata664251",
"__AVR_ATA664251__", 1,
false},
90 {
"atmega8u2",
"__AVR_ATmega8U2__", 1,
false},
91 {
"atmega16u2",
"__AVR_ATmega16U2__", 1,
false},
92 {
"atmega32u2",
"__AVR_ATmega32U2__", 1,
false},
93 {
"attiny1634",
"__AVR_ATtiny1634__", 1,
false},
94 {
"atmega8",
"__AVR_ATmega8__", 1,
false},
95 {
"ata6289",
"__AVR_ATA6289__", 1,
false},
96 {
"atmega8a",
"__AVR_ATmega8A__", 1,
false},
97 {
"ata6285",
"__AVR_ATA6285__", 1,
false},
98 {
"ata6286",
"__AVR_ATA6286__", 1,
false},
99 {
"ata6612c",
"__AVR_ATA6612C__", 1,
false},
100 {
"atmega48",
"__AVR_ATmega48__", 1,
false},
101 {
"atmega48a",
"__AVR_ATmega48A__", 1,
false},
102 {
"atmega48pa",
"__AVR_ATmega48PA__", 1,
false},
103 {
"atmega48pb",
"__AVR_ATmega48PB__", 1,
false},
104 {
"atmega48p",
"__AVR_ATmega48P__", 1,
false},
105 {
"atmega88",
"__AVR_ATmega88__", 1,
false},
106 {
"atmega88a",
"__AVR_ATmega88A__", 1,
false},
107 {
"atmega88p",
"__AVR_ATmega88P__", 1,
false},
108 {
"atmega88pa",
"__AVR_ATmega88PA__", 1,
false},
109 {
"atmega88pb",
"__AVR_ATmega88PB__", 1,
false},
110 {
"atmega8515",
"__AVR_ATmega8515__", 1,
false},
111 {
"atmega8535",
"__AVR_ATmega8535__", 1,
false},
112 {
"atmega8hva",
"__AVR_ATmega8HVA__", 1,
false},
113 {
"at90pwm1",
"__AVR_AT90PWM1__", 1,
false},
114 {
"at90pwm2",
"__AVR_AT90PWM2__", 1,
false},
115 {
"at90pwm2b",
"__AVR_AT90PWM2B__", 1,
false},
116 {
"at90pwm3",
"__AVR_AT90PWM3__", 1,
false},
117 {
"at90pwm3b",
"__AVR_AT90PWM3B__", 1,
false},
118 {
"at90pwm81",
"__AVR_AT90PWM81__", 1,
false},
119 {
"ata5702m322",
"__AVR_ATA5702M322__", 1,
false},
120 {
"ata5782",
"__AVR_ATA5782__", 1,
false},
121 {
"ata5790",
"__AVR_ATA5790__", 1,
false},
122 {
"ata5790n",
"__AVR_ATA5790N__", 1,
false},
123 {
"ata5791",
"__AVR_ATA5791__", 1,
false},
124 {
"ata5795",
"__AVR_ATA5795__", 1,
false},
125 {
"ata5831",
"__AVR_ATA5831__", 1,
false},
126 {
"ata6613c",
"__AVR_ATA6613C__", 1,
false},
127 {
"ata6614q",
"__AVR_ATA6614Q__", 1,
false},
128 {
"ata8210",
"__AVR_ATA8210__", 1,
false},
129 {
"ata8510",
"__AVR_ATA8510__", 1,
false},
130 {
"atmega16",
"__AVR_ATmega16__", 1,
false},
131 {
"atmega16a",
"__AVR_ATmega16A__", 1,
false},
132 {
"atmega161",
"__AVR_ATmega161__", 1,
false},
133 {
"atmega162",
"__AVR_ATmega162__", 1,
false},
134 {
"atmega163",
"__AVR_ATmega163__", 1,
false},
135 {
"atmega164a",
"__AVR_ATmega164A__", 1,
false},
136 {
"atmega164p",
"__AVR_ATmega164P__", 1,
false},
137 {
"atmega164pa",
"__AVR_ATmega164PA__", 1,
false},
138 {
"atmega165",
"__AVR_ATmega165__", 1,
false},
139 {
"atmega165a",
"__AVR_ATmega165A__", 1,
false},
140 {
"atmega165p",
"__AVR_ATmega165P__", 1,
false},
141 {
"atmega165pa",
"__AVR_ATmega165PA__", 1,
false},
142 {
"atmega168",
"__AVR_ATmega168__", 1,
false},
143 {
"atmega168a",
"__AVR_ATmega168A__", 1,
false},
144 {
"atmega168p",
"__AVR_ATmega168P__", 1,
false},
145 {
"atmega168pa",
"__AVR_ATmega168PA__", 1,
false},
146 {
"atmega168pb",
"__AVR_ATmega168PB__", 1,
false},
147 {
"atmega169",
"__AVR_ATmega169__", 1,
false},
148 {
"atmega169a",
"__AVR_ATmega169A__", 1,
false},
149 {
"atmega169p",
"__AVR_ATmega169P__", 1,
false},
150 {
"atmega169pa",
"__AVR_ATmega169PA__", 1,
false},
151 {
"atmega32",
"__AVR_ATmega32__", 1,
false},
152 {
"atmega32a",
"__AVR_ATmega32A__", 1,
false},
153 {
"atmega323",
"__AVR_ATmega323__", 1,
false},
154 {
"atmega324a",
"__AVR_ATmega324A__", 1,
false},
155 {
"atmega324p",
"__AVR_ATmega324P__", 1,
false},
156 {
"atmega324pa",
"__AVR_ATmega324PA__", 1,
false},
157 {
"atmega324pb",
"__AVR_ATmega324PB__", 1,
false},
158 {
"atmega325",
"__AVR_ATmega325__", 1,
false},
159 {
"atmega325a",
"__AVR_ATmega325A__", 1,
false},
160 {
"atmega325p",
"__AVR_ATmega325P__", 1,
false},
161 {
"atmega325pa",
"__AVR_ATmega325PA__", 1,
false},
162 {
"atmega3250",
"__AVR_ATmega3250__", 1,
false},
163 {
"atmega3250a",
"__AVR_ATmega3250A__", 1,
false},
164 {
"atmega3250p",
"__AVR_ATmega3250P__", 1,
false},
165 {
"atmega3250pa",
"__AVR_ATmega3250PA__", 1,
false},
166 {
"atmega328",
"__AVR_ATmega328__", 1,
false},
167 {
"atmega328p",
"__AVR_ATmega328P__", 1,
false},
168 {
"atmega328pb",
"__AVR_ATmega328PB__", 1,
false},
169 {
"atmega329",
"__AVR_ATmega329__", 1,
false},
170 {
"atmega329a",
"__AVR_ATmega329A__", 1,
false},
171 {
"atmega329p",
"__AVR_ATmega329P__", 1,
false},
172 {
"atmega329pa",
"__AVR_ATmega329PA__", 1,
false},
173 {
"atmega3290",
"__AVR_ATmega3290__", 1,
false},
174 {
"atmega3290a",
"__AVR_ATmega3290A__", 1,
false},
175 {
"atmega3290p",
"__AVR_ATmega3290P__", 1,
false},
176 {
"atmega3290pa",
"__AVR_ATmega3290PA__", 1,
false},
177 {
"atmega406",
"__AVR_ATmega406__", 1,
false},
178 {
"atmega64",
"__AVR_ATmega64__", 1,
false},
179 {
"atmega64a",
"__AVR_ATmega64A__", 1,
false},
180 {
"atmega640",
"__AVR_ATmega640__", 1,
false},
181 {
"atmega644",
"__AVR_ATmega644__", 1,
false},
182 {
"atmega644a",
"__AVR_ATmega644A__", 1,
false},
183 {
"atmega644p",
"__AVR_ATmega644P__", 1,
false},
184 {
"atmega644pa",
"__AVR_ATmega644PA__", 1,
false},
185 {
"atmega645",
"__AVR_ATmega645__", 1,
false},
186 {
"atmega645a",
"__AVR_ATmega645A__", 1,
false},
187 {
"atmega645p",
"__AVR_ATmega645P__", 1,
false},
188 {
"atmega649",
"__AVR_ATmega649__", 1,
false},
189 {
"atmega649a",
"__AVR_ATmega649A__", 1,
false},
190 {
"atmega649p",
"__AVR_ATmega649P__", 1,
false},
191 {
"atmega6450",
"__AVR_ATmega6450__", 1,
false},
192 {
"atmega6450a",
"__AVR_ATmega6450A__", 1,
false},
193 {
"atmega6450p",
"__AVR_ATmega6450P__", 1,
false},
194 {
"atmega6490",
"__AVR_ATmega6490__", 1,
false},
195 {
"atmega6490a",
"__AVR_ATmega6490A__", 1,
false},
196 {
"atmega6490p",
"__AVR_ATmega6490P__", 1,
false},
197 {
"atmega64rfr2",
"__AVR_ATmega64RFR2__", 1,
false},
198 {
"atmega644rfr2",
"__AVR_ATmega644RFR2__", 1,
false},
199 {
"atmega16hva",
"__AVR_ATmega16HVA__", 1,
false},
200 {
"atmega16hva2",
"__AVR_ATmega16HVA2__", 1,
false},
201 {
"atmega16hvb",
"__AVR_ATmega16HVB__", 1,
false},
202 {
"atmega16hvbrevb",
"__AVR_ATmega16HVBREVB__", 1,
false},
203 {
"atmega32hvb",
"__AVR_ATmega32HVB__", 1,
false},
204 {
"atmega32hvbrevb",
"__AVR_ATmega32HVBREVB__", 1,
false},
205 {
"atmega64hve",
"__AVR_ATmega64HVE__", 1,
false},
206 {
"atmega64hve2",
"__AVR_ATmega64HVE2__", 1,
false},
207 {
"at90can32",
"__AVR_AT90CAN32__", 1,
false},
208 {
"at90can64",
"__AVR_AT90CAN64__", 1,
false},
209 {
"at90pwm161",
"__AVR_AT90PWM161__", 1,
false},
210 {
"at90pwm216",
"__AVR_AT90PWM216__", 1,
false},
211 {
"at90pwm316",
"__AVR_AT90PWM316__", 1,
false},
212 {
"atmega32c1",
"__AVR_ATmega32C1__", 1,
false},
213 {
"atmega64c1",
"__AVR_ATmega64C1__", 1,
false},
214 {
"atmega16m1",
"__AVR_ATmega16M1__", 1,
false},
215 {
"atmega32m1",
"__AVR_ATmega32M1__", 1,
false},
216 {
"atmega64m1",
"__AVR_ATmega64M1__", 1,
false},
217 {
"atmega16u4",
"__AVR_ATmega16U4__", 1,
false},
218 {
"atmega32u4",
"__AVR_ATmega32U4__", 1,
false},
219 {
"atmega32u6",
"__AVR_ATmega32U6__", 1,
false},
220 {
"at90usb646",
"__AVR_AT90USB646__", 1,
false},
221 {
"at90usb647",
"__AVR_AT90USB647__", 1,
false},
222 {
"at90scr100",
"__AVR_AT90SCR100__", 1,
false},
223 {
"at94k",
"__AVR_AT94K__", 1,
false},
224 {
"m3000",
"__AVR_AT000__", 1,
false},
225 {
"atmega128",
"__AVR_ATmega128__", 2,
false},
226 {
"atmega128a",
"__AVR_ATmega128A__", 2,
false},
227 {
"atmega1280",
"__AVR_ATmega1280__", 2,
false},
228 {
"atmega1281",
"__AVR_ATmega1281__", 2,
false},
229 {
"atmega1284",
"__AVR_ATmega1284__", 2,
false},
230 {
"atmega1284p",
"__AVR_ATmega1284P__", 2,
false},
231 {
"atmega128rfa1",
"__AVR_ATmega128RFA1__", 2,
false},
232 {
"atmega128rfr2",
"__AVR_ATmega128RFR2__", 2,
false},
233 {
"atmega1284rfr2",
"__AVR_ATmega1284RFR2__", 2,
false},
234 {
"at90can128",
"__AVR_AT90CAN128__", 2,
false},
235 {
"at90usb1286",
"__AVR_AT90USB1286__", 2,
false},
236 {
"at90usb1287",
"__AVR_AT90USB1287__", 2,
false},
237 {
"atmega2560",
"__AVR_ATmega2560__", 4,
false},
238 {
"atmega2561",
"__AVR_ATmega2561__", 4,
false},
239 {
"atmega256rfr2",
"__AVR_ATmega256RFR2__", 4,
false},
240 {
"atmega2564rfr2",
"__AVR_ATmega2564RFR2__", 4,
false},
241 {
"atxmega16a4",
"__AVR_ATxmega16A4__", 1,
false},
242 {
"atxmega16a4u",
"__AVR_ATxmega16A4U__", 1,
false},
243 {
"atxmega16c4",
"__AVR_ATxmega16C4__", 1,
false},
244 {
"atxmega16d4",
"__AVR_ATxmega16D4__", 1,
false},
245 {
"atxmega32a4",
"__AVR_ATxmega32A4__", 1,
false},
246 {
"atxmega32a4u",
"__AVR_ATxmega32A4U__", 1,
false},
247 {
"atxmega32c3",
"__AVR_ATxmega32C3__", 1,
false},
248 {
"atxmega32c4",
"__AVR_ATxmega32C4__", 1,
false},
249 {
"atxmega32d3",
"__AVR_ATxmega32D3__", 1,
false},
250 {
"atxmega32d4",
"__AVR_ATxmega32D4__", 1,
false},
251 {
"atxmega32e5",
"__AVR_ATxmega32E5__", 1,
false},
252 {
"atxmega16e5",
"__AVR_ATxmega16E5__", 1,
false},
253 {
"atxmega8e5",
"__AVR_ATxmega8E5__", 1,
false},
254 {
"atxmega64a3",
"__AVR_ATxmega64A3__", 1,
false},
255 {
"atxmega64a3u",
"__AVR_ATxmega64A3U__", 1,
false},
256 {
"atxmega64a4u",
"__AVR_ATxmega64A4U__", 1,
false},
257 {
"atxmega64b1",
"__AVR_ATxmega64B1__", 1,
false},
258 {
"atxmega64b3",
"__AVR_ATxmega64B3__", 1,
false},
259 {
"atxmega64c3",
"__AVR_ATxmega64C3__", 1,
false},
260 {
"atxmega64d3",
"__AVR_ATxmega64D3__", 1,
false},
261 {
"atxmega64d4",
"__AVR_ATxmega64D4__", 1,
false},
262 {
"atxmega64a1",
"__AVR_ATxmega64A1__", 1,
false},
263 {
"atxmega64a1u",
"__AVR_ATxmega64A1U__", 1,
false},
264 {
"atxmega128a3",
"__AVR_ATxmega128A3__", 2,
false},
265 {
"atxmega128a3u",
"__AVR_ATxmega128A3U__", 2,
false},
266 {
"atxmega128b1",
"__AVR_ATxmega128B1__", 2,
false},
267 {
"atxmega128b3",
"__AVR_ATxmega128B3__", 2,
false},
268 {
"atxmega128c3",
"__AVR_ATxmega128C3__", 2,
false},
269 {
"atxmega128d3",
"__AVR_ATxmega128D3__", 2,
false},
270 {
"atxmega128d4",
"__AVR_ATxmega128D4__", 2,
false},
271 {
"atxmega192a3",
"__AVR_ATxmega192A3__", 3,
false},
272 {
"atxmega192a3u",
"__AVR_ATxmega192A3U__", 3,
false},
273 {
"atxmega192c3",
"__AVR_ATxmega192C3__", 3,
false},
274 {
"atxmega192d3",
"__AVR_ATxmega192D3__", 3,
false},
275 {
"atxmega256a3",
"__AVR_ATxmega256A3__", 4,
false},
276 {
"atxmega256a3u",
"__AVR_ATxmega256A3U__", 4,
false},
277 {
"atxmega256a3b",
"__AVR_ATxmega256A3B__", 4,
false},
278 {
"atxmega256a3bu",
"__AVR_ATxmega256A3BU__", 4,
false},
279 {
"atxmega256c3",
"__AVR_ATxmega256C3__", 4,
false},
280 {
"atxmega256d3",
"__AVR_ATxmega256D3__", 4,
false},
281 {
"atxmega384c3",
"__AVR_ATxmega384C3__", 6,
false},
282 {
"atxmega384d3",
"__AVR_ATxmega384D3__", 6,
false},
283 {
"atxmega128a1",
"__AVR_ATxmega128A1__", 2,
false},
284 {
"atxmega128a1u",
"__AVR_ATxmega128A1U__", 2,
false},
285 {
"atxmega128a4u",
"__AVR_ATxmega128A4U__", 2,
false},
286 {
"attiny4",
"__AVR_ATtiny4__", 0,
true},
287 {
"attiny5",
"__AVR_ATtiny5__", 0,
true},
288 {
"attiny9",
"__AVR_ATtiny9__", 0,
true},
289 {
"attiny10",
"__AVR_ATtiny10__", 0,
true},
290 {
"attiny20",
"__AVR_ATtiny20__", 0,
true},
291 {
"attiny40",
"__AVR_ATtiny40__", 0,
true},
292 {
"attiny102",
"__AVR_ATtiny102__", 0,
true},
293 {
"attiny104",
"__AVR_ATtiny104__", 0,
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},
336 "avr1",
"avr2",
"avr25",
"avr3",
"avr31",
337 "avr35",
"avr4",
"avr5",
"avr51",
"avr6",
338 "avrxmega1",
"avrxmega2",
"avrxmega3",
"avrxmega4",
"avrxmega5",
339 "avrxmega6",
"avrxmega7",
"avrtiny"};
344 bool IsMCU = llvm::any_of(
346 return IsFamily || IsMCU;
352 Values.push_back(Info.Name);
359 ABI = Name ==
"avrtiny" ?
"avrtiny" :
"avr";
364 auto It = llvm::find_if(
368 ABI = It->IsTiny ?
"avrtiny" :
"avr";
378 Builder.defineMacro(
"AVR");
379 Builder.defineMacro(
"__AVR");
380 Builder.defineMacro(
"__AVR__");
381 Builder.defineMacro(
"__ELF__");
383 if (
ABI ==
"avrtiny")
384 Builder.defineMacro(
"__AVR_TINY__",
"1");
386 if (!this->
CPU.empty()) {
387 auto It = llvm::find_if(
391 Builder.defineMacro(It->DefineName);
392 if (It->NumFlashBanks >= 1)
393 Builder.defineMacro(
"__flash",
"__attribute__((address_space(1)))");
394 if (It->NumFlashBanks >= 2)
395 Builder.defineMacro(
"__flash1",
"__attribute__((address_space(2)))");
396 if (It->NumFlashBanks >= 3)
397 Builder.defineMacro(
"__flash2",
"__attribute__((address_space(3)))");
398 if (It->NumFlashBanks >= 4)
399 Builder.defineMacro(
"__flash3",
"__attribute__((address_space(4)))");
400 if (It->NumFlashBanks >= 5)
401 Builder.defineMacro(
"__flash4",
"__attribute__((address_space(5)))");
402 if (It->NumFlashBanks >= 6)
403 Builder.defineMacro(
"__flash5",
"__attribute__((address_space(6)))");
Information about a specific microcontroller.
void fillValidCPUList(SmallVectorImpl< StringRef > &Values) const override
Fill a SmallVectorImpl with the valid values to setCPU.
void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override
===-— Other target property query methods -----------------------—===//
bool setCPU(const std::string &Name) override
Target the specified CPU.
bool isValidCPUName(StringRef Name) const override
brief Determine whether this TargetInfo supports the given CPU name.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
static constexpr llvm::StringLiteral ValidFamilyNames[]