gcc_update (gcc/config/avr/avr-tables.opt): New dependencies.

contrib:
	* gcc_update (gcc/config/avr/avr-tables.opt): New dependencies.

gcc:
	* config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
	* config/avr/avr-tables.opt: New file (generated).
	* config.gcc (avr-*-*): Use avr/avr-tables.opt.
	* config/avr/avr-devices.c (avr_mcu_types): Move contents to
	avr-mcus.def.
	* config/avr/avr.c (avr_help, TARGET_HELP): Remove.
	(avr_option_override): Don't process -mmcu= argument here.  Set
	avr_current_device using avr_mcu_index.
	(avr_file_start): Use avr_current_device->name instead of
	avr_mcu_name.
	* config/avr/avr.opt (mmcu=): Use Enum.
	* config/avr/t-avr (avr-devices.o): Update dependencies.
	($(srcdir)/config/avr/avr-tables.opt): New.
	* target.def (help): Remove.
	* doc/tm.texi.in (TARGET_HELP): Remove.
	* doc/tm.texi: Regenerate.
	* opts.c: Don't include target.h.
	(common_handle_option): Don't call targetm.help.
	* system.h (TARGET_HELP): Poison.
	* Makefile.in (opts.o): Update dependencies.

From-SVN: r175248
This commit is contained in:
Joseph Myers 2011-06-21 11:22:19 +01:00 committed by Joseph Myers
parent fce37f711a
commit 1b916ca624
17 changed files with 839 additions and 269 deletions

View File

@ -1,3 +1,7 @@
2011-06-21 Joseph Myers <joseph@codesourcery.com>
* gcc_update (gcc/config/avr/avr-tables.opt): New dependencies.
2011-05-19 Joseph Myers <joseph@codesourcery.com> 2011-05-19 Joseph Myers <joseph@codesourcery.com>
* gcc_update (gcc/config/arm/arm-tables.opt): Also depend on * gcc_update (gcc/config/arm/arm-tables.opt): Also depend on

View File

@ -81,6 +81,7 @@ gcc/config.in: gcc/cstamp-h.in
gcc/fixinc/fixincl.x: gcc/fixinc/fixincl.tpl gcc/fixinc/inclhack.def gcc/fixinc/fixincl.x: gcc/fixinc/fixincl.tpl gcc/fixinc/inclhack.def
gcc/config/arm/arm-tune.md: gcc/config/arm/arm-cores.def gcc/config/arm/gentune.sh gcc/config/arm/arm-tune.md: gcc/config/arm/arm-cores.def gcc/config/arm/gentune.sh
gcc/config/arm/arm-tables.opt: gcc/config/arm/arm-arches.def gcc/config/arm/arm-cores.def gcc/config/arm/arm-fpus.def gcc/config/arm/genopt.sh gcc/config/arm/arm-tables.opt: gcc/config/arm/arm-arches.def gcc/config/arm/arm-cores.def gcc/config/arm/arm-fpus.def gcc/config/arm/genopt.sh
gcc/config/avr/avr-tables.opt: gcc/config/avr/avr-mcus.def gcc/config/avr/genopt.sh
gcc/config/m68k/m68k-tables.opt: gcc/config/m68k/m68k-devices.def gcc/config/m68k/m68k-isas.def gcc/config/m68k/m68k-microarchs.def gcc/config/m68k/genopt.sh gcc/config/m68k/m68k-tables.opt: gcc/config/m68k/m68k-devices.def gcc/config/m68k/m68k-isas.def gcc/config/m68k/m68k-microarchs.def gcc/config/m68k/genopt.sh
gcc/config/mips/mips-tables.opt: gcc/config/mips/mips-cpus.def gcc/config/mips/genopt.sh gcc/config/mips/mips-tables.opt: gcc/config/mips/mips-cpus.def gcc/config/mips/genopt.sh
gcc/config/rs6000/rs6000-tables.opt: gcc/config/rs6000/rs6000-cpus.def gcc/config/rs6000/genopt.sh gcc/config/rs6000/rs6000-tables.opt: gcc/config/rs6000/rs6000-cpus.def gcc/config/rs6000/genopt.sh

View File

@ -1,3 +1,26 @@
2011-06-21 Joseph Myers <joseph@codesourcery.com>
* config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
* config/avr/avr-tables.opt: New file (generated).
* config.gcc (avr-*-*): Use avr/avr-tables.opt.
* config/avr/avr-devices.c (avr_mcu_types): Move contents to
avr-mcus.def.
* config/avr/avr.c (avr_help, TARGET_HELP): Remove.
(avr_option_override): Don't process -mmcu= argument here. Set
avr_current_device using avr_mcu_index.
(avr_file_start): Use avr_current_device->name instead of
avr_mcu_name.
* config/avr/avr.opt (mmcu=): Use Enum.
* config/avr/t-avr (avr-devices.o): Update dependencies.
($(srcdir)/config/avr/avr-tables.opt): New.
* target.def (help): Remove.
* doc/tm.texi.in (TARGET_HELP): Remove.
* doc/tm.texi: Regenerate.
* opts.c: Don't include target.h.
(common_handle_option): Don't call targetm.help.
* system.h (TARGET_HELP): Poison.
* Makefile.in (opts.o): Update dependencies.
2011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/usegld.h: New file. * config/usegld.h: New file.

View File

@ -2850,7 +2850,7 @@ diagnostic.o : diagnostic.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
version.h $(INPUT_H) intl.h $(DIAGNOSTIC_H) diagnostic.def version.h $(INPUT_H) intl.h $(DIAGNOSTIC_H) diagnostic.def
opts.o : opts.c $(OPTS_H) $(OPTIONS_H) $(DIAGNOSTIC_CORE_H) $(CONFIG_H) $(SYSTEM_H) \ opts.o : opts.c $(OPTS_H) $(OPTIONS_H) $(DIAGNOSTIC_CORE_H) $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TM_H) $(RTL_H) \ coretypes.h $(TM_H) $(RTL_H) \
$(DIAGNOSTIC_H) $(INSN_ATTR_H) intl.h $(TARGET_H) $(COMMON_TARGET_H) \ $(DIAGNOSTIC_H) $(INSN_ATTR_H) intl.h $(COMMON_TARGET_H) \
$(FLAGS_H) $(PARAMS_H) opts-diagnostic.h $(FLAGS_H) $(PARAMS_H) opts-diagnostic.h
opts-global.o : opts-global.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ opts-global.o : opts-global.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(DIAGNOSTIC_H) $(OPTS_H) $(FLAGS_H) $(GGC_H) $(TREE_H) langhooks.h \ $(DIAGNOSTIC_H) $(OPTS_H) $(FLAGS_H) $(GGC_H) $(TREE_H) langhooks.h \

View File

@ -318,6 +318,7 @@ avr-*-*)
cpu_type=avr cpu_type=avr
c_target_objs="avr-c.o" c_target_objs="avr-c.o"
cxx_target_objs="avr-c.o" cxx_target_objs="avr-c.o"
extra_options="${extra_options} avr/avr-tables.opt"
;; ;;
bfin*-*) bfin*-*)
cpu_type=bfin cpu_type=bfin

View File

