111
|
1 /* Subroutines for the gcc driver.
|
131
|
2 Copyright (C) 2015-2018 Free Software Foundation, Inc.
|
111
|
3 Contributed by Georg-Johann Lay <avr@gjlay.de>
|
|
4
|
|
5 This file is part of GCC.
|
|
6
|
|
7 GCC is free software; you can redistribute it and/or modify
|
|
8 it under the terms of the GNU General Public License as published by
|
|
9 the Free Software Foundation; either version 3, or (at your option)
|
|
10 any later version.
|
|
11
|
|
12 GCC is distributed in the hope that it will be useful,
|
|
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15 GNU General Public License for more details.
|
|
16
|
|
17 You should have received a copy of the GNU General Public License
|
|
18 along with GCC; see the file COPYING3. If not see
|
|
19 <http://www.gnu.org/licenses/>. */
|
|
20
|
131
|
21 #define IN_TARGET_CODE 1
|
|
22
|
111
|
23 #include "config.h"
|
|
24 #include "system.h"
|
|
25 #include "coretypes.h"
|
|
26 #include "diagnostic.h"
|
|
27 #include "tm.h"
|
|
28
|
|
29 /* This is a copy of the same data structure found in gas/config/tc-msp430.c
|
|
30 Also another (sort-of) copy can be found in gcc/config/msp430/msp430.c
|
|
31 Keep these three structures in sync.
|
|
32 The data in this structure has been extracted from version 1.194 of the
|
|
33 devices.csv file released by TI in September 2016. */
|
|
34
|
|
35 struct msp430_mcu_data
|
|
36 {
|
|
37 const char * name;
|
|
38 unsigned int revision; /* 0=> MSP430, 1=>MSP430X, 2=> MSP430Xv2. */
|
|
39 unsigned int hwmpy; /* 0=>none, 1=>16-bit, 2=>16-bit w/sign extend, 4=>32-bit, 8=> 32-bit (5xx). */
|
|
40 }
|
|
41 msp430_mcu_data [] =
|
|
42 {
|
|
43 { "cc430f5123",2,8 },
|
|
44 { "cc430f5125",2,8 },
|
|
45 { "cc430f5133",2,8 },
|
|
46 { "cc430f5135",2,8 },
|
|
47 { "cc430f5137",2,8 },
|
|
48 { "cc430f5143",2,8 },
|
|
49 { "cc430f5145",2,8 },
|
|
50 { "cc430f5147",2,8 },
|
|
51 { "cc430f6125",2,8 },
|
|
52 { "cc430f6126",2,8 },
|
|
53 { "cc430f6127",2,8 },
|
|
54 { "cc430f6135",2,8 },
|
|
55 { "cc430f6137",2,8 },
|
|
56 { "cc430f6143",2,8 },
|
|
57 { "cc430f6145",2,8 },
|
|
58 { "cc430f6147",2,8 },
|
|
59 { "msp430afe221",0,2 },
|
|
60 { "msp430afe222",0,2 },
|
|
61 { "msp430afe223",0,2 },
|
|
62 { "msp430afe231",0,2 },
|
|
63 { "msp430afe232",0,2 },
|
|
64 { "msp430afe233",0,2 },
|
|
65 { "msp430afe251",0,2 },
|
|
66 { "msp430afe252",0,2 },
|
|
67 { "msp430afe253",0,2 },
|
|
68 { "msp430bt5190",2,8 },
|
|
69 { "msp430c091",0,0 },
|
|
70 { "msp430c092",0,0 },
|
|
71 { "msp430c111",0,0 },
|
|
72 { "msp430c1111",0,0 },
|
|
73 { "msp430c112",0,0 },
|
|
74 { "msp430c1121",0,0 },
|
|
75 { "msp430c1331",0,0 },
|
|
76 { "msp430c1351",0,0 },
|
|
77 { "msp430c311s",0,0 },
|
|
78 { "msp430c312",0,0 },
|
|
79 { "msp430c313",0,0 },
|
|
80 { "msp430c314",0,0 },
|
|
81 { "msp430c315",0,0 },
|
|
82 { "msp430c323",0,0 },
|
|
83 { "msp430c325",0,0 },
|
|
84 { "msp430c336",0,1 },
|
|
85 { "msp430c337",0,1 },
|
|
86 { "msp430c412",0,0 },
|
|
87 { "msp430c413",0,0 },
|
|
88 { "msp430cg4616",1,1 },
|
|
89 { "msp430cg4617",1,1 },
|
|
90 { "msp430cg4618",1,1 },
|
|
91 { "msp430cg4619",1,1 },
|
|
92 { "msp430e112",0,0 },
|
|
93 { "msp430e313",0,0 },
|
|
94 { "msp430e315",0,0 },
|
|
95 { "msp430e325",0,0 },
|
|
96 { "msp430e337",0,1 },
|
|
97 { "msp430f110",0,0 },
|
|
98 { "msp430f1101",0,0 },
|
|
99 { "msp430f1101a",0,0 },
|
|
100 { "msp430f1111",0,0 },
|
|
101 { "msp430f1111a",0,0 },
|
|
102 { "msp430f112",0,0 },
|
|
103 { "msp430f1121",0,0 },
|
|
104 { "msp430f1121a",0,0 },
|
|
105 { "msp430f1122",0,0 },
|
|
106 { "msp430f1132",0,0 },
|
|
107 { "msp430f122",0,0 },
|
|
108 { "msp430f1222",0,0 },
|
|
109 { "msp430f123",0,0 },
|
|
110 { "msp430f1232",0,0 },
|
|
111 { "msp430f133",0,0 },
|
|
112 { "msp430f135",0,0 },
|
|
113 { "msp430f147",0,1 },
|
|
114 { "msp430f1471",0,1 },
|
|
115 { "msp430f148",0,1 },
|
|
116 { "msp430f1481",0,1 },
|
|
117 { "msp430f149",0,1 },
|
|
118 { "msp430f1491",0,1 },
|
|
119 { "msp430f155",0,0 },
|
|
120 { "msp430f156",0,0 },
|
|
121 { "msp430f157",0,0 },
|
|
122 { "msp430f1610",0,1 },
|
|
123 { "msp430f1611",0,1 },
|
|
124 { "msp430f1612",0,1 },
|
|
125 { "msp430f167",0,1 },
|
|
126 { "msp430f168",0,1 },
|
|
127 { "msp430f169",0,1 },
|
|
128 { "msp430f2001",0,0 },
|
|
129 { "msp430f2002",0,0 },
|
|
130 { "msp430f2003",0,0 },
|
|
131 { "msp430f2011",0,0 },
|
|
132 { "msp430f2012",0,0 },
|
|
133 { "msp430f2013",0,0 },
|
|
134 { "msp430f2101",0,0 },
|
|
135 { "msp430f2111",0,0 },
|
|
136 { "msp430f2112",0,0 },
|
|
137 { "msp430f2121",0,0 },
|
|
138 { "msp430f2122",0,0 },
|
|
139 { "msp430f2131",0,0 },
|
|
140 { "msp430f2132",0,0 },
|
|
141 { "msp430f2232",0,0 },
|
|
142 { "msp430f2234",0,0 },
|
|
143 { "msp430f2252",0,0 },
|
|
144 { "msp430f2254",0,0 },
|
|
145 { "msp430f2272",0,0 },
|
|
146 { "msp430f2274",0,0 },
|
|
147 { "msp430f233",0,2 },
|
|
148 { "msp430f2330",0,2 },
|
|
149 { "msp430f235",0,2 },
|
|
150 { "msp430f2350",0,2 },
|
|
151 { "msp430f2370",0,2 },
|
|
152 { "msp430f2410",0,2 },
|
|
153 { "msp430f2416",1,2 },
|
|
154 { "msp430f2417",1,2 },
|
|
155 { "msp430f2418",1,2 },
|
|
156 { "msp430f2419",1,2 },
|
|
157 { "msp430f247",0,2 },
|
|
158 { "msp430f2471",0,2 },
|
|
159 { "msp430f248",0,2 },
|
|
160 { "msp430f2481",0,2 },
|
|
161 { "msp430f249",0,2 },
|
|
162 { "msp430f2491",0,2 },
|
|
163 { "msp430f2616",1,2 },
|
|
164 { "msp430f2617",1,2 },
|
|
165 { "msp430f2618",1,2 },
|
|
166 { "msp430f2619",1,2 },
|
|
167 { "msp430f412",0,0 },
|
|
168 { "msp430f413",0,0 },
|
|
169 { "msp430f4132",0,0 },
|
|
170 { "msp430f415",0,0 },
|
|
171 { "msp430f4152",0,0 },
|
|
172 { "msp430f417",0,0 },
|
|
173 { "msp430f423",0,1 },
|
|
174 { "msp430f423a",0,1 },
|
|
175 { "msp430f425",0,1 },
|
|
176 { "msp430f4250",0,0 },
|
|
177 { "msp430f425a",0,1 },
|
|
178 { "msp430f4260",0,0 },
|
|
179 { "msp430f427",0,1 },
|
|
180 { "msp430f4270",0,0 },
|
|
181 { "msp430f427a",0,1 },
|
|
182 { "msp430f435",0,0 },
|
|
183 { "msp430f4351",0,0 },
|
|
184 { "msp430f436",0,0 },
|
|
185 { "msp430f4361",0,0 },
|
|
186 { "msp430f437",0,0 },
|
|
187 { "msp430f4371",0,0 },
|
|
188 { "msp430f438",0,0 },
|
|
189 { "msp430f439",0,0 },
|
|
190 { "msp430f447",0,1 },
|
|
191 { "msp430f448",0,1 },
|
|
192 { "msp430f4481",0,1 },
|
|
193 { "msp430f449",0,1 },
|
|
194 { "msp430f4491",0,1 },
|
|
195 { "msp430f4616",1,1 },
|
|
196 { "msp430f46161",1,1 },
|
|
197 { "msp430f4617",1,1 },
|
|
198 { "msp430f46171",1,1 },
|
|
199 { "msp430f4618",1,1 },
|
|
200 { "msp430f46181",1,1 },
|
|
201 { "msp430f4619",1,1 },
|
|
202 { "msp430f46191",1,1 },
|
|
203 { "msp430f47126",1,4 },
|
|
204 { "msp430f47127",1,4 },
|
|
205 { "msp430f47163",1,4 },
|
|
206 { "msp430f47166",1,4 },
|
|
207 { "msp430f47167",1,4 },
|
|
208 { "msp430f47173",1,4 },
|
|
209 { "msp430f47176",1,4 },
|
|
210 { "msp430f47177",1,4 },
|
|
211 { "msp430f47183",1,4 },
|
|
212 { "msp430f47186",1,4 },
|
|
213 { "msp430f47187",1,4 },
|
|
214 { "msp430f47193",1,4 },
|
|
215 { "msp430f47196",1,4 },
|
|
216 { "msp430f47197",1,4 },
|
|
217 { "msp430f477",0,0 },
|
|
218 { "msp430f478",0,0 },
|
|
219 { "msp430f4783",0,4 },
|
|
220 { "msp430f4784",0,4 },
|
|
221 { "msp430f479",0,0 },
|
|
222 { "msp430f4793",0,4 },
|
|
223 { "msp430f4794",0,4 },
|
|
224 { "msp430f5131",2,8 },
|
|
225 { "msp430f5132",2,8 },
|
|
226 { "msp430f5151",2,8 },
|
|
227 { "msp430f5152",2,8 },
|
|
228 { "msp430f5171",2,8 },
|
|
229 { "msp430f5172",2,8 },
|
|
230 { "msp430f5212",2,8 },
|
|
231 { "msp430f5213",2,8 },
|
|
232 { "msp430f5214",2,8 },
|
|
233 { "msp430f5217",2,8 },
|
|
234 { "msp430f5218",2,8 },
|
|
235 { "msp430f5219",2,8 },
|
|
236 { "msp430f5222",2,8 },
|
|
237 { "msp430f5223",2,8 },
|
|
238 { "msp430f5224",2,8 },
|
|
239 { "msp430f5227",2,8 },
|
|
240 { "msp430f5228",2,8 },
|
|
241 { "msp430f5229",2,8 },
|
|
242 { "msp430f5232",2,8 },
|
|
243 { "msp430f5234",2,8 },
|
|
244 { "msp430f5237",2,8 },
|
|
245 { "msp430f5239",2,8 },
|
|
246 { "msp430f5242",2,8 },
|
|
247 { "msp430f5244",2,8 },
|
|
248 { "msp430f5247",2,8 },
|
|
249 { "msp430f5249",2,8 },
|
|
250 { "msp430f5252",2,8 },
|
|
251 { "msp430f5253",2,8 },
|
|
252 { "msp430f5254",2,8 },
|
|
253 { "msp430f5255",2,8 },
|
|
254 { "msp430f5256",2,8 },
|
|
255 { "msp430f5257",2,8 },
|
|
256 { "msp430f5258",2,8 },
|
|
257 { "msp430f5259",2,8 },
|
|
258 { "msp430f5304",2,8 },
|
|
259 { "msp430f5308",2,8 },
|
|
260 { "msp430f5309",2,8 },
|
|
261 { "msp430f5310",2,8 },
|
|
262 { "msp430f5324",2,8 },
|
|
263 { "msp430f5325",2,8 },
|
|
264 { "msp430f5326",2,8 },
|
|
265 { "msp430f5327",2,8 },
|
|
266 { "msp430f5328",2,8 },
|
|
267 { "msp430f5329",2,8 },
|
|
268 { "msp430f5333",2,8 },
|
|
269 { "msp430f5335",2,8 },
|
|
270 { "msp430f5336",2,8 },
|
|
271 { "msp430f5338",2,8 },
|
|
272 { "msp430f5340",2,8 },
|
|
273 { "msp430f5341",2,8 },
|
|
274 { "msp430f5342",2,8 },
|
|
275 { "msp430f5358",2,8 },
|
|
276 { "msp430f5359",2,8 },
|
|
277 { "msp430f5418",2,8 },
|
|
278 { "msp430f5418a",2,8 },
|
|
279 { "msp430f5419",2,8 },
|
|
280 { "msp430f5419a",2,8 },
|
|
281 { "msp430f5435",2,8 },
|
|
282 { "msp430f5435a",2,8 },
|
|
283 { "msp430f5436",2,8 },
|
|
284 { "msp430f5436a",2,8 },
|
|
285 { "msp430f5437",2,8 },
|
|
286 { "msp430f5437a",2,8 },
|
|
287 { "msp430f5438",2,8 },
|
|
288 { "msp430f5438a",2,8 },
|
|
289 { "msp430f5500",2,8 },
|
|
290 { "msp430f5501",2,8 },
|
|
291 { "msp430f5502",2,8 },
|
|
292 { "msp430f5503",2,8 },
|
|
293 { "msp430f5504",2,8 },
|
|
294 { "msp430f5505",2,8 },
|
|
295 { "msp430f5506",2,8 },
|
|
296 { "msp430f5507",2,8 },
|
|
297 { "msp430f5508",2,8 },
|
|
298 { "msp430f5509",2,8 },
|
|
299 { "msp430f5510",2,8 },
|
|
300 { "msp430f5513",2,8 },
|
|
301 { "msp430f5514",2,8 },
|
|
302 { "msp430f5515",2,8 },
|
|
303 { "msp430f5517",2,8 },
|
|
304 { "msp430f5519",2,8 },
|
|
305 { "msp430f5521",2,8 },
|
|
306 { "msp430f5522",2,8 },
|
|
307 { "msp430f5524",2,8 },
|
|
308 { "msp430f5525",2,8 },
|
|
309 { "msp430f5526",2,8 },
|
|
310 { "msp430f5527",2,8 },
|
|
311 { "msp430f5528",2,8 },
|
|
312 { "msp430f5529",2,8 },
|
|
313 { "msp430f5630",2,8 },
|
|
314 { "msp430f5631",2,8 },
|
|
315 { "msp430f5632",2,8 },
|
|
316 { "msp430f5633",2,8 },
|
|
317 { "msp430f5634",2,8 },
|
|
318 { "msp430f5635",2,8 },
|
|
319 { "msp430f5636",2,8 },
|
|
320 { "msp430f5637",2,8 },
|
|
321 { "msp430f5638",2,8 },
|
|
322 { "msp430f5658",2,8 },
|
|
323 { "msp430f5659",2,8 },
|
|
324 { "msp430f5xx_6xxgeneric",2,8 },
|
|
325 { "msp430f6433",2,8 },
|
|
326 { "msp430f6435",2,8 },
|
|
327 { "msp430f6436",2,8 },
|
|
328 { "msp430f6438",2,8 },
|
|
329 { "msp430f6458",2,8 },
|
|
330 { "msp430f6459",2,8 },
|
|
331 { "msp430f6630",2,8 },
|
|
332 { "msp430f6631",2,8 },
|
|
333 { "msp430f6632",2,8 },
|
|
334 { "msp430f6633",2,8 },
|
|
335 { "msp430f6634",2,8 },
|
|
336 { "msp430f6635",2,8 },
|
|
337 { "msp430f6636",2,8 },
|
|
338 { "msp430f6637",2,8 },
|
|
339 { "msp430f6638",2,8 },
|
|
340 { "msp430f6658",2,8 },
|
|
341 { "msp430f6659",2,8 },
|
|
342 { "msp430f6720",2,8 },
|
|
343 { "msp430f6720a",2,8 },
|
|
344 { "msp430f6721",2,8 },
|
|
345 { "msp430f6721a",2,8 },
|
|
346 { "msp430f6723",2,8 },
|
|
347 { "msp430f6723a",2,8 },
|
|
348 { "msp430f6724",2,8 },
|
|
349 { "msp430f6724a",2,8 },
|
|
350 { "msp430f6725",2,8 },
|
|
351 { "msp430f6725a",2,8 },
|
|
352 { "msp430f6726",2,8 },
|
|
353 { "msp430f6726a",2,8 },
|
|
354 { "msp430f6730",2,8 },
|
|
355 { "msp430f6730a",2,8 },
|
|
356 { "msp430f6731",2,8 },
|
|
357 { "msp430f6731a",2,8 },
|
|
358 { "msp430f6733",2,8 },
|
|
359 { "msp430f6733a",2,8 },
|
|
360 { "msp430f6734",2,8 },
|
|
361 { "msp430f6734a",2,8 },
|
|
362 { "msp430f6735",2,8 },
|
|
363 { "msp430f6735a",2,8 },
|
|
364 { "msp430f6736",2,8 },
|
|
365 { "msp430f6736a",2,8 },
|
|
366 { "msp430f6745",2,8 },
|
|
367 { "msp430f67451",2,8 },
|
|
368 { "msp430f67451a",2,8 },
|
|
369 { "msp430f6745a",2,8 },
|
|
370 { "msp430f6746",2,8 },
|
|
371 { "msp430f67461",2,8 },
|
|
372 { "msp430f67461a",2,8 },
|
|
373 { "msp430f6746a",2,8 },
|
|
374 { "msp430f6747",2,8 },
|
|
375 { "msp430f67471",2,8 },
|
|
376 { "msp430f67471a",2,8 },
|
|
377 { "msp430f6747a",2,8 },
|
|
378 { "msp430f6748",2,8 },
|
|
379 { "msp430f67481",2,8 },
|
|
380 { "msp430f67481a",2,8 },
|
|
381 { "msp430f6748a",2,8 },
|
|
382 { "msp430f6749",2,8 },
|
|
383 { "msp430f67491",2,8 },
|
|
384 { "msp430f67491a",2,8 },
|
|
385 { "msp430f6749a",2,8 },
|
|
386 { "msp430f67621",2,8 },
|
|
387 { "msp430f67621a",2,8 },
|
|
388 { "msp430f67641",2,8 },
|
|
389 { "msp430f67641a",2,8 },
|
|
390 { "msp430f6765",2,8 },
|
|
391 { "msp430f67651",2,8 },
|
|
392 { "msp430f67651a",2,8 },
|
|
393 { "msp430f6765a",2,8 },
|
|
394 { "msp430f6766",2,8 },
|
|
395 { "msp430f67661",2,8 },
|
|
396 { "msp430f67661a",2,8 },
|
|
397 { "msp430f6766a",2,8 },
|
|
398 { "msp430f6767",2,8 },
|
|
399 { "msp430f67671",2,8 },
|
|
400 { "msp430f67671a",2,8 },
|
|
401 { "msp430f6767a",2,8 },
|
|
402 { "msp430f6768",2,8 },
|
|
403 { "msp430f67681",2,8 },
|
|
404 { "msp430f67681a",2,8 },
|
|
405 { "msp430f6768a",2,8 },
|
|
406 { "msp430f6769",2,8 },
|
|
407 { "msp430f67691",2,8 },
|
|
408 { "msp430f67691a",2,8 },
|
|
409 { "msp430f6769a",2,8 },
|
|
410 { "msp430f6775",2,8 },
|
|
411 { "msp430f67751",2,8 },
|
|
412 { "msp430f67751a",2,8 },
|
|
413 { "msp430f6775a",2,8 },
|
|
414 { "msp430f6776",2,8 },
|
|
415 { "msp430f67761",2,8 },
|
|
416 { "msp430f67761a",2,8 },
|
|
417 { "msp430f6776a",2,8 },
|
|
418 { "msp430f6777",2,8 },
|
|
419 { "msp430f67771",2,8 },
|
|
420 { "msp430f67771a",2,8 },
|
|
421 { "msp430f6777a",2,8 },
|
|
422 { "msp430f6778",2,8 },
|
|
423 { "msp430f67781",2,8 },
|
|
424 { "msp430f67781a",2,8 },
|
|
425 { "msp430f6778a",2,8 },
|
|
426 { "msp430f6779",2,8 },
|
|
427 { "msp430f67791",2,8 },
|
|
428 { "msp430f67791a",2,8 },
|
|
429 { "msp430f6779a",2,8 },
|
|
430 { "msp430fe423",0,0 },
|
|
431 { "msp430fe4232",0,0 },
|
|
432 { "msp430fe423a",0,0 },
|
|
433 { "msp430fe4242",0,0 },
|
|
434 { "msp430fe425",0,0 },
|
|
435 { "msp430fe4252",0,0 },
|
|
436 { "msp430fe425a",0,0 },
|
|
437 { "msp430fe427",0,0 },
|
|
438 { "msp430fe4272",0,0 },
|
|
439 { "msp430fe427a",0,0 },
|
|
440 { "msp430fg4250",0,0 },
|
|
441 { "msp430fg4260",0,0 },
|
|
442 { "msp430fg4270",0,0 },
|
|
443 { "msp430fg437",0,0 },
|
|
444 { "msp430fg438",0,0 },
|
|
445 { "msp430fg439",0,0 },
|
|
446 { "msp430fg4616",1,1 },
|
|
447 { "msp430fg4617",1,1 },
|
|
448 { "msp430fg4618",1,1 },
|
|
449 { "msp430fg4619",1,1 },
|
|
450 { "msp430fg477",0,0 },
|
|
451 { "msp430fg478",0,0 },
|
|
452 { "msp430fg479",0,0 },
|
|
453 { "msp430fg6425",2,8 },
|
|
454 { "msp430fg6426",2,8 },
|
|
455 { "msp430fg6625",2,8 },
|
|
456 { "msp430fg6626",2,8 },
|
|
457 { "msp430fr2032",2,0 },
|
|
458 { "msp430fr2033",2,0 },
|
|
459 { "msp430fr2110",2,0 },
|
|
460 { "msp430fr2111",2,0 },
|
|
461 { "msp430fr2310",2,0 },
|
|
462 { "msp430fr2311",2,0 },
|
|
463 { "msp430fr2433",2,8 },
|
|
464 { "msp430fr2532",2,8 },
|
|
465 { "msp430fr2533",2,8 },
|
|
466 { "msp430fr2632",2,8 },
|
|
467 { "msp430fr2633",2,8 },
|
|
468 { "msp430fr2xx_4xxgeneric",2,8 },
|
|
469 { "msp430fr4131",2,0 },
|
|
470 { "msp430fr4132",2,0 },
|
|
471 { "msp430fr4133",2,0 },
|
|
472 { "msp430fr5720",2,8 },
|
|
473 { "msp430fr5721",2,8 },
|
|
474 { "msp430fr5722",2,8 },
|
|
475 { "msp430fr5723",2,8 },
|
|
476 { "msp430fr5724",2,8 },
|
|
477 { "msp430fr5725",2,8 },
|
|
478 { "msp430fr5726",2,8 },
|
|
479 { "msp430fr5727",2,8 },
|
|
480 { "msp430fr5728",2,8 },
|
|
481 { "msp430fr5729",2,8 },
|
|
482 { "msp430fr5730",2,8 },
|
|
483 { "msp430fr5731",2,8 },
|
|
484 { "msp430fr5732",2,8 },
|
|
485 { "msp430fr5733",2,8 },
|
|
486 { "msp430fr5734",2,8 },
|
|
487 { "msp430fr5735",2,8 },
|
|
488 { "msp430fr5736",2,8 },
|
|
489 { "msp430fr5737",2,8 },
|
|
490 { "msp430fr5738",2,8 },
|
|
491 { "msp430fr5739",2,8 },
|
|
492 { "msp430fr57xxgeneric",2,8 },
|
|
493 { "msp430fr5847",2,8 },
|
|
494 { "msp430fr58471",2,8 },
|
|
495 { "msp430fr5848",2,8 },
|
|
496 { "msp430fr5849",2,8 },
|
|
497 { "msp430fr5857",2,8 },
|
|
498 { "msp430fr5858",2,8 },
|
|
499 { "msp430fr5859",2,8 },
|
|
500 { "msp430fr5867",2,8 },
|
|
501 { "msp430fr58671",2,8 },
|
|
502 { "msp430fr5868",2,8 },
|
|
503 { "msp430fr5869",2,8 },
|
|
504 { "msp430fr5870",2,8 },
|
|
505 { "msp430fr5872",2,8 },
|
|
506 { "msp430fr58721",2,8 },
|
|
507 { "msp430fr5887",2,8 },
|
|
508 { "msp430fr5888",2,8 },
|
|
509 { "msp430fr5889",2,8 },
|
|
510 { "msp430fr58891",2,8 },
|
|
511 { "msp430fr5922",2,8 },
|
|
512 { "msp430fr59221",2,8 },
|
|
513 { "msp430fr5947",2,8 },
|
|
514 { "msp430fr59471",2,8 },
|
|
515 { "msp430fr5948",2,8 },
|
|
516 { "msp430fr5949",2,8 },
|
|
517 { "msp430fr5957",2,8 },
|
|
518 { "msp430fr5958",2,8 },
|
|
519 { "msp430fr5959",2,8 },
|
|
520 { "msp430fr5962",2,8 },
|
|
521 { "msp430fr5964",2,8 },
|
|
522 { "msp430fr5967",2,8 },
|
|
523 { "msp430fr5968",2,8 },
|
|
524 { "msp430fr5969",2,8 },
|
|
525 { "msp430fr59691",2,8 },
|
|
526 { "msp430fr5970",2,8 },
|
|
527 { "msp430fr5972",2,8 },
|
|
528 { "msp430fr59721",2,8 },
|
|
529 { "msp430fr5986",2,8 },
|
|
530 { "msp430fr5987",2,8 },
|
|
531 { "msp430fr5988",2,8 },
|
|
532 { "msp430fr5989",2,8 },
|
|
533 { "msp430fr59891",2,8 },
|
|
534 { "msp430fr5992",2,8 },
|
|
535 { "msp430fr5994",2,8 },
|
|
536 { "msp430fr59941",2,8 },
|
|
537 { "msp430fr5xx_6xxgeneric",2,8 },
|
|
538 { "msp430fr6820",2,8 },
|
|
539 { "msp430fr6822",2,8 },
|
|
540 { "msp430fr68221",2,8 },
|
|
541 { "msp430fr6870",2,8 },
|
|
542 { "msp430fr6872",2,8 },
|
|
543 { "msp430fr68721",2,8 },
|
|
544 { "msp430fr6877",2,8 },
|
|
545 { "msp430fr6879",2,8 },
|
|
546 { "msp430fr68791",2,8 },
|
|
547 { "msp430fr6887",2,8 },
|
|
548 { "msp430fr6888",2,8 },
|
|
549 { "msp430fr6889",2,8 },
|
|
550 { "msp430fr68891",2,8 },
|
|
551 { "msp430fr6920",2,8 },
|
|
552 { "msp430fr6922",2,8 },
|
|
553 { "msp430fr69221",2,8 },
|
|
554 { "msp430fr6927",2,8 },
|
|
555 { "msp430fr69271",2,8 },
|
|
556 { "msp430fr6928",2,8 },
|
|
557 { "msp430fr6970",2,8 },
|
|
558 { "msp430fr6972",2,8 },
|
|
559 { "msp430fr69721",2,8 },
|
|
560 { "msp430fr6977",2,8 },
|
|
561 { "msp430fr6979",2,8 },
|
|
562 { "msp430fr69791",2,8 },
|
|
563 { "msp430fr6987",2,8 },
|
|
564 { "msp430fr6988",2,8 },
|
|
565 { "msp430fr6989",2,8 },
|
|
566 { "msp430fr69891",2,8 },
|
|
567 { "msp430fw423",0,0 },
|
|
568 { "msp430fw425",0,0 },
|
|
569 { "msp430fw427",0,0 },
|
|
570 { "msp430fw428",0,0 },
|
|
571 { "msp430fw429",0,0 },
|
|
572 { "msp430g2001",0,0 },
|
|
573 { "msp430g2101",0,0 },
|
|
574 { "msp430g2102",0,0 },
|
|
575 { "msp430g2111",0,0 },
|
|
576 { "msp430g2112",0,0 },
|
|
577 { "msp430g2113",0,0 },
|
|
578 { "msp430g2121",0,0 },
|
|
579 { "msp430g2131",0,0 },
|
|
580 { "msp430g2132",0,0 },
|
|
581 { "msp430g2152",0,0 },
|
|
582 { "msp430g2153",0,0 },
|
|
583 { "msp430g2201",0,0 },
|
|
584 { "msp430g2202",0,0 },
|
|
585 { "msp430g2203",0,0 },
|
|
586 { "msp430g2210",0,0 },
|
|
587 { "msp430g2211",0,0 },
|
|
588 { "msp430g2212",0,0 },
|
|
589 { "msp430g2213",0,0 },
|
|
590 { "msp430g2221",0,0 },
|
|
591 { "msp430g2230",0,0 },
|
|
592 { "msp430g2231",0,0 },
|
|
593 { "msp430g2232",0,0 },
|
|
594 { "msp430g2233",0,0 },
|
|
595 { "msp430g2252",0,0 },
|
|
596 { "msp430g2253",0,0 },
|
|
597 { "msp430g2302",0,0 },
|
|
598 { "msp430g2303",0,0 },
|
|
599 { "msp430g2312",0,0 },
|
|
600 { "msp430g2313",0,0 },
|
|
601 { "msp430g2332",0,0 },
|
|
602 { "msp430g2333",0,0 },
|
|
603 { "msp430g2352",0,0 },
|
|
604 { "msp430g2353",0,0 },
|
|
605 { "msp430g2402",0,0 },
|
|
606 { "msp430g2403",0,0 },
|
|
607 { "msp430g2412",0,0 },
|
|
608 { "msp430g2413",0,0 },
|
|
609 { "msp430g2432",0,0 },
|
|
610 { "msp430g2433",0,0 },
|
|
611 { "msp430g2444",0,0 },
|
|
612 { "msp430g2452",0,0 },
|
|
613 { "msp430g2453",0,0 },
|
|
614 { "msp430g2513",0,0 },
|
|
615 { "msp430g2533",0,0 },
|
|
616 { "msp430g2544",0,0 },
|
|
617 { "msp430g2553",0,0 },
|
|
618 { "msp430g2744",0,0 },
|
|
619 { "msp430g2755",0,0 },
|
|
620 { "msp430g2855",0,0 },
|
|
621 { "msp430g2955",0,0 },
|
|
622 { "msp430i2020",0,2 },
|
|
623 { "msp430i2021",0,2 },
|
|
624 { "msp430i2030",0,2 },
|
|
625 { "msp430i2031",0,2 },
|
|
626 { "msp430i2040",0,2 },
|
|
627 { "msp430i2041",0,2 },
|
|
628 { "msp430i2xxgeneric",0,2 },
|
|
629 { "msp430l092",0,0 },
|
|
630 { "msp430p112",0,0 },
|
|
631 { "msp430p313",0,0 },
|
|
632 { "msp430p315",0,0 },
|
|
633 { "msp430p315s",0,0 },
|
|
634 { "msp430p325",0,0 },
|
|
635 { "msp430p337",0,1 },
|
|
636 { "msp430sl5438a",2,8 },
|
|
637 { "msp430tch5e",0,0 },
|
|
638 { "msp430xgeneric",2,8 },
|
|
639 { "rf430f5144",2,8 },
|
|
640 { "rf430f5155",2,8 },
|
|
641 { "rf430f5175",2,8 },
|
|
642 { "rf430frl152h",0,0 },
|
|
643 { "rf430frl152h_rom",0,0 },
|
|
644 { "rf430frl153h",0,0 },
|
|
645 { "rf430frl153h_rom",0,0 },
|
|
646 { "rf430frl154h",0,0 },
|
|
647 { "rf430frl154h_rom",0,0 }
|
|
648 };
|
|
649
|
|
650 /* Implement spec function `msp430_hwmult_libĀ“. */
|
|
651
|
|
652 const char *
|
|
653 msp430_select_hwmult_lib (int argc ATTRIBUTE_UNUSED, const char ** argv ATTRIBUTE_UNUSED)
|
|
654 {
|
|
655 int i;
|
|
656
|
|
657 switch (argc)
|
|
658 {
|
|
659 case 1:
|
|
660 if (strcasecmp (argv[0], "default"))
|
|
661 error ("unexpected argument to msp430_select_hwmult_lib: %s", argv[0]);
|
|
662 break;
|
|
663
|
|
664 default:
|
|
665 /* We can get three or more arguments passed to this function.
|
|
666 This happens when the same option is repeated on the command line.
|
|
667 For example:
|
|
668 msp430-elf-gcc -mhwmult=none -mhwmult=16bit foo.c
|
|
669 We have to use the last argument as our selector. */
|
|
670 if (strcasecmp (argv[0], "hwmult") == 0)
|
|
671 {
|
|
672 static struct hwmult_options
|
|
673 {
|
|
674 const char * name;
|
|
675 const char * lib;
|
|
676 } hwmult_options [] =
|
|
677 {
|
|
678 { "none", "-lmul_none" },
|
|
679 { "auto", "-lmul_AUTO" }, /* Should not see this one... */
|
|
680 { "16bit", "-lmul_16" },
|
|
681 { "32bit", "-lmul_32" },
|
|
682 { "f5series", "-lmul_f5" }
|
|
683 };
|
|
684
|
|
685 for (i = ARRAY_SIZE (hwmult_options); i--;)
|
|
686 if (strcasecmp (argv[argc - 1], hwmult_options[i].name) == 0)
|
|
687 return hwmult_options[i].lib;
|
|
688 }
|
|
689 else if (strcasecmp (argv[0], "mcu") == 0)
|
|
690 {
|
|
691 for (i = ARRAY_SIZE (msp430_mcu_data); i--;)
|
|
692 if (strcasecmp (argv[argc - 1], msp430_mcu_data[i].name) == 0)
|
|
693 {
|
|
694 switch (msp430_mcu_data[i].hwmpy)
|
|
695 {
|
|
696 case 0: return "-lmul_none";
|
|
697 case 2:
|
|
698 case 1: return "-lmul_16";
|
|
699 case 4: return "-lmul_32";
|
|
700 case 8: return "-lmul_f5";
|
|
701 default:
|
|
702 error ("unrecognized hwpy field in msp430_mcu_data[%d]: %d",
|
|
703 i, msp430_mcu_data[i].hwmpy);
|
|
704 break;
|
|
705 }
|
|
706 }
|
|
707 }
|
|
708 else
|
|
709 error ("unexpected first argument to msp430_select_hwmult_lib: %s", argv[0]);
|
|
710 break;
|
|
711
|
|
712 case 0:
|
|
713 error ("msp430_select_hwmult_lib needs one or more arguments");
|
|
714 break;
|
|
715 }
|
|
716
|
|
717 return "-lmul_none";
|
|
718 }
|