avr.c (avr_arch_types): Rearranging array.

* config/avr/avr.c (avr_arch_types): Rearranging  array.
	(enum avr_arch): Add.
	(avr_mcu_types): Use avr_arch enumeration constants instead of 
	numbers.
	* config/avr/avr.h (LINK_SPEC): Simplify.

From-SVN: r123882
This commit is contained in:
Anatoly Sokolov 2007-04-16 21:50:26 +04:00 committed by Anatoly Sokolov
parent f8b45d4f54
commit 1468317475
3 changed files with 119 additions and 103 deletions

View File

@ -1,3 +1,11 @@
2007-04-16 Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.c (avr_arch_types): Rearranging array.
(enum avr_arch): Add.
(avr_mcu_types): Use avr_arch enumeration constants instead of
numbers.
* config/avr/avr.h (LINK_SPEC): Simplify.
2007-04-16 Kazu Hirata <kazu@codesourcery.com>
* config/m68k/m68k.c (m68k_libcall_value,

View File

@ -141,10 +141,24 @@ static const struct base_arch_s avr_arch_types[] = {
{ 1, 0, 0, 0, NULL }, /* unknown device specified */
{ 1, 0, 0, 0, "__AVR_ARCH__=1" },
{ 0, 0, 0, 0, "__AVR_ARCH__=2" },
{ 0, 0, 0, 1, "__AVR_ARCH__=25"},
{ 0, 0, 1, 0, "__AVR_ARCH__=3" },
{ 0, 1, 0, 1, "__AVR_ARCH__=4" },
{ 0, 1, 1, 1, "__AVR_ARCH__=5" },
{ 0, 0, 0, 1, "__AVR_ARCH__=25"}
{ 0, 1, 1, 1, "__AVR_ARCH__=5" }
};
/* These names are used as the index into the avr_arch_types[] table
above. */
enum avr_arch
{
ARCH_UNKNOWN,
ARCH_AVR1,
ARCH_AVR2,
ARCH_AVR25,
ARCH_AVR3,
ARCH_AVR4,
ARCH_AVR5
};
struct mcu_type_s {
@ -164,103 +178,103 @@ struct mcu_type_s {
static const struct mcu_type_s avr_mcu_types[] = {
/* Classic, <= 8K. */
{ "avr2", 2, NULL },
{ "at90s2313", 2, "__AVR_AT90S2313__" },
{ "at90s2323", 2, "__AVR_AT90S2323__" },
{ "at90s2333", 2, "__AVR_AT90S2333__" },
{ "at90s2343", 2, "__AVR_AT90S2343__" },
{ "attiny22", 2, "__AVR_ATtiny22__" },
{ "attiny26", 2, "__AVR_ATtiny26__" },
{ "at90s4414", 2, "__AVR_AT90S4414__" },
{ "at90s4433", 2, "__AVR_AT90S4433__" },
{ "at90s4434", 2, "__AVR_AT90S4434__" },
{ "at90s8515", 2, "__AVR_AT90S8515__" },
{ "at90c8534", 2, "__AVR_AT90C8534__" },
{ "at90s8535", 2, "__AVR_AT90S8535__" },
{ "avr2", ARCH_AVR2, NULL },
{ "at90s2313", ARCH_AVR2, "__AVR_AT90S2313__" },
{ "at90s2323", ARCH_AVR2, "__AVR_AT90S2323__" },
{ "at90s2333", ARCH_AVR2, "__AVR_AT90S2333__" },
{ "at90s2343", ARCH_AVR2, "__AVR_AT90S2343__" },
{ "attiny22", ARCH_AVR2, "__AVR_ATtiny22__" },
{ "attiny26", ARCH_AVR2, "__AVR_ATtiny26__" },
{ "at90s4414", ARCH_AVR2, "__AVR_AT90S4414__" },
{ "at90s4433", ARCH_AVR2, "__AVR_AT90S4433__" },
{ "at90s4434", ARCH_AVR2, "__AVR_AT90S4434__" },
{ "at90s8515", ARCH_AVR2, "__AVR_AT90S8515__" },
{ "at90c8534", ARCH_AVR2, "__AVR_AT90C8534__" },
{ "at90s8535", ARCH_AVR2, "__AVR_AT90S8535__" },
/* Classic + MOVW, <= 8K. */
{ "avr25", 6, NULL },
{ "attiny13", 6, "__AVR_ATtiny13__" },
{ "attiny2313", 6, "__AVR_ATtiny2313__" },
{ "attiny24", 6, "__AVR_ATtiny24__" },
{ "attiny44", 6, "__AVR_ATtiny44__" },
{ "attiny84", 6, "__AVR_ATtiny84__" },
{ "attiny25", 6, "__AVR_ATtiny25__" },
{ "attiny45", 6, "__AVR_ATtiny45__" },
{ "attiny85", 6, "__AVR_ATtiny85__" },
{ "attiny261", 6, "__AVR_ATtiny261__" },
{ "attiny461", 6, "__AVR_ATtiny461__" },
{ "attiny861", 6, "__AVR_ATtiny861__" },
{ "at86rf401", 6, "__AVR_AT86RF401__" },
{ "avr25", ARCH_AVR25, NULL },
{ "attiny13", ARCH_AVR25, "__AVR_ATtiny13__" },
{ "attiny2313", ARCH_AVR25, "__AVR_ATtiny2313__" },
{ "attiny24", ARCH_AVR25, "__AVR_ATtiny24__" },
{ "attiny44", ARCH_AVR25, "__AVR_ATtiny44__" },
{ "attiny84", ARCH_AVR25, "__AVR_ATtiny84__" },
{ "attiny25", ARCH_AVR25, "__AVR_ATtiny25__" },
{ "attiny45", ARCH_AVR25, "__AVR_ATtiny45__" },
{ "attiny85", ARCH_AVR25, "__AVR_ATtiny85__" },
{ "attiny261", ARCH_AVR25, "__AVR_ATtiny261__" },
{ "attiny461", ARCH_AVR25, "__AVR_ATtiny461__" },
{ "attiny861", ARCH_AVR25, "__AVR_ATtiny861__" },
{ "at86rf401", ARCH_AVR25, "__AVR_AT86RF401__" },
/* Classic, > 8K. */
{ "avr3", 3, NULL },
{ "atmega103", 3, "__AVR_ATmega103__" },
{ "atmega603", 3, "__AVR_ATmega603__" },
{ "at43usb320", 3, "__AVR_AT43USB320__" },
{ "at43usb355", 3, "__AVR_AT43USB355__" },
{ "at76c711", 3, "__AVR_AT76C711__" },
{ "avr3", ARCH_AVR3, NULL },
{ "atmega103", ARCH_AVR3, "__AVR_ATmega103__" },
{ "atmega603", ARCH_AVR3, "__AVR_ATmega603__" },
{ "at43usb320", ARCH_AVR3, "__AVR_AT43USB320__" },
{ "at43usb355", ARCH_AVR3, "__AVR_AT43USB355__" },
{ "at76c711", ARCH_AVR3, "__AVR_AT76C711__" },
/* Enhanced, <= 8K. */
{ "avr4", 4, NULL },
{ "atmega8", 4, "__AVR_ATmega8__" },
{ "atmega48", 4, "__AVR_ATmega48__" },
{ "atmega88", 4, "__AVR_ATmega88__" },
{ "atmega8515", 4, "__AVR_ATmega8515__" },
{ "atmega8535", 4, "__AVR_ATmega8535__" },
{ "at90pwm1", 4, "__AVR_AT90PWM1__" },
{ "at90pwm2", 4, "__AVR_AT90PWM2__" },
{ "at90pwm3", 4, "__AVR_AT90PWM3__" },
{ "at90usb82", 4, "__AVR_AT90USB82__" },
{ "avr4", ARCH_AVR4, NULL },
{ "atmega8", ARCH_AVR4, "__AVR_ATmega8__" },
{ "atmega48", ARCH_AVR4, "__AVR_ATmega48__" },
{ "atmega88", ARCH_AVR4, "__AVR_ATmega88__" },
{ "atmega8515", ARCH_AVR4, "__AVR_ATmega8515__" },
{ "atmega8535", ARCH_AVR4, "__AVR_ATmega8535__" },
{ "at90pwm1", ARCH_AVR4, "__AVR_AT90PWM1__" },
{ "at90pwm2", ARCH_AVR4, "__AVR_AT90PWM2__" },
{ "at90pwm3", ARCH_AVR4, "__AVR_AT90PWM3__" },
{ "at90usb82", ARCH_AVR4, "__AVR_AT90USB82__" },
/* Enhanced, > 8K. */
{ "avr5", 5, NULL },
{ "atmega16", 5, "__AVR_ATmega16__" },
{ "atmega161", 5, "__AVR_ATmega161__" },
{ "atmega162", 5, "__AVR_ATmega162__" },
{ "atmega163", 5, "__AVR_ATmega163__" },
{ "atmega164p",5, "__AVR_ATmega164P__" },
{ "atmega165", 5, "__AVR_ATmega165__" },
{ "atmega165p",5, "__AVR_ATmega165P__" },
{ "atmega168", 5, "__AVR_ATmega168__" },
{ "atmega169", 5, "__AVR_ATmega169__" },
{ "atmega169p",5, "__AVR_ATmega169P__" },
{ "atmega32", 5, "__AVR_ATmega32__" },
{ "atmega323", 5, "__AVR_ATmega323__" },
{ "atmega324p",5, "__AVR_ATmega324P__" },
{ "atmega325", 5, "__AVR_ATmega325__" },
{ "atmega325p", 5, "__AVR_ATmega325P__" },
{ "atmega3250", 5, "__AVR_ATmega3250__" },
{ "atmega3250p", 5, "__AVR_ATmega3250P__" },
{ "atmega329", 5, "__AVR_ATmega329__" },
{ "atmega329p", 5, "__AVR_ATmega329P__" },
{ "atmega3290", 5, "__AVR_ATmega3290__" },
{ "atmega3290p", 5, "__AVR_ATmega3290P__" },
{ "atmega406", 5, "__AVR_ATmega406__" },
{ "atmega64", 5, "__AVR_ATmega64__" },
{ "atmega640", 5, "__AVR_ATmega640__" },
{ "atmega644", 5, "__AVR_ATmega644__" },
{ "atmega644p",5, "__AVR_ATmega644P__" },
{ "atmega645", 5, "__AVR_ATmega645__" },
{ "atmega6450", 5, "__AVR_ATmega6450__" },
{ "atmega649", 5, "__AVR_ATmega649__" },
{ "atmega6490", 5, "__AVR_ATmega6490__" },
{ "atmega128", 5, "__AVR_ATmega128__" },
{ "atmega1280",5, "__AVR_ATmega1280__" },
{ "atmega1281",5, "__AVR_ATmega1281__" },
{ "at90can32", 5, "__AVR_AT90CAN32__" },
{ "at90can64", 5, "__AVR_AT90CAN64__" },
{ "at90can128", 5, "__AVR_AT90CAN128__" },
{ "at90usb162", 5, "__AVR_AT90USB162__" },
{ "at90usb646", 5, "__AVR_AT90USB646__" },
{ "at90usb647", 5, "__AVR_AT90USB647__" },
{ "at90usb1286", 5, "__AVR_AT90USB1286__" },
{ "at90usb1287", 5, "__AVR_AT90USB1287__" },
{ "at94k", 5, "__AVR_AT94K__" },
{ "avr5", ARCH_AVR5, NULL },
{ "atmega16", ARCH_AVR5, "__AVR_ATmega16__" },
{ "atmega161", ARCH_AVR5, "__AVR_ATmega161__" },
{ "atmega162", ARCH_AVR5, "__AVR_ATmega162__" },
{ "atmega163", ARCH_AVR5, "__AVR_ATmega163__" },
{ "atmega164p", ARCH_AVR5, "__AVR_ATmega164P__" },
{ "atmega165", ARCH_AVR5, "__AVR_ATmega165__" },
{ "atmega165p", ARCH_AVR5, "__AVR_ATmega165P__" },
{ "atmega168", ARCH_AVR5, "__AVR_ATmega168__" },
{ "atmega169", ARCH_AVR5, "__AVR_ATmega169__" },
{ "atmega169p", ARCH_AVR5, "__AVR_ATmega169P__" },
{ "atmega32", ARCH_AVR5, "__AVR_ATmega32__" },
{ "atmega323", ARCH_AVR5, "__AVR_ATmega323__" },
{ "atmega324p", ARCH_AVR5, "__AVR_ATmega324P__" },
{ "atmega325", ARCH_AVR5, "__AVR_ATmega325__" },
{ "atmega325p", ARCH_AVR5, "__AVR_ATmega325P__" },
{ "atmega3250", ARCH_AVR5, "__AVR_ATmega3250__" },
{ "atmega3250p", ARCH_AVR5, "__AVR_ATmega3250P__" },
{ "atmega329", ARCH_AVR5, "__AVR_ATmega329__" },
{ "atmega329p", ARCH_AVR5, "__AVR_ATmega329P__" },
{ "atmega3290", ARCH_AVR5, "__AVR_ATmega3290__" },
{ "atmega3290p", ARCH_AVR5, "__AVR_ATmega3290P__" },
{ "atmega406", ARCH_AVR5, "__AVR_ATmega406__" },
{ "atmega64", ARCH_AVR5, "__AVR_ATmega64__" },
{ "atmega640", ARCH_AVR5, "__AVR_ATmega640__" },
{ "atmega644", ARCH_AVR5, "__AVR_ATmega644__" },
{ "atmega644p", ARCH_AVR5, "__AVR_ATmega644P__" },
{ "atmega645", ARCH_AVR5, "__AVR_ATmega645__" },
{ "atmega6450", ARCH_AVR5, "__AVR_ATmega6450__" },
{ "atmega649", ARCH_AVR5, "__AVR_ATmega649__" },
{ "atmega6490", ARCH_AVR5, "__AVR_ATmega6490__" },
{ "atmega128", ARCH_AVR5, "__AVR_ATmega128__" },
{ "atmega1280", ARCH_AVR5, "__AVR_ATmega1280__" },
{ "atmega1281", ARCH_AVR5, "__AVR_ATmega1281__" },
{ "at90can32", ARCH_AVR5, "__AVR_AT90CAN32__" },
{ "at90can64", ARCH_AVR5, "__AVR_AT90CAN64__" },
{ "at90can128", ARCH_AVR5, "__AVR_AT90CAN128__" },
{ "at90usb162", ARCH_AVR5, "__AVR_AT90USB162__" },
{ "at90usb646", ARCH_AVR5, "__AVR_AT90USB646__" },
{ "at90usb647", ARCH_AVR5, "__AVR_AT90USB647__" },
{ "at90usb1286", ARCH_AVR5, "__AVR_AT90USB1286__" },
{ "at90usb1287", ARCH_AVR5, "__AVR_AT90USB1287__" },
{ "at94k", ARCH_AVR5, "__AVR_AT94K__" },
/* Assembler only. */
{ "avr1", 1, NULL },
{ "at90s1200", 1, "__AVR_AT90S1200__" },
{ "attiny11", 1, "__AVR_ATtiny11__" },
{ "attiny12", 1, "__AVR_ATtiny12__" },
{ "attiny15", 1, "__AVR_ATtiny15__" },
{ "attiny28", 1, "__AVR_ATtiny28__" },
{ NULL, 0, NULL }
{ "avr1", ARCH_AVR1, NULL },
{ "at90s1200", ARCH_AVR1, "__AVR_AT90S1200__" },
{ "attiny11", ARCH_AVR1, "__AVR_ATtiny11__" },
{ "attiny12", ARCH_AVR1, "__AVR_ATtiny12__" },
{ "attiny15", ARCH_AVR1, "__AVR_ATtiny15__" },
{ "attiny28", ARCH_AVR1, "__AVR_ATtiny28__" },
{ NULL, ARCH_UNKNOWN, NULL }
};
int avr_case_values_threshold = 30000;

View File

@ -757,9 +757,7 @@ mmcu=*:-mmcu=%*}"
mmcu=at76*:-m avr3}\
%{mmcu=atmega8*|\
mmcu=atmega48|\
mmcu=at90pwm1|\
mmcu=at90pwm2|\
mmcu=at90pwm3:-m avr4}\
mmcu=at90pwm*:-m avr4}\
%{mmcu=atmega16*|\
mmcu=atmega32*|\
mmcu=atmega406|\
@ -770,18 +768,14 @@ mmcu=*:-mmcu=%*}"
mmcu=at94k:-m avr5}\
%{mmcu=atmega324*|\
mmcu=atmega325*|\
mmcu=atmega3250*|\
mmcu=atmega329*|\
mmcu=atmega3290*|\
mmcu=atmega406|\
mmcu=atmega48|\
mmcu=atmega88|\
mmcu=atmega64|\
mmcu=atmega644*|\
mmcu=atmega645|\
mmcu=atmega6450|\
mmcu=atmega649|\
mmcu=atmega6490|\
mmcu=atmega645*|\
mmcu=atmega649*|\
mmcu=atmega128|\
mmcu=atmega162|\
mmcu=atmega164*|\