@ -39,190 +39,11 @@ const struct base_arch_s avr_arch_types[] = {
{ 0, 1, 1, 1, 1, 1, 1, 0, 0, 0x0060, "__AVR_ARCH__=6", "avr6" } { 0, 1, 1, 1, 1, 1, 1, 0, 0, 0x0060, "__AVR_ARCH__=6", "avr6" }
}; };
/* List of all known AVR MCU types - if updated, it has to be kept
in sync in several places (FIXME: is there a better way?):
- here;
- t-avr (MULTILIB_MATCHES);
- gas/config/tc-avr.c;
- avr-libc. */
const struct mcu_type_s avr_mcu_types[] = { const struct mcu_type_s avr_mcu_types[] = {
/* Classic, <= 8K. */ #define AVR_MCU(NAME, ARCH, MACRO, SHORT_SP, DATA_SEC, LIBRARY_NAME) \
{ "avr2", ARCH_AVR2, NULL, 0, 0x0060, "s8515" }, { NAME, ARCH, MACRO, SHORT_SP, DATA_SEC, LIBRARY_NAME },
{ "at90s2313", ARCH_AVR2, "__AVR_AT90S2313__", 1, 0x0060, "s2313" }, #include "avr-mcus.def"
{ "at90s2323", ARCH_AVR2, "__AVR_AT90S2323__", 1, 0x0060, "s2323" }, #undef AVR_MCU
{ "at90s2333", ARCH_AVR2, "__AVR_AT90S2333__", 1, 0x0060, "s2333" },
{ "at90s2343", ARCH_AVR2, "__AVR_AT90S2343__", 1, 0x0060, "s2343" },
{ "attiny22", ARCH_AVR2, "__AVR_ATtiny22__", 1, 0x0060, "tn22" },
{ "attiny26", ARCH_AVR2, "__AVR_ATtiny26__", 1, 0x0060, "tn26" },
{ "at90s4414", ARCH_AVR2, "__AVR_AT90S4414__", 0, 0x0060, "s4414" },
{ "at90s4433", ARCH_AVR2, "__AVR_AT90S4433__", 1, 0x0060, "s4433" },
{ "at90s4434", ARCH_AVR2, "__AVR_AT90S4434__", 0, 0x0060, "s4434" },
{ "at90s8515", ARCH_AVR2, "__AVR_AT90S8515__", 0, 0x0060, "s8515" },
{ "at90c8534", ARCH_AVR2, "__AVR_AT90C8534__", 0, 0x0060, "c8534" },
{ "at90s8535", ARCH_AVR2, "__AVR_AT90S8535__", 0, 0x0060, "s8535" },
/* Classic + MOVW, <= 8K. */
{ "avr25", ARCH_AVR25, NULL, 0, 0x0060, "tn85" },
{ "ata6289", ARCH_AVR25, "__AVR_ATA6289__", 0, 0x0100, "a6289" },
{ "attiny13", ARCH_AVR25, "__AVR_ATtiny13__", 1, 0x0060, "tn13" },
{ "attiny13a", ARCH_AVR25, "__AVR_ATtiny13A__", 1, 0x0060, "tn13a" },
{ "attiny2313", ARCH_AVR25, "__AVR_ATtiny2313__", 1, 0x0060, "tn2313" },
{ "attiny2313a", ARCH_AVR25, "__AVR_ATtiny2313A__", 1, 0x0060, "tn2313a" },
{ "attiny24", ARCH_AVR25, "__AVR_ATtiny24__", 1, 0x0060, "tn24" },
{ "attiny24a", ARCH_AVR25, "__AVR_ATtiny24A__", 1, 0x0060, "tn24a" },
{ "attiny4313", ARCH_AVR25, "__AVR_ATtiny4313__", 1, 0x0060, "tn4313" },
{ "attiny44", ARCH_AVR25, "__AVR_ATtiny44__", 0, 0x0060, "tn44" },
{ "attiny44a", ARCH_AVR25, "__AVR_ATtiny44A__", 0, 0x0060, "tn44a" },
{ "attiny84", ARCH_AVR25, "__AVR_ATtiny84__", 0, 0x0060, "tn84" },
{ "attiny84a", ARCH_AVR25, "__AVR_ATtiny84A__", 0, 0x0060, "tn84" },
{ "attiny25", ARCH_AVR25, "__AVR_ATtiny25__", 1, 0x0060, "tn25" },
{ "attiny45", ARCH_AVR25, "__AVR_ATtiny45__", 0, 0x0060, "tn45" },
{ "attiny85", ARCH_AVR25, "__AVR_ATtiny85__", 0, 0x0060, "tn85" },
{ "attiny261", ARCH_AVR25, "__AVR_ATtiny261__", 1, 0x0060, "tn261" },
{ "attiny261a", ARCH_AVR25, "__AVR_ATtiny261A__", 1, 0x0060, "tn261a" },
{ "attiny461", ARCH_AVR25, "__AVR_ATtiny461__", 0, 0x0060, "tn461" },
{ "attiny461a", ARCH_AVR25, "__AVR_ATtiny461A__", 0, 0x0060, "tn461a" },
{ "attiny861", ARCH_AVR25, "__AVR_ATtiny861__", 0, 0x0060, "tn861" },
{ "attiny861a", ARCH_AVR25, "__AVR_ATtiny861A__", 0, 0x0060, "tn861a" },
{ "attiny43u", ARCH_AVR25, "__AVR_ATtiny43U__", 0, 0x0060, "tn43u" },
{ "attiny87", ARCH_AVR25, "__AVR_ATtiny87__", 0, 0x0100, "tn87" },
{ "attiny48", ARCH_AVR25, "__AVR_ATtiny48__", 0, 0x0100, "tn48" },
{ "attiny88", ARCH_AVR25, "__AVR_ATtiny88__", 0, 0x0100, "tn88" },
{ "at86rf401", ARCH_AVR25, "__AVR_AT86RF401__", 1, 0x0060, "86401" },
/* Classic, > 8K, <= 64K. */
{ "avr3", ARCH_AVR3, NULL, 0, 0x0060, "43355" },
{ "at43usb355", ARCH_AVR3, "__AVR_AT43USB355__", 0, 0x0060, "43355" },
{ "at76c711", ARCH_AVR3, "__AVR_AT76C711__", 0, 0x0060, "76711" },
/* Classic, == 128K. */
{ "avr31", ARCH_AVR31, NULL, 0, 0x0060, "m103" },
{ "atmega103", ARCH_AVR31, "__AVR_ATmega103__", 0, 0x0060, "m103" },
{ "at43usb320", ARCH_AVR31, "__AVR_AT43USB320__", 0, 0x0060, "43320" },
/* Classic + MOVW + JMP/CALL. */
{ "avr35", ARCH_AVR35, NULL, 0, 0x0100, "usb162" },
{ "at90usb82", ARCH_AVR35, "__AVR_AT90USB82__", 0, 0x0100, "usb82" },
{ "at90usb162", ARCH_AVR35, "__AVR_AT90USB162__", 0, 0x0100, "usb162" },
{ "atmega8u2", ARCH_AVR35, "__AVR_ATmega8U2__", 0, 0x0100, "m8u2" },
{ "atmega16u2", ARCH_AVR35, "__AVR_ATmega16U2__", 0, 0x0100, "m16u2" },
{ "atmega32u2", ARCH_AVR35, "__AVR_ATmega32U2__", 0, 0x0100, "m32u2" },
{ "attiny167", ARCH_AVR35, "__AVR_ATtiny167__", 0, 0x0100, "tn167" },
/* Enhanced, <= 8K. */
{ "avr4", ARCH_AVR4, NULL, 0, 0x0060, "m8" },
{ "atmega8", ARCH_AVR4, "__AVR_ATmega8__", 0, 0x0060, "m8" },
{ "atmega48", ARCH_AVR4, "__AVR_ATmega48__", 0, 0x0100, "m48" },
{ "atmega48a", ARCH_AVR4, "__AVR_ATmega48A__", 0, 0x0100, "m48a" },
{ "atmega48p", ARCH_AVR4, "__AVR_ATmega48P__", 0, 0x0100, "m48p" },
{ "atmega88", ARCH_AVR4, "__AVR_ATmega88__", 0, 0x0100, "m88" },
{ "atmega88a", ARCH_AVR4, "__AVR_ATmega88A__", 0, 0x0100, "m88a" },
{ "atmega88p", ARCH_AVR4, "__AVR_ATmega88P__", 0, 0x0100, "m88p" },
{ "atmega88pa", ARCH_AVR4, "__AVR_ATmega88PA__", 0, 0x0100, "m88pa" },
{ "atmega8515", ARCH_AVR4, "__AVR_ATmega8515__", 0, 0x0060, "m8515" },
{ "atmega8535", ARCH_AVR4, "__AVR_ATmega8535__", 0, 0x0060, "m8535" },
{ "atmega8hva", ARCH_AVR4, "__AVR_ATmega8HVA__", 0, 0x0100, "m8hva" },
{ "at90pwm1", ARCH_AVR4, "__AVR_AT90PWM1__", 0, 0x0100, "90pwm1" },
{ "at90pwm2", ARCH_AVR4, "__AVR_AT90PWM2__", 0, 0x0100, "90pwm2" },
{ "at90pwm2b", ARCH_AVR4, "__AVR_AT90PWM2B__", 0, 0x0100, "90pwm2b" },
{ "at90pwm3", ARCH_AVR4, "__AVR_AT90PWM3__", 0, 0x0100, "90pwm3" },
{ "at90pwm3b", ARCH_AVR4, "__AVR_AT90PWM3B__", 0, 0x0100, "90pwm3b" },
{ "at90pwm81", ARCH_AVR4, "__AVR_AT90PWM81__", 0, 0x0100, "90pwm81" },
/* Enhanced, > 8K, <= 64K. */
{ "avr5", ARCH_AVR5, NULL, 0, 0x0060, "m16" },
{ "atmega16", ARCH_AVR5, "__AVR_ATmega16__", 0, 0x0060, "m16" },
{ "atmega16a", ARCH_AVR5, "__AVR_ATmega16A__", 0, 0x0060, "m16a" },
{ "atmega161", ARCH_AVR5, "__AVR_ATmega161__", 0, 0x0060, "m161" },
{ "atmega162", ARCH_AVR5, "__AVR_ATmega162__", 0, 0x0100, "m162" },
{ "atmega163", ARCH_AVR5, "__AVR_ATmega163__", 0, 0x0060, "m163" },
{ "atmega164a", ARCH_AVR5, "__AVR_ATmega164A__", 0, 0x0060, "m164a" },
{ "atmega164p", ARCH_AVR5, "__AVR_ATmega164P__", 0, 0x0100, "m164p" },
{ "atmega165", ARCH_AVR5, "__AVR_ATmega165__", 0, 0x0100, "m165" },
{ "atmega165a", ARCH_AVR5, "__AVR_ATmega165A__", 0, 0x0100, "m165a" },
{ "atmega165p", ARCH_AVR5, "__AVR_ATmega165P__", 0, 0x0100, "m165p" },
{ "atmega168", ARCH_AVR5, "__AVR_ATmega168__", 0, 0x0100, "m168" },
{ "atmega168a", ARCH_AVR5, "__AVR_ATmega168A__", 0, 0x0100, "m168a" },
{ "atmega168p", ARCH_AVR5, "__AVR_ATmega168P__", 0, 0x0100, "m168p" },
{ "atmega169", ARCH_AVR5, "__AVR_ATmega169__", 0, 0x0100, "m169" },
{ "atmega169a", ARCH_AVR5, "__AVR_ATmega169A__", 0, 0x0100, "m169a" },
{ "atmega169p", ARCH_AVR5, "__AVR_ATmega169P__", 0, 0x0100, "m169p" },
{ "atmega169pa", ARCH_AVR5, "__AVR_ATmega169PA__", 0, 0x0100, "m169pa" },
{ "atmega32", ARCH_AVR5, "__AVR_ATmega32__", 0, 0x0060, "m32" },
{ "atmega323", ARCH_AVR5, "__AVR_ATmega323__", 0, 0x0060, "m323" },
{ "atmega324a", ARCH_AVR5, "__AVR_ATmega324A__", 0, 0x0100, "m324a" },
{ "atmega324p", ARCH_AVR5, "__AVR_ATmega324P__", 0, 0x0100, "m324p" },
{ "atmega324pa", ARCH_AVR5, "__AVR_ATmega324PA__", 0, 0x0100, "m324pa" },
{ "atmega325", ARCH_AVR5, "__AVR_ATmega325__", 0, 0x0100, "m325" },
{ "atmega325a", ARCH_AVR5, "__AVR_ATmega325A__", 0, 0x0100, "m325a" },
{ "atmega325p", ARCH_AVR5, "__AVR_ATmega325P__", 0, 0x0100, "m325p" },
{ "atmega3250", ARCH_AVR5, "__AVR_ATmega3250__", 0, 0x0100, "m3250" },
{ "atmega3250a", ARCH_AVR5, "__AVR_ATmega3250A__", 0, 0x0100, "m3250a" },
{ "atmega3250p", ARCH_AVR5, "__AVR_ATmega3250P__", 0, 0x0100, "m3250p" },
{ "atmega328", ARCH_AVR5, "__AVR_ATmega328__", 0, 0x0100, "m328" },
{ "atmega328p", ARCH_AVR5, "__AVR_ATmega328P__", 0, 0x0100, "m328p" },
{ "atmega329", ARCH_AVR5, "__AVR_ATmega329__", 0, 0x0100, "m329" },
{ "atmega329a", ARCH_AVR5, "__AVR_ATmega329A__", 0, 0x0100, "m329a" },
{ "atmega329p", ARCH_AVR5, "__AVR_ATmega329P__", 0, 0x0100, "m329p" },
{ "atmega329pa", ARCH_AVR5, "__AVR_ATmega329PA__", 0, 0x0100, "m329pa" },
{ "atmega3290", ARCH_AVR5, "__AVR_ATmega3290__", 0, 0x0100, "m3290" },
{ "atmega3290a", ARCH_AVR5, "__AVR_ATmega3290A__", 0, 0x0100, "m3290a" },
{ "atmega3290p", ARCH_AVR5, "__AVR_ATmega3290P__", 0, 0x0100, "m3290p" },
{ "atmega406", ARCH_AVR5, "__AVR_ATmega406__", 0, 0x0100, "m406" },
{ "atmega64", ARCH_AVR5, "__AVR_ATmega64__", 0, 0x0100, "m64" },
{ "atmega640", ARCH_AVR5, "__AVR_ATmega640__", 0, 0x0200, "m640" },
{ "atmega644", ARCH_AVR5, "__AVR_ATmega644__", 0, 0x0100, "m644" },
{ "atmega644a", ARCH_AVR5, "__AVR_ATmega644A__", 0, 0x0100, "m644a" },
{ "atmega644p", ARCH_AVR5, "__AVR_ATmega644P__", 0, 0x0100, "m644p" },
{ "atmega644pa", ARCH_AVR5, "__AVR_ATmega644PA__", 0, 0x0100, "m644pa" },
{ "atmega645", ARCH_AVR5, "__AVR_ATmega645__", 0, 0x0100, "m645" },
{ "atmega645a", ARCH_AVR5, "__AVR_ATmega645A__", 0, 0x0100, "m645a" },
{ "atmega645p", ARCH_AVR5, "__AVR_ATmega645P__", 0, 0x0100, "m645p" },
{ "atmega6450", ARCH_AVR5, "__AVR_ATmega6450__", 0, 0x0100, "m6450" },
{ "atmega6450a", ARCH_AVR5, "__AVR_ATmega6450A__", 0, 0x0100, "m6450a" },
{ "atmega6450p", ARCH_AVR5, "__AVR_ATmega6450P__", 0, 0x0100, "m6450p" },
{ "atmega649", ARCH_AVR5, "__AVR_ATmega649__", 0, 0x0100, "m649" },
{ "atmega649a", ARCH_AVR5, "__AVR_ATmega649A__", 0, 0x0100, "m649a" },
{ "atmega649p", ARCH_AVR5, "__AVR_ATmega649P__", 0, 0x0100, "m649p" },
{ "atmega6490", ARCH_AVR5, "__AVR_ATmega6490__", 0, 0x0100, "m6490" },
{ "atmega16hva", ARCH_AVR5, "__AVR_ATmega16HVA__", 0, 0x0100, "m16hva" },
{ "atmega16hva2", ARCH_AVR5, "__AVR_ATmega16HVA2__", 0, 0x0100, "m16hva2" },
{ "atmega16hvb", ARCH_AVR5, "__AVR_ATmega16HVB__", 0, 0x0100, "m16hvb" },
{ "atmega32hvb", ARCH_AVR5, "__AVR_ATmega32HVB__", 0, 0x0100, "m32hvb" },
{ "atmega64hve", ARCH_AVR5, "__AVR_ATmega64HVE__", 0, 0x0100, "m64hve" },
{ "at90can32", ARCH_AVR5, "__AVR_AT90CAN32__", 0, 0x0100, "can32" },
{ "at90can64", ARCH_AVR5, "__AVR_AT90CAN64__", 0, 0x0100, "can64" },
{ "at90pwm216", ARCH_AVR5, "__AVR_AT90PWM216__", 0, 0x0100, "90pwm216" },
{ "at90pwm316", ARCH_AVR5, "__AVR_AT90PWM316__", 0, 0x0100, "90pwm316" },
{ "atmega32c1", ARCH_AVR5, "__AVR_ATmega32C1__", 0, 0x0100, "m32c1" },
{ "atmega64c1", ARCH_AVR5, "__AVR_ATmega64C1__", 0, 0x0100, "m64c1" },
{ "atmega16m1", ARCH_AVR5, "__AVR_ATmega16M1__", 0, 0x0100, "m16m1" },
{ "atmega32m1", ARCH_AVR5, "__AVR_ATmega32M1__", 0, 0x0100, "m32m1" },
{ "atmega64m1", ARCH_AVR5, "__AVR_ATmega64M1__", 0, 0x0100, "m64m1" },
{ "atmega16u4", ARCH_AVR5, "__AVR_ATmega16U4__", 0, 0x0100, "m16u4" },
{ "atmega32u4", ARCH_AVR5, "__AVR_ATmega32U4__", 0, 0x0100, "m32u4" },
{ "atmega32u6", ARCH_AVR5, "__AVR_ATmega32U6__", 0, 0x0100, "m32u6" },
{ "at90scr100", ARCH_AVR5, "__AVR_AT90SCR100__", 0, 0x0100, "90scr100" },
{ "at90usb646", ARCH_AVR5, "__AVR_AT90USB646__", 0, 0x0100, "usb646" },
{ "at90usb647", ARCH_AVR5, "__AVR_AT90USB647__", 0, 0x0100, "usb647" },
{ "at94k", ARCH_AVR5, "__AVR_AT94K__", 0, 0x0060, "at94k" },
{ "m3000", ARCH_AVR5, "__AVR_M3000__", 0, 0x1000, "m3000" },
/* Enhanced, == 128K. */
{ "avr51", ARCH_AVR51, NULL, 0, 0x0100, "m128" },
{ "atmega128", ARCH_AVR51, "__AVR_ATmega128__", 0, 0x0100, "m128" },
{ "atmega1280", ARCH_AVR51, "__AVR_ATmega1280__", 0, 0x0200, "m1280" },
{ "atmega1281", ARCH_AVR51, "__AVR_ATmega1281__", 0, 0x0200, "m1281" },
{ "atmega1284p", ARCH_AVR51, "__AVR_ATmega1284P__", 0, 0x0100, "m1284p" },
{ "atmega128rfa1", ARCH_AVR51, "__AVR_ATmega128RFA1__", 0, 0x0200, "m128rfa1" },
{ "at90can128", ARCH_AVR51, "__AVR_AT90CAN128__", 0, 0x0100, "can128" },
{ "at90usb1286", ARCH_AVR51, "__AVR_AT90USB1286__", 0, 0x0100, "usb1286" },
{ "at90usb1287", ARCH_AVR51, "__AVR_AT90USB1287__", 0, 0x0100, "usb1286" },
/* 3-Byte PC. */
{ "avr6", ARCH_AVR6, NULL, 0, 0x0200, "m2561" },
{ "atmega2560", ARCH_AVR6, "__AVR_ATmega2560__", 0, 0x0200, "m2560" },
{ "atmega2561", ARCH_AVR6, "__AVR_ATmega2561__", 0, 0x0200, "m2561" },
/* Assembler only. */
{ "avr1", ARCH_AVR1, NULL, 0, 0x0060, "s1200" },
{ "at90s1200", ARCH_AVR1, "__AVR_AT90S1200__", 0, 0x0060, "s1200" },
{ "attiny11", ARCH_AVR1, "__AVR_ATtiny11__", 0, 0x0060, "tn11" },
{ "attiny12", ARCH_AVR1, "__AVR_ATtiny12__", 0, 0x0060, "tn12" },
{ "attiny15", ARCH_AVR1, "__AVR_ATtiny15__", 0, 0x0060, "tn15" },
{ "attiny28", ARCH_AVR1, "__AVR_ATtiny28__", 0, 0x0060, "tn28" },
/* End of list. */ /* End of list. */
{ NULL, ARCH_UNKNOWN, NULL, 0, 0, NULL } { NULL, ARCH_UNKNOWN, NULL, 0, 0, NULL }
}; };

211
gcc/config/avr/avr-mcus.def Normal file
View File

@ -0,0 +1,211 @@
/* AVR MCUs.
Copyright (C) 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* List of all known AVR MCU types - if updated, it has to be kept
in sync in several places (FIXME: is there a better way?):
- here;
- t-avr (MULTILIB_MATCHES);
- gas/config/tc-avr.c;
- avr-libc.
Before including this file, define a macro:
AVR_MCU (NAME, ARCH, MACRO, SHORT_SP, DATA_SEC, LIBRARY_NAME)
where the arguments are the fields of struct mcu_type_s. */
/* "avr2" must be first for the "0" default to work as intended. */
/* Classic, <= 8K. */
AVR_MCU ("avr2", ARCH_AVR2, NULL, 0, 0x0060, "s8515")
AVR_MCU ("at90s2313", ARCH_AVR2, "__AVR_AT90S2313__", 1, 0x0060, "s2313")
AVR_MCU ("at90s2323", ARCH_AVR2, "__AVR_AT90S2323__", 1, 0x0060, "s2323")
AVR_MCU ("at90s2333", ARCH_AVR2, "__AVR_AT90S2333__", 1, 0x0060, "s2333")
AVR_MCU ("at90s2343", ARCH_AVR2, "__AVR_AT90S2343__", 1, 0x0060, "s2343")
AVR_MCU ("attiny22", ARCH_AVR2, "__AVR_ATtiny22__", 1, 0x0060, "tn22")
AVR_MCU ("attiny26", ARCH_AVR2, "__AVR_ATtiny26__", 1, 0x0060, "tn26")
AVR_MCU ("at90s4414", ARCH_AVR2, "__AVR_AT90S4414__", 0, 0x0060, "s4414")
AVR_MCU ("at90s4433", ARCH_AVR2, "__AVR_AT90S4433__", 1, 0x0060, "s4433")
AVR_MCU ("at90s4434", ARCH_AVR2, "__AVR_AT90S4434__", 0, 0x0060, "s4434")
AVR_MCU ("at90s8515", ARCH_AVR2, "__AVR_AT90S8515__", 0, 0x0060, "s8515")
AVR_MCU ("at90c8534", ARCH_AVR2, "__AVR_AT90C8534__", 0, 0x0060, "c8534")
AVR_MCU ("at90s8535", ARCH_AVR2, "__AVR_AT90S8535__", 0, 0x0060, "s8535")
/* Classic + MOVW, <= 8K. */
AVR_MCU ("avr25", ARCH_AVR25, NULL, 0, 0x0060, "tn85")
AVR_MCU ("ata6289", ARCH_AVR25, "__AVR_ATA6289__", 0, 0x0100, "a6289")
AVR_MCU ("attiny13", ARCH_AVR25, "__AVR_ATtiny13__", 1, 0x0060, "tn13")
AVR_MCU ("attiny13a", ARCH_AVR25, "__AVR_ATtiny13A__", 1, 0x0060, "tn13a")
AVR_MCU ("attiny2313", ARCH_AVR25, "__AVR_ATtiny2313__", 1, 0x0060, "tn2313")
AVR_MCU ("attiny2313a", ARCH_AVR25, "__AVR_ATtiny2313A__", 1, 0x0060, "tn2313a")
AVR_MCU ("attiny24", ARCH_AVR25, "__AVR_ATtiny24__", 1, 0x0060, "tn24")
AVR_MCU ("attiny24a", ARCH_AVR25, "__AVR_ATtiny24A__", 1, 0x0060, "tn24a")
AVR_MCU ("attiny4313", ARCH_AVR25, "__AVR_ATtiny4313__", 1, 0x0060, "tn4313")
AVR_MCU ("attiny44", ARCH_AVR25, "__AVR_ATtiny44__", 0, 0x0060, "tn44")
AVR_MCU ("attiny44a", ARCH_AVR25, "__AVR_ATtiny44A__", 0, 0x0060, "tn44a")
AVR_MCU ("attiny84", ARCH_AVR25, "__AVR_ATtiny84__", 0, 0x0060, "tn84")
AVR_MCU ("attiny84a", ARCH_AVR25, "__AVR_ATtiny84A__", 0, 0x0060, "tn84")
AVR_MCU ("attiny25", ARCH_AVR25, "__AVR_ATtiny25__", 1, 0x0060, "tn25")
AVR_MCU ("attiny45", ARCH_AVR25, "__AVR_ATtiny45__", 0, 0x0060, "tn45")
AVR_MCU ("attiny85", ARCH_AVR25, "__AVR_ATtiny85__", 0, 0x0060, "tn85")
AVR_MCU ("attiny261", ARCH_AVR25, "__AVR_ATtiny261__", 1, 0x0060, "tn261")
AVR_MCU ("attiny261a", ARCH_AVR25, "__AVR_ATtiny261A__", 1, 0x0060, "tn261a")
AVR_MCU ("attiny461", ARCH_AVR25, "__AVR_ATtiny461__", 0, 0x0060, "tn461")
AVR_MCU ("attiny461a", ARCH_AVR25, "__AVR_ATtiny461A__", 0, 0x0060, "tn461a")
AVR_MCU ("attiny861", ARCH_AVR25, "__AVR_ATtiny861__", 0, 0x0060, "tn861")
AVR_MCU ("attiny861a", ARCH_AVR25, "__AVR_ATtiny861A__", 0, 0x0060, "tn861a")
AVR_MCU ("attiny43u", ARCH_AVR25, "__AVR_ATtiny43U__", 0, 0x0060, "tn43u")
AVR_MCU ("attiny87", ARCH_AVR25, "__AVR_ATtiny87__", 0, 0x0100, "tn87")
AVR_MCU ("attiny48", ARCH_AVR25, "__AVR_ATtiny48__", 0, 0x0100, "tn48")
AVR_MCU ("attiny88", ARCH_AVR25, "__AVR_ATtiny88__", 0, 0x0100, "tn88")
AVR_MCU ("at86rf401", ARCH_AVR25, "__AVR_AT86RF401__", 1, 0x0060, "86401")
/* Classic, > 8K, <= 64K. */
AVR_MCU ("avr3", ARCH_AVR3, NULL, 0, 0x0060, "43355")
AVR_MCU ("at43usb355", ARCH_AVR3, "__AVR_AT43USB355__", 0, 0x0060, "43355")
AVR_MCU ("at76c711", ARCH_AVR3, "__AVR_AT76C711__", 0, 0x0060, "76711")
/* Classic, == 128K. */
AVR_MCU ("avr31", ARCH_AVR31, NULL, 0, 0x0060, "m103")
AVR_MCU ("atmega103", ARCH_AVR31, "__AVR_ATmega103__", 0, 0x0060, "m103")
AVR_MCU ("at43usb320", ARCH_AVR31, "__AVR_AT43USB320__", 0, 0x0060, "43320")
/* Classic + MOVW + JMP/CALL. */
AVR_MCU ("avr35", ARCH_AVR35, NULL, 0, 0x0100, "usb162")
AVR_MCU ("at90usb82", ARCH_AVR35, "__AVR_AT90USB82__", 0, 0x0100, "usb82")
AVR_MCU ("at90usb162", ARCH_AVR35, "__AVR_AT90USB162__", 0, 0x0100, "usb162")
AVR_MCU ("atmega8u2", ARCH_AVR35, "__AVR_ATmega8U2__", 0, 0x0100, "m8u2")
AVR_MCU ("atmega16u2", ARCH_AVR35, "__AVR_ATmega16U2__", 0, 0x0100, "m16u2")
AVR_MCU ("atmega32u2", ARCH_AVR35, "__AVR_ATmega32U2__", 0, 0x0100, "m32u2")
AVR_MCU ("attiny167", ARCH_AVR35, "__AVR_ATtiny167__", 0, 0x0100, "tn167")
/* Enhanced, <= 8K. */
AVR_MCU ("avr4", ARCH_AVR4, NULL, 0, 0x0060, "m8")
AVR_MCU ("atmega8", ARCH_AVR4, "__AVR_ATmega8__", 0, 0x0060, "m8")
AVR_MCU ("atmega48", ARCH_AVR4, "__AVR_ATmega48__", 0, 0x0100, "m48")
AVR_MCU ("atmega48a", ARCH_AVR4, "__AVR_ATmega48A__", 0, 0x0100, "m48a")
AVR_MCU ("atmega48p", ARCH_AVR4, "__AVR_ATmega48P__", 0, 0x0100, "m48p")
AVR_MCU ("atmega88", ARCH_AVR4, "__AVR_ATmega88__", 0, 0x0100, "m88")
AVR_MCU ("atmega88a", ARCH_AVR4, "__AVR_ATmega88A__", 0, 0x0100, "m88a")
AVR_MCU ("atmega88p", ARCH_AVR4, "__AVR_ATmega88P__", 0, 0x0100, "m88p")
AVR_MCU ("atmega88pa", ARCH_AVR4, "__AVR_ATmega88PA__", 0, 0x0100, "m88pa")
AVR_MCU ("atmega8515", ARCH_AVR4, "__AVR_ATmega8515__", 0, 0x0060, "m8515")
AVR_MCU ("atmega8535", ARCH_AVR4, "__AVR_ATmega8535__", 0, 0x0060, "m8535")
AVR_MCU ("atmega8hva", ARCH_AVR4, "__AVR_ATmega8HVA__", 0, 0x0100, "m8hva")
AVR_MCU ("at90pwm1", ARCH_AVR4, "__AVR_AT90PWM1__", 0, 0x0100, "90pwm1")
AVR_MCU ("at90pwm2", ARCH_AVR4, "__AVR_AT90PWM2__", 0, 0x0100, "90pwm2")
AVR_MCU ("at90pwm2b", ARCH_AVR4, "__AVR_AT90PWM2B__", 0, 0x0100, "90pwm2b")
AVR_MCU ("at90pwm3", ARCH_AVR4, "__AVR_AT90PWM3__", 0, 0x0100, "90pwm3")
AVR_MCU ("at90pwm3b", ARCH_AVR4, "__AVR_AT90PWM3B__", 0, 0x0100, "90pwm3b")
AVR_MCU ("at90pwm81", ARCH_AVR4, "__AVR_AT90PWM81__", 0, 0x0100, "90pwm81")
/* Enhanced, > 8K, <= 64K. */
AVR_MCU ("avr5", ARCH_AVR5, NULL, 0, 0x0060, "m16")
AVR_MCU ("atmega16", ARCH_AVR5, "__AVR_ATmega16__", 0, 0x0060, "m16")
AVR_MCU ("atmega16a", ARCH_AVR5, "__AVR_ATmega16A__", 0, 0x0060, "m16a")
AVR_MCU ("atmega161", ARCH_AVR5, "__AVR_ATmega161__", 0, 0x0060, "m161")
AVR_MCU ("atmega162", ARCH_AVR5, "__AVR_ATmega162__", 0, 0x0100, "m162")
AVR_MCU ("atmega163", ARCH_AVR5, "__AVR_ATmega163__", 0, 0x0060, "m163")
AVR_MCU ("atmega164a", ARCH_AVR5, "__AVR_ATmega164A__", 0, 0x0060, "m164a")
AVR_MCU ("atmega164p", ARCH_AVR5, "__AVR_ATmega164P__", 0, 0x0100, "m164p")
AVR_MCU ("atmega165", ARCH_AVR5, "__AVR_ATmega165__", 0, 0x0100, "m165")
AVR_MCU ("atmega165a", ARCH_AVR5, "__AVR_ATmega165A__", 0, 0x0100, "m165a")
AVR_MCU ("atmega165p", ARCH_AVR5, "__AVR_ATmega165P__", 0, 0x0100, "m165p")
AVR_MCU ("atmega168", ARCH_AVR5, "__AVR_ATmega168__", 0, 0x0100, "m168")
AVR_MCU ("atmega168a", ARCH_AVR5, "__AVR_ATmega168A__", 0, 0x0100, "m168a")
AVR_MCU ("atmega168p", ARCH_AVR5, "__AVR_ATmega168P__", 0, 0x0100, "m168p")
AVR_MCU ("atmega169", ARCH_AVR5, "__AVR_ATmega169__", 0, 0x0100, "m169")
AVR_MCU ("atmega169a", ARCH_AVR5, "__AVR_ATmega169A__", 0, 0x0100, "m169a")
AVR_MCU ("atmega169p", ARCH_AVR5, "__AVR_ATmega169P__", 0, 0x0100, "m169p")
AVR_MCU ("atmega169pa", ARCH_AVR5, "__AVR_ATmega169PA__", 0, 0x0100, "m169pa")
AVR_MCU ("atmega32", ARCH_AVR5, "__AVR_ATmega32__", 0, 0x0060, "m32")
AVR_MCU ("atmega323", ARCH_AVR5, "__AVR_ATmega323__", 0, 0x0060, "m323")
AVR_MCU ("atmega324a", ARCH_AVR5, "__AVR_ATmega324A__", 0, 0x0100, "m324a")
AVR_MCU ("atmega324p", ARCH_AVR5, "__AVR_ATmega324P__", 0, 0x0100, "m324p")
AVR_MCU ("atmega324pa", ARCH_AVR5, "__AVR_ATmega324PA__", 0, 0x0100, "m324pa")
AVR_MCU ("atmega325", ARCH_AVR5, "__AVR_ATmega325__", 0, 0x0100, "m325")
AVR_MCU ("atmega325a", ARCH_AVR5, "__AVR_ATmega325A__", 0, 0x0100, "m325a")
AVR_MCU ("atmega325p", ARCH_AVR5, "__AVR_ATmega325P__", 0, 0x0100, "m325p")
AVR_MCU ("atmega3250", ARCH_AVR5, "__AVR_ATmega3250__", 0, 0x0100, "m3250")
AVR_MCU ("atmega3250a", ARCH_AVR5, "__AVR_ATmega3250A__", 0, 0x0100, "m3250a")
AVR_MCU ("atmega3250p", ARCH_AVR5, "__AVR_ATmega3250P__", 0, 0x0100, "m3250p")
AVR_MCU ("atmega328", ARCH_AVR5, "__AVR_ATmega328__", 0, 0x0100, "m328")
AVR_MCU ("atmega328p", ARCH_AVR5, "__AVR_ATmega328P__", 0, 0x0100, "m328p")
AVR_MCU ("atmega329", ARCH_AVR5, "__AVR_ATmega329__", 0, 0x0100, "m329")
AVR_MCU ("atmega329a", ARCH_AVR5, "__AVR_ATmega329A__", 0, 0x0100, "m329a")
AVR_MCU ("atmega329p", ARCH_AVR5, "__AVR_ATmega329P__", 0, 0x0100, "m329p")
AVR_MCU ("atmega329pa", ARCH_AVR5, "__AVR_ATmega329PA__", 0, 0x0100, "m329pa")
AVR_MCU ("atmega3290", ARCH_AVR5, "__AVR_ATmega3290__", 0, 0x0100, "m3290")
AVR_MCU ("atmega3290a", ARCH_AVR5, "__AVR_ATmega3290A__", 0, 0x0100, "m3290a")
AVR_MCU ("atmega3290p", ARCH_AVR5, "__AVR_ATmega3290P__", 0, 0x0100, "m3290p")
AVR_MCU ("atmega406", ARCH_AVR5, "__AVR_ATmega406__", 0, 0x0100, "m406")
AVR_MCU ("atmega64", ARCH_AVR5, "__AVR_ATmega64__", 0, 0x0100, "m64")
AVR_MCU ("atmega640", ARCH_AVR5, "__AVR_ATmega640__", 0, 0x0200, "m640")
AVR_MCU ("atmega644", ARCH_AVR5, "__AVR_ATmega644__", 0, 0x0100, "m644")
AVR_MCU ("atmega644a", ARCH_AVR5, "__AVR_ATmega644A__", 0, 0x0100, "m644a")
AVR_MCU ("atmega644p", ARCH_AVR5, "__AVR_ATmega644P__", 0, 0x0100, "m644p")
AVR_MCU ("atmega644pa", ARCH_AVR5, "__AVR_ATmega644PA__", 0, 0x0100, "m644pa")
AVR_MCU ("atmega645", ARCH_AVR5, "__AVR_ATmega645__", 0, 0x0100, "m645")
AVR_MCU ("atmega645a", ARCH_AVR5, "__AVR_ATmega645A__", 0, 0x0100, "m645a")
AVR_MCU ("atmega645p", ARCH_AVR5, "__AVR_ATmega645P__", 0, 0x0100, "m645p")
AVR_MCU ("atmega6450", ARCH_AVR5, "__AVR_ATmega6450__", 0, 0x0100, "m6450")
AVR_MCU ("atmega6450a", ARCH_AVR5, "__AVR_ATmega6450A__", 0, 0x0100, "m6450a")
AVR_MCU ("atmega6450p", ARCH_AVR5, "__AVR_ATmega6450P__", 0, 0x0100, "m6450p")
AVR_MCU ("atmega649", ARCH_AVR5, "__AVR_ATmega649__", 0, 0x0100, "m649")
AVR_MCU ("atmega649a", ARCH_AVR5, "__AVR_ATmega649A__", 0, 0x0100, "m649a")
AVR_MCU ("atmega649p", ARCH_AVR5, "__AVR_ATmega649P__", 0, 0x0100, "m649p")
AVR_MCU ("atmega6490", ARCH_AVR5, "__AVR_ATmega6490__", 0, 0x0100, "m6490")
AVR_MCU ("atmega16hva", ARCH_AVR5, "__AVR_ATmega16HVA__", 0, 0x0100, "m16hva")
AVR_MCU ("atmega16hva2", ARCH_AVR5, "__AVR_ATmega16HVA2__", 0, 0x0100, "m16hva2")
AVR_MCU ("atmega16hvb", ARCH_AVR5, "__AVR_ATmega16HVB__", 0, 0x0100, "m16hvb")
AVR_MCU ("atmega32hvb", ARCH_AVR5, "__AVR_ATmega32HVB__", 0, 0x0100, "m32hvb")
AVR_MCU ("atmega64hve", ARCH_AVR5, "__AVR_ATmega64HVE__", 0, 0x0100, "m64hve")
AVR_MCU ("at90can32", ARCH_AVR5, "__AVR_AT90CAN32__", 0, 0x0100, "can32")
AVR_MCU ("at90can64", ARCH_AVR5, "__AVR_AT90CAN64__", 0, 0x0100, "can64")
AVR_MCU ("at90pwm216", ARCH_AVR5, "__AVR_AT90PWM216__", 0, 0x0100, "90pwm216")
AVR_MCU ("at90pwm316", ARCH_AVR5, "__AVR_AT90PWM316__", 0, 0x0100, "90pwm316")
AVR_MCU ("atmega32c1", ARCH_AVR5, "__AVR_ATmega32C1__", 0, 0x0100, "m32c1")
AVR_MCU ("atmega64c1", ARCH_AVR5, "__AVR_ATmega64C1__", 0, 0x0100, "m64c1")
AVR_MCU ("atmega16m1", ARCH_AVR5, "__AVR_ATmega16M1__", 0, 0x0100, "m16m1")
AVR_MCU ("atmega32m1", ARCH_AVR5, "__AVR_ATmega32M1__", 0, 0x0100, "m32m1")
AVR_MCU ("atmega64m1", ARCH_AVR5, "__AVR_ATmega64M1__", 0, 0x0100, "m64m1")
AVR_MCU ("atmega16u4", ARCH_AVR5, "__AVR_ATmega16U4__", 0, 0x0100, "m16u4")
AVR_MCU ("atmega32u4", ARCH_AVR5, "__AVR_ATmega32U4__", 0, 0x0100, "m32u4")
AVR_MCU ("atmega32u6", ARCH_AVR5, "__AVR_ATmega32U6__", 0, 0x0100, "m32u6")
AVR_MCU ("at90scr100", ARCH_AVR5, "__AVR_AT90SCR100__", 0, 0x0100, "90scr100")
AVR_MCU ("at90usb646", ARCH_AVR5, "__AVR_AT90USB646__", 0, 0x0100, "usb646")
AVR_MCU ("at90usb647", ARCH_AVR5, "__AVR_AT90USB647__", 0, 0x0100, "usb647")
AVR_MCU ("at94k", ARCH_AVR5, "__AVR_AT94K__", 0, 0x0060, "at94k")
AVR_MCU ("m3000", ARCH_AVR5, "__AVR_M3000__", 0, 0x1000, "m3000")
/* Enhanced, == 128K. */
AVR_MCU ("avr51", ARCH_AVR51, NULL, 0, 0x0100, "m128")
AVR_MCU ("atmega128", ARCH_AVR51, "__AVR_ATmega128__", 0, 0x0100, "m128")
AVR_MCU ("atmega1280", ARCH_AVR51, "__AVR_ATmega1280__", 0, 0x0200, "m1280")
AVR_MCU ("atmega1281", ARCH_AVR51, "__AVR_ATmega1281__", 0, 0x0200, "m1281")
AVR_MCU ("atmega1284p", ARCH_AVR51, "__AVR_ATmega1284P__", 0, 0x0100, "m1284p")
AVR_MCU ("atmega128rfa1", ARCH_AVR51, "__AVR_ATmega128RFA1__", 0, 0x0200, "m128rfa1")
AVR_MCU ("at90can128", ARCH_AVR51, "__AVR_AT90CAN128__", 0, 0x0100, "can128")
AVR_MCU ("at90usb1286", ARCH_AVR51, "__AVR_AT90USB1286__", 0, 0x0100, "usb1286")
AVR_MCU ("at90usb1287", ARCH_AVR51, "__AVR_AT90USB1287__", 0, 0x0100, "usb1286")
/* 3-Byte PC. */
AVR_MCU ("avr6", ARCH_AVR6, NULL, 0, 0x0200, "m2561")
AVR_MCU ("atmega2560", ARCH_AVR6, "__AVR_ATmega2560__", 0, 0x0200, "m2560")
AVR_MCU ("atmega2561", ARCH_AVR6, "__AVR_ATmega2561__", 0, 0x0200, "m2561")
/* Assembler only. */
AVR_MCU ("avr1", ARCH_AVR1, NULL, 0, 0x0060, "s1200")
AVR_MCU ("at90s1200", ARCH_AVR1, "__AVR_AT90S1200__", 0, 0x0060, "s1200")
AVR_MCU ("attiny11", ARCH_AVR1, "__AVR_ATtiny11__", 0, 0x0060, "tn11")
AVR_MCU ("attiny12", ARCH_AVR1, "__AVR_ATtiny12__", 0, 0x0060, "tn12")
AVR_MCU ("attiny15", ARCH_AVR1, "__AVR_ATtiny15__", 0, 0x0060, "tn15")
AVR_MCU ("attiny28", ARCH_AVR1, "__AVR_ATtiny28__", 0, 0x0060, "tn28")

View File

@ -0,0 +1,523 @@
; -*- buffer-read-only: t -*-
; Generated automatically by genopt.sh from avr-mcus.def.
; Copyright (C) 2011 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
; for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3. If not see
; <http://www.gnu.org/licenses/>.
Enum
Name(avr_mcu) Type(int)
Known MCU names:
EnumValue
Enum(avr_mcu) String(avr2) Value(0)
EnumValue
Enum(avr_mcu) String(at90s2313) Value(1)
EnumValue
Enum(avr_mcu) String(at90s2323) Value(2)
EnumValue
Enum(avr_mcu) String(at90s2333) Value(3)
EnumValue
Enum(avr_mcu) String(at90s2343) Value(4)
EnumValue
Enum(avr_mcu) String(attiny22) Value(5)
EnumValue
Enum(avr_mcu) String(attiny26) Value(6)
EnumValue
Enum(avr_mcu) String(at90s4414) Value(7)
EnumValue
Enum(avr_mcu) String(at90s4433) Value(8)
EnumValue
Enum(avr_mcu) String(at90s4434) Value(9)
EnumValue
Enum(avr_mcu) String(at90s8515) Value(10)
EnumValue
Enum(avr_mcu) String(at90c8534) Value(11)
EnumValue
Enum(avr_mcu) String(at90s8535) Value(12)
EnumValue
Enum(avr_mcu) String(avr25) Value(13)
EnumValue
Enum(avr_mcu) String(ata6289) Value(14)
EnumValue
Enum(avr_mcu) String(attiny13) Value(15)
EnumValue
Enum(avr_mcu) String(attiny13a) Value(16)
EnumValue
Enum(avr_mcu) String(attiny2313) Value(17)
EnumValue
Enum(avr_mcu) String(attiny2313a) Value(18)
EnumValue
Enum(avr_mcu) String(attiny24) Value(19)
EnumValue
Enum(avr_mcu) String(attiny24a) Value(20)
EnumValue
Enum(avr_mcu) String(attiny4313) Value(21)
EnumValue
Enum(avr_mcu) String(attiny44) Value(22)
EnumValue
Enum(avr_mcu) String(attiny44a) Value(23)
EnumValue
Enum(avr_mcu) String(attiny84) Value(24)
EnumValue
Enum(avr_mcu) String(attiny84a) Value(25)
EnumValue
Enum(avr_mcu) String(attiny25) Value(26)
EnumValue
Enum(avr_mcu) String(attiny45) Value(27)
EnumValue
Enum(avr_mcu) String(attiny85) Value(28)
EnumValue
Enum(avr_mcu) String(attiny261) Value(29)
EnumValue
Enum(avr_mcu) String(attiny261a) Value(30)
EnumValue
Enum(avr_mcu) String(attiny461) Value(31)
EnumValue
Enum(avr_mcu) String(attiny461a) Value(32)
EnumValue
Enum(avr_mcu) String(attiny861) Value(33)
EnumValue
Enum(avr_mcu) String(attiny861a) Value(34)
EnumValue
Enum(avr_mcu) String(attiny43u) Value(35)
EnumValue
Enum(avr_mcu) String(attiny87) Value(36)
EnumValue
Enum(avr_mcu) String(attiny48) Value(37)
EnumValue
Enum(avr_mcu) String(attiny88) Value(38)
EnumValue
Enum(avr_mcu) String(at86rf401) Value(39)
EnumValue
Enum(avr_mcu) String(avr3) Value(40)
EnumValue
Enum(avr_mcu) String(at43usb355) Value(41)
EnumValue
Enum(avr_mcu) String(at76c711) Value(42)
EnumValue
Enum(avr_mcu) String(avr31) Value(43)
EnumValue
Enum(avr_mcu) String(atmega103) Value(44)
EnumValue
Enum(avr_mcu) String(at43usb320) Value(45)
EnumValue
Enum(avr_mcu) String(avr35) Value(46)
EnumValue
Enum(avr_mcu) String(at90usb82) Value(47)
EnumValue
Enum(avr_mcu) String(at90usb162) Value(48)
EnumValue
Enum(avr_mcu) String(atmega8u2) Value(49)
EnumValue
Enum(avr_mcu) String(atmega16u2) Value(50)
EnumValue
Enum(avr_mcu) String(atmega32u2) Value(51)
EnumValue
Enum(avr_mcu) String(attiny167) Value(52)
EnumValue
Enum(avr_mcu) String(avr4) Value(53)
EnumValue
Enum(avr_mcu) String(atmega8) Value(54)
EnumValue
Enum(avr_mcu) String(atmega48) Value(55)
EnumValue
Enum(avr_mcu) String(atmega48a) Value(56)
EnumValue
Enum(avr_mcu) String(atmega48p) Value(57)
EnumValue
Enum(avr_mcu) String(atmega88) Value(58)
EnumValue
Enum(avr_mcu) String(atmega88a) Value(59)
EnumValue
Enum(avr_mcu) String(atmega88p) Value(60)
EnumValue
Enum(avr_mcu) String(atmega88pa) Value(61)
EnumValue
Enum(avr_mcu) String(atmega8515) Value(62)
EnumValue
Enum(avr_mcu) String(atmega8535) Value(63)
EnumValue
Enum(avr_mcu) String(atmega8hva) Value(64)
EnumValue
Enum(avr_mcu) String(at90pwm1) Value(65)
EnumValue
Enum(avr_mcu) String(at90pwm2) Value(66)
EnumValue
Enum(avr_mcu) String(at90pwm2b) Value(67)
EnumValue
Enum(avr_mcu) String(at90pwm3) Value(68)
EnumValue
Enum(avr_mcu) String(at90pwm3b) Value(69)
EnumValue
Enum(avr_mcu) String(at90pwm81) Value(70)
EnumValue
Enum(avr_mcu) String(avr5) Value(71)
EnumValue
Enum(avr_mcu) String(atmega16) Value(72)
EnumValue
Enum(avr_mcu) String(atmega16a) Value(73)
EnumValue
Enum(avr_mcu) String(atmega161) Value(74)
EnumValue
Enum(avr_mcu) String(atmega162) Value(75)
EnumValue
Enum(avr_mcu) String(atmega163) Value(76)
EnumValue
Enum(avr_mcu) String(atmega164a) Value(77)
EnumValue
Enum(avr_mcu) String(atmega164p) Value(78)
EnumValue
Enum(avr_mcu) String(atmega165) Value(79)
EnumValue
Enum(avr_mcu) String(atmega165a) Value(80)
EnumValue
Enum(avr_mcu) String(atmega165p) Value(81)
EnumValue
Enum(avr_mcu) String(atmega168) Value(82)
EnumValue
Enum(avr_mcu) String(atmega168a) Value(83)
EnumValue
Enum(avr_mcu) String(atmega168p) Value(84)
EnumValue
Enum(avr_mcu) String(atmega169) Value(85)
EnumValue
Enum(avr_mcu) String(atmega169a) Value(86)
EnumValue
Enum(avr_mcu) String(atmega169p) Value(87)
EnumValue
Enum(avr_mcu) String(atmega169pa) Value(88)
EnumValue
Enum(avr_mcu) String(atmega32) Value(89)
EnumValue
Enum(avr_mcu) String(atmega323) Value(90)
EnumValue
Enum(avr_mcu) String(atmega324a) Value(91)
EnumValue
Enum(avr_mcu) String(atmega324p) Value(92)
EnumValue
Enum(avr_mcu) String(atmega324pa) Value(93)
EnumValue
Enum(avr_mcu) String(atmega325) Value(94)
EnumValue
Enum(avr_mcu) String(atmega325a) Value(95)
EnumValue
Enum(avr_mcu) String(atmega325p) Value(96)
EnumValue
Enum(avr_mcu) String(atmega3250) Value(97)
EnumValue
Enum(avr_mcu) String(atmega3250a) Value(98)
EnumValue
Enum(avr_mcu) String(atmega3250p) Value(99)
EnumValue
Enum(avr_mcu) String(atmega328) Value(100)
EnumValue
Enum(avr_mcu) String(atmega328p) Value(101)
EnumValue
Enum(avr_mcu) String(atmega329) Value(102)
EnumValue
Enum(avr_mcu) String(atmega329a) Value(103)
EnumValue
Enum(avr_mcu) String(atmega329p) Value(104)
EnumValue
Enum(avr_mcu) String(atmega329pa) Value(105)
EnumValue
Enum(avr_mcu) String(atmega3290) Value(106)
EnumValue
Enum(avr_mcu) String(atmega3290a) Value(107)
EnumValue
Enum(avr_mcu) String(atmega3290p) Value(108)
EnumValue
Enum(avr_mcu) String(atmega406) Value(109)
EnumValue
Enum(avr_mcu) String(atmega64) Value(110)
EnumValue
Enum(avr_mcu) String(atmega640) Value(111)
EnumValue
Enum(avr_mcu) String(atmega644) Value(112)
EnumValue
Enum(avr_mcu) String(atmega644a) Value(113)
EnumValue
Enum(avr_mcu) String(atmega644p) Value(114)
EnumValue
Enum(avr_mcu) String(atmega644pa) Value(115)
EnumValue
Enum(avr_mcu) String(atmega645) Value(116)
EnumValue
Enum(avr_mcu) String(atmega645a) Value(117)
EnumValue
Enum(avr_mcu) String(atmega645p) Value(118)
EnumValue
Enum(avr_mcu) String(atmega6450) Value(119)
EnumValue
Enum(avr_mcu) String(atmega6450a) Value(120)
EnumValue
Enum(avr_mcu) String(atmega6450p) Value(121)
EnumValue
Enum(avr_mcu) String(atmega649) Value(122)
EnumValue
Enum(avr_mcu) String(atmega649a) Value(123)
EnumValue
Enum(avr_mcu) String(atmega649p) Value(124)
EnumValue
Enum(avr_mcu) String(atmega6490) Value(125)
EnumValue
Enum(avr_mcu) String(atmega16hva) Value(126)
EnumValue
Enum(avr_mcu) String(atmega16hva2) Value(127)
EnumValue
Enum(avr_mcu) String(atmega16hvb) Value(128)
EnumValue
Enum(avr_mcu) String(atmega32hvb) Value(129)
EnumValue
Enum(avr_mcu) String(atmega64hve) Value(130)
EnumValue
Enum(avr_mcu) String(at90can32) Value(131)
EnumValue
Enum(avr_mcu) String(at90can64) Value(132)
EnumValue
Enum(avr_mcu) String(at90pwm216) Value(133)
EnumValue
Enum(avr_mcu) String(at90pwm316) Value(134)
EnumValue
Enum(avr_mcu) String(atmega32c1) Value(135)
EnumValue
Enum(avr_mcu) String(atmega64c1) Value(136)
EnumValue
Enum(avr_mcu) String(atmega16m1) Value(137)
EnumValue
Enum(avr_mcu) String(atmega32m1) Value(138)
EnumValue
Enum(avr_mcu) String(atmega64m1) Value(139)
EnumValue
Enum(avr_mcu) String(atmega16u4) Value(140)
EnumValue
Enum(avr_mcu) String(atmega32u4) Value(141)
EnumValue
Enum(avr_mcu) String(atmega32u6) Value(142)
EnumValue
Enum(avr_mcu) String(at90scr100) Value(143)
EnumValue
Enum(avr_mcu) String(at90usb646) Value(144)
EnumValue
Enum(avr_mcu) String(at90usb647) Value(145)
EnumValue
Enum(avr_mcu) String(at94k) Value(146)
EnumValue
Enum(avr_mcu) String(m3000) Value(147)
EnumValue
Enum(avr_mcu) String(avr51) Value(148)
EnumValue
Enum(avr_mcu) String(atmega128) Value(149)
EnumValue
Enum(avr_mcu) String(atmega1280) Value(150)
EnumValue
Enum(avr_mcu) String(atmega1281) Value(151)
EnumValue
Enum(avr_mcu) String(atmega1284p) Value(152)
EnumValue
Enum(avr_mcu) String(atmega128rfa1) Value(153)
EnumValue
Enum(avr_mcu) String(at90can128) Value(154)
EnumValue
Enum(avr_mcu) String(at90usb1286) Value(155)
EnumValue
Enum(avr_mcu) String(at90usb1287) Value(156)
EnumValue
Enum(avr_mcu) String(avr6) Value(157)
EnumValue
Enum(avr_mcu) String(atmega2560) Value(158)
EnumValue
Enum(avr_mcu) String(atmega2561) Value(159)
EnumValue
Enum(avr_mcu) String(avr1) Value(160)
EnumValue
Enum(avr_mcu) String(at90s1200) Value(161)
EnumValue
Enum(avr_mcu) String(attiny11) Value(162)
EnumValue
Enum(avr_mcu) String(attiny12) Value(163)
EnumValue
Enum(avr_mcu) String(attiny15) Value(164)
EnumValue
Enum(avr_mcu) String(attiny28) Value(165)

View File

@ -106,7 +106,6 @@ static rtx avr_function_arg (cumulative_args_t , enum machine_mode,
const_tree, bool); const_tree, bool);
static void avr_function_arg_advance (cumulative_args_t, enum machine_mode, static void avr_function_arg_advance (cumulative_args_t, enum machine_mode,
const_tree, bool); const_tree, bool);
static void avr_help (void);
static bool avr_function_ok_for_sibcall (tree, tree); static bool avr_function_ok_for_sibcall (tree, tree);
static void avr_asm_named_section (const char *name, unsigned int flags, tree decl); static void avr_asm_named_section (const char *name, unsigned int flags, tree decl);
@ -250,9 +249,6 @@ static const struct attribute_spec avr_attribute_table[] =
#undef TARGET_CANNOT_MODIFY_JUMPS_P #undef TARGET_CANNOT_MODIFY_JUMPS_P
#define TARGET_CANNOT_MODIFY_JUMPS_P avr_cannot_modify_jumps_p #define TARGET_CANNOT_MODIFY_JUMPS_P avr_cannot_modify_jumps_p
#undef TARGET_HELP
#define TARGET_HELP avr_help
#undef TARGET_FUNCTION_OK_FOR_SIBCALL #undef TARGET_FUNCTION_OK_FOR_SIBCALL
#define TARGET_FUNCTION_OK_FOR_SIBCALL avr_function_ok_for_sibcall #define TARGET_FUNCTION_OK_FOR_SIBCALL avr_function_ok_for_sibcall
@ -268,21 +264,9 @@ struct gcc_target targetm = TARGET_INITIALIZER;
static void static void
avr_option_override (void) avr_option_override (void)
{ {
const struct mcu_type_s *t;
flag_delete_null_pointer_checks = 0; flag_delete_null_pointer_checks = 0;
for (t = avr_mcu_types; t->name; t++) avr_current_device = &avr_mcu_types[avr_mcu_index];
if (strcmp (t->name, avr_mcu_name) == 0)
break;
if (!t->name)
{
error ("unrecognized argument to -mmcu= option: %qs", avr_mcu_name);
inform (input_location, "See --target-help for supported MCUs");
}
avr_current_device = t;
avr_current_arch = &avr_arch_types[avr_current_device->arch]; avr_current_arch = &avr_arch_types[avr_current_device->arch];
avr_extra_arch_macro = avr_current_device->macro; avr_extra_arch_macro = avr_current_device->macro;
@ -292,42 +276,6 @@ avr_option_override (void)
init_machine_status = avr_init_machine_status; init_machine_status = avr_init_machine_status;
} }
/* Implement TARGET_HELP */
/* Report extra information for --target-help */
static void
avr_help (void)
{
const struct mcu_type_s *t;
const char * const indent = " ";
int len;
/* Give a list of MCUs that are accepted by -mmcu=* .
Note that MCUs supported by the compiler might differ from
MCUs supported by binutils. */
len = strlen (indent);
printf ("Known MCU names:\n%s", indent);
/* Print a blank-separated list of all supported MCUs */
for (t = avr_mcu_types; t->name; t++)
{
printf ("%s ", t->name);
len += 1 + strlen (t->name);
/* Break long lines */
if (len > 66 && (t+1)->name)
{
printf ("\n%s", indent);
len = strlen (indent);
}
}
printf ("\n\n");
}
/* return register class from register number. */ /* return register class from register number. */
static const enum reg_class reg_class_tab[]={ static const enum reg_class reg_class_tab[]={
@ -5320,11 +5268,11 @@ static void
avr_file_start (void) avr_file_start (void)
{ {
if (avr_current_arch->asm_only) if (avr_current_arch->asm_only)
error ("MCU %qs supported for assembler only", avr_mcu_name); error ("MCU %qs supported for assembler only", avr_current_device->name);
default_file_start (); default_file_start ();
/* fprintf (asm_out_file, "\t.arch %s\n", avr_mcu_name);*/ /* fprintf (asm_out_file, "\t.arch %s\n", avr_current_device->name);*/
fputs ("__SREG__ = 0x3f\n" fputs ("__SREG__ = 0x3f\n"
"__SP_H__ = 0x3e\n" "__SP_H__ = 0x3e\n"
"__SP_L__ = 0x3d\n", asm_out_file); "__SP_L__ = 0x3d\n", asm_out_file);

View File

@ -1,6 +1,6 @@
; Options for the ATMEL AVR port of the compiler. ; Options for the ATMEL AVR port of the compiler.
; Copyright (C) 2005, 2007, 2008, 2010 Free Software Foundation, Inc. ; Copyright (C) 2005, 2007, 2008, 2010, 2011 Free Software Foundation, Inc.
; ;
; This file is part of GCC. ; This file is part of GCC.
; ;
@ -23,7 +23,7 @@ Target Report Mask(CALL_PROLOGUES)
Use subroutines for function prologues and epilogues Use subroutines for function prologues and epilogues
mmcu= mmcu=
Target RejectNegative Joined Var(avr_mcu_name) Init("avr2") Target RejectNegative Joined Var(avr_mcu_index) Init(0) Enum(avr_mcu)
-mmcu=MCU Select the target MCU -mmcu=MCU Select the target MCU
mdeb mdeb

59
gcc/config/avr/genopt.sh Normal file
View File

@ -0,0 +1,59 @@
#!/bin/sh
# Generate avr-tables.opt from the list in avr-mcus.def.
# Copyright (C) 2011 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GCC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
cat <<EOF
; -*- buffer-read-only: t -*-
; Generated automatically by genopt.sh from avr-mcus.def.
; Copyright (C) 2011 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
; for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3. If not see
; <http://www.gnu.org/licenses/>.
Enum
Name(avr_mcu) Type(int)
Known MCU names:
EOF
awk -F'[(, ]+' 'BEGIN {
value = 0
}
/^AVR_MCU/ {
name = $2
gsub("\"", "", name)
print "EnumValue"
print "Enum(avr_mcu) String(" name ") Value(" value ")"
print ""
value++
}' $1/avr-mcus.def

View File

@ -1,5 +1,5 @@
# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
# 2009, 2010 Free Software Foundation, Inc. # 2009, 2010, 2011 Free Software Foundation, Inc.
# #
# This file is part of GCC. # This file is part of GCC.
# #
@ -22,6 +22,7 @@ driver-avr.o: $(srcdir)/config/avr/driver-avr.c \
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
avr-devices.o: $(srcdir)/config/avr/avr-devices.c \ avr-devices.o: $(srcdir)/config/avr/avr-devices.c \
$(srcdir)/config/avr/avr-mcus.def \
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
@ -29,6 +30,10 @@ avr-c.o: $(srcdir)/config/avr/avr-c.c \
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_COMMON_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_COMMON_H)
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
$(srcdir)/config/avr/avr-tables.opt: $(srcdir)/config/avr/genopt.sh \
$(srcdir)/config/avr/avr-mcus.def
$(SHELL) $(srcdir)/config/avr/genopt.sh $(srcdir)/config/avr > \
$(srcdir)/config/avr/avr-tables.opt
LIB1ASMSRC = avr/libgcc.S LIB1ASMSRC = avr/libgcc.S
LIB1ASMFUNCS = \ LIB1ASMFUNCS = \

View File

@ -766,13 +766,6 @@ Set target-dependent initial values of fields in @var{opts}.
Set target-dependent default values for @option{--param} settings, using calls to @code{set_default_param_value}. Set target-dependent default values for @option{--param} settings, using calls to @code{set_default_param_value}.
@end deftypefn @end deftypefn
@deftypefn {Target Hook} void TARGET_HELP (void)
This hook is called in response to the user invoking
@option{--target-help} on the command line. It gives the target a
chance to display extra information on the target specific command
line options found in its @file{.opt} file.
@end deftypefn
@defmac SWITCHABLE_TARGET @defmac SWITCHABLE_TARGET
Some targets need to switch between substantially different subtargets Some targets need to switch between substantially different subtargets
during compilation. For example, the MIPS target has one subtarget for during compilation. For example, the MIPS target has one subtarget for

View File

@ -754,13 +754,6 @@ options are changed via @code{#pragma GCC optimize} or by using the
@hook TARGET_OPTION_DEFAULT_PARAMS @hook TARGET_OPTION_DEFAULT_PARAMS
@hook TARGET_HELP
This hook is called in response to the user invoking
@option{--target-help} on the command line. It gives the target a
chance to display extra information on the target specific command
line options found in its @file{.opt} file.
@end deftypefn
@defmac SWITCHABLE_TARGET @defmac SWITCHABLE_TARGET
Some targets need to switch between substantially different subtargets Some targets need to switch between substantially different subtargets
during compilation. For example, the MIPS target has one subtarget for during compilation. For example, the MIPS target has one subtarget for

View File

@ -34,7 +34,6 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic.h" #include "diagnostic.h"
#include "opts-diagnostic.h" #include "opts-diagnostic.h"
#include "insn-attr.h" /* For INSN_SCHEDULING and DELAY_SLOTS. */ #include "insn-attr.h" /* For INSN_SCHEDULING and DELAY_SLOTS. */
#include "target.h"
#include "common/common-target.h" #include "common/common-target.h"
/* Parse the -femit-struct-debug-detailed option value /* Parse the -femit-struct-debug-detailed option value
@ -1269,10 +1268,6 @@ common_handle_option (struct gcc_options *opts,
case OPT__target_help: case OPT__target_help:
print_specific_help (CL_TARGET, CL_UNDOCUMENTED, 0, opts, lang_mask); print_specific_help (CL_TARGET, CL_UNDOCUMENTED, 0, opts, lang_mask);
opts->x_exit_after_options = true; opts->x_exit_after_options = true;
/* Allow the target a chance to give the user some additional information. */
if (targetm.help)
targetm.help ();
break; break;
case OPT__help_: case OPT__help_:

View File

@ -839,7 +839,7 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
TARGET_PROMOTE_FUNCTION_ARGS TARGET_PROMOTE_FUNCTION_RETURN \ TARGET_PROMOTE_FUNCTION_ARGS TARGET_PROMOTE_FUNCTION_RETURN \
LANG_HOOKS_MISSING_ARGUMENT LANG_HOOKS_HASH_TYPES \ LANG_HOOKS_MISSING_ARGUMENT LANG_HOOKS_HASH_TYPES \
TARGET_HANDLE_OFAST TARGET_OPTION_OPTIMIZATION \ TARGET_HANDLE_OFAST TARGET_OPTION_OPTIMIZATION \
TARGET_IRA_COVER_CLASSES TARGET_IRA_COVER_CLASSES TARGET_HELP
/* Hooks into libgcc2. */ /* Hooks into libgcc2. */
#pragma GCC poison LIBGCC2_DOUBLE_TYPE_SIZE LIBGCC2_WORDS_BIG_ENDIAN \ #pragma GCC poison LIBGCC2_DOUBLE_TYPE_SIZE LIBGCC2_WORDS_BIG_ENDIAN \

View File

@ -1021,13 +1021,6 @@ DEFHOOK
void, (void), void, (void),
hook_void_void) hook_void_void)
/* Display extra, target specific information in response to a
--target-help switch. */
DEFHOOK
(help,
"",
void, (void), NULL)
DEFHOOK_UNDOC DEFHOOK_UNDOC
(eh_return_filter_mode, (eh_return_filter_mode,
"Return machine mode for filter value.", "Return machine mode for filter value.",