From 8c21550d5b849e6b38a88d8b1c3668a169dec5fd Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Mon, 22 May 2006 19:51:36 +0400 Subject: [PATCH] avr.c (avr_mcu_types): Add support for attiny261... * config/avr/avr.c (avr_mcu_types): Add support for attiny261, attiny461, attiny861, attiny25, attiny45, attiny85, attiny24, attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p, atmega164p, atmega324p, atmega644p, atmega644, atmega329, atmega3290, atmega649, atmega6490, atmega406, atmega640, atmega1280, atmega1281, at90can32, at90can64, at90usb646, at90usb647, at90usb1286 and at90usb1287 devices. * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). From-SVN: r113982 --- gcc/ChangeLog | 13 ++++++ gcc/config/avr/avr.c | 33 ++++++++++++++- gcc/config/avr/avr.h | 98 +++++++++++++++++++++++++++++++++++++++++--- gcc/config/avr/t-avr | 58 ++++++++++++++++++++------ 4 files changed, 183 insertions(+), 19 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d696e7738ea..44e45256b36 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2006-18-05 Joerg Wunsch + Anatoly Sokolov + + * config/avr/avr.c (avr_mcu_types): Add support for attiny261, + attiny461, attiny861, attiny25, attiny45, attiny85, attiny24, + attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p, + atmega164p, atmega324p, atmega644p, atmega644, atmega329, + atmega3290, atmega649, atmega6490, atmega406, atmega640, + atmega1280, atmega1281, at90can32, at90can64, at90usb646, + at90usb647, at90usb1286 and at90usb1287 devices. + * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). + * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). + 2006-05-22 Richard Sandiford * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment. diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 0712a10d164..2f981dd9738 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -172,10 +172,19 @@ static const struct mcu_type_s avr_mcu_types[] = { { "at90s8515", 2, "__AVR_AT90S8515__" }, { "at90c8534", 2, "__AVR_AT90C8534__" }, { "at90s8535", 2, "__AVR_AT90S8535__" }, - { "at86rf401", 2, "__AVR_AT86RF401__" }, /* Classic + MOVW, <= 8K. */ { "attiny13", 2, "__AVR_ATtiny13__" }, { "attiny2313", 2, "__AVR_ATtiny2313__" }, + { "attiny24", 2, "__AVR_ATtiny24__" }, + { "attiny44", 2, "__AVR_ATtiny44__" }, + { "attiny84", 2, "__AVR_ATtiny84__" }, + { "attiny25", 2, "__AVR_ATtiny25__" }, + { "attiny45", 2, "__AVR_ATtiny45__" }, + { "attiny85", 2, "__AVR_ATtiny85__" }, + { "attiny261", 2, "__AVR_ATtiny261__" }, + { "attiny461", 2, "__AVR_ATtiny461__" }, + { "attiny861", 2, "__AVR_ATtiny861__" }, + { "at86rf401", 2, "__AVR_AT86RF401__" }, /* Classic, > 8K. */ { "avr3", 3, NULL }, { "atmega103", 3, "__AVR_ATmega103__" }, @@ -190,24 +199,46 @@ static const struct mcu_type_s avr_mcu_types[] = { { "atmega88", 4, "__AVR_ATmega88__" }, { "atmega8515", 4, "__AVR_ATmega8515__" }, { "atmega8535", 4, "__AVR_ATmega8535__" }, + { "at90pwm2", 4, "__AVR_AT90PWM2__" }, + { "at90pwm3", 4, "__AVR_AT90PWM3__" }, /* 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__" }, { "atmega3250", 5, "__AVR_ATmega3250__" }, + { "atmega329", 5, "__AVR_ATmega329__" }, + { "atmega3290", 5, "__AVR_ATmega3290__" }, + { "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__" }, + { "at90usb646", 5, "__AVR_AT90USB646__" }, + { "at90usb647", 5, "__AVR_AT90USB647__" }, + { "at90usb1286", 5, "__AVR_AT90USB1286__" }, + { "at90usb1287", 5, "__AVR_AT90USB1287__" }, { "at94k", 5, "__AVR_AT94K__" }, /* Assembler only. */ { "avr1", 1, NULL }, diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h index 404b3d1c13d..186cfc6834e 100644 --- a/gcc/config/avr/avr.h +++ b/gcc/config/avr/avr.h @@ -719,12 +719,67 @@ extern int avr_case_values_threshold; #define ASM_SPEC "%{mmcu=*:-mmcu=%*}" #define LINK_SPEC " %{!mmcu*:-m avr2}\ -%{mmcu=at90s1200|mmcu=attiny11|mmcu=attiny12|mmcu=attiny15|mmcu=attiny28:-m avr1} \ -%{mmcu=attiny22|mmcu=attiny26|mmcu=at90s2*|mmcu=at90s4*|mmcu=at90s8*|mmcu=at90c8*|mmcu=at86rf401|mmcu=attiny13|mmcu=attiny2313:-m avr2}\ -%{mmcu=atmega103|mmcu=atmega603|mmcu=at43*|mmcu=at76*:-m avr3}\ -%{mmcu=atmega8*|mmcu=atmega48:-m avr4}\ -%{mmcu=atmega16*|mmcu=atmega32*|mmcu=atmega64*|mmcu=atmega128|mmcu=at90can128|mmcu=at94k:-m avr5}\ -%{mmcu=atmega325|mmcu=atmega3250|mmcu=atmega48|mmcu=atmega88|mmcu=atmega64|mmcu=atmega645|mmcu=atmega6450|mmcu=atmega128|mmcu=at90can128|mmcu=at90can128|mmcu=atmega162|mmcu=atmega165|mmcu=atmega168|mmcu=atmega169: -Tdata 0x800100} " +%{mmcu=at90s1200|\ + mmcu=attiny11|\ + mmcu=attiny12|\ + mmcu=attiny15|\ + mmcu=attiny28:-m avr1}\ +%{mmcu=attiny22|\ + mmcu=attiny26|\ + mmcu=at90s2*|\ + mmcu=at90s4*|\ + mmcu=at90s8*|\ + mmcu=at90c8*|\ + mmcu=at86rf401|\ + mmcu=attiny13|\ + mmcu=attiny2313|\ + mmcu=attiny24|\ + mmcu=attiny25|\ + mmcu=attiny261|\ + mmcu=attiny4*|\ + mmcu=attiny8*:-m avr2}\ +%{mmcu=atmega103|\ + mmcu=atmega603|\ + mmcu=at43*|\ + mmcu=at76*:-m avr3}\ +%{mmcu=atmega8*|\ + mmcu=atmega48|\ + mmcu=at90pwm2|\ + mmcu=at90pwm3:-m avr4}\ +%{mmcu=atmega16*|\ + mmcu=atmega32*|\ + mmcu=atmega406|\ + mmcu=atmega64*|\ + mmcu=atmega128*|\ + mmcu=at90can*|\ + mmcu=at90usb*|\ + 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=atmega128|\ + mmcu=atmega162|\ + mmcu=atmega164*|\ + mmcu=atmega165*|\ + mmcu=atmega168|\ + mmcu=atmega169*|\ + mmcu=at90can*|\ + mmcu=at90pwm*|\ + mmcu=at90usb*: -Tdata 0x800100}\ +%{mmcu=atmega640|\ + mmcu=atmega1280|\ + mmcu=atmega1281: -Tdata 0x800200} " #define LIB_SPEC \ "%{!mmcu=at90s1*:%{!mmcu=attiny11:%{!mmcu=attiny12:%{!mmcu=attiny15:%{!mmcu=attiny28: -lc }}}}}" @@ -760,6 +815,15 @@ extern int avr_case_values_threshold; %{mmcu=at86rf401:crt86401.o%s} \ %{mmcu=attiny13:crttn13.o%s} \ %{mmcu=attiny2313:crttn2313.o%s} \ +%{mmcu=attiny24:crttn24.o%s} \ +%{mmcu=attiny44:crttn44.o%s} \ +%{mmcu=attiny84:crttn84.o%s} \ +%{mmcu=attiny25:crttn25.o%s} \ +%{mmcu=attiny45:crttn45.o%s} \ +%{mmcu=attiny85:crttn85.o%s} \ +%{mmcu=attiny261:crttn261.o%s} \ +%{mmcu=attiny461:crttn461.o%s} \ +%{mmcu=attiny861:crttn861.o%s} \ %{mmcu=atmega103|mmcu=avr3:crtm103.o%s} \ %{mmcu=atmega603:crtm603.o%s} \ %{mmcu=at43usb320:crt43320.o%s} \ @@ -770,22 +834,44 @@ extern int avr_case_values_threshold; %{mmcu=atmega88:crtm88.o%s} \ %{mmcu=atmega8515:crtm8515.o%s} \ %{mmcu=atmega8535:crtm8535.o%s} \ +%{mmcu=at90pwm2:crt90pwm2.o%s} \ +%{mmcu=at90pwm3:crt90pwm3.o%s} \ %{mmcu=atmega16:crtm16.o%s} \ %{mmcu=atmega161|mmcu=avr5:crtm161.o%s} \ %{mmcu=atmega162:crtm162.o%s} \ %{mmcu=atmega163:crtm163.o%s} \ +%{mmcu=atmega164p:crtm164p.o%s} \ %{mmcu=atmega165:crtm165.o%s} \ +%{mmcu=atmega165p:crtm165p.o%s} \ %{mmcu=atmega168:crtm168.o%s} \ %{mmcu=atmega169:crtm169.o%s} \ +%{mmcu=atmega169p:crtm169p.o%s} \ %{mmcu=atmega32:crtm32.o%s} \ %{mmcu=atmega323:crtm323.o%s} \ +%{mmcu=atmega324p:crtm324p.o%s} \ %{mmcu=atmega325:crtm325.o%s} \ %{mmcu=atmega3250:crtm3250.o%s} \ +%{mmcu=atmega329:crtm329.o%s} \ +%{mmcu=atmega3290:crtm3290.o%s} \ +%{mmcu=atmega406:crtm406.o%s} \ %{mmcu=atmega64:crtm64.o%s} \ +%{mmcu=atmega640:crtm640.o%s} \ +%{mmcu=atmega644:crtm644.o%s} \ +%{mmcu=atmega644p:crtm644p.o%s} \ %{mmcu=atmega645:crtm645.o%s} \ %{mmcu=atmega6450:crtm6450.o%s} \ +%{mmcu=atmega649:crtm649.o%s} \ +%{mmcu=atmega6490:crtm6490.o%s} \ %{mmcu=atmega128:crtm128.o%s} \ +%{mmcu=atmega1280:crtm1280.o%s} \ +%{mmcu=atmega1281:crtm1281.o%s} \ +%{mmcu=at90can32:crtcan32.o%s} \ +%{mmcu=at90can64:crtcan64.o%s} \ %{mmcu=at90can128:crtcan128.o%s} \ +%{mmcu=at90usb646:crtusb646.o%s} \ +%{mmcu=at90usb647:crtusb647.o%s} \ +%{mmcu=at90usb1286:crtusb1286.o%s} \ +%{mmcu=at90usb1287:crtusb1287.o%s} \ %{mmcu=at94k:crtat94k.o%s}" #define EXTRA_SPECS {"crt_binutils", CRT_BINUTILS_SPECS}, diff --git a/gcc/config/avr/t-avr b/gcc/config/avr/t-avr index 0627b9b0468..a8fb8e9c416 100644 --- a/gcc/config/avr/t-avr +++ b/gcc/config/avr/t-avr @@ -42,21 +42,55 @@ MULTILIB_DIRNAMES = avr2 avr3 avr4 avr5 # The many avr2 matches are not listed here - this is the default. MULTILIB_MATCHES = \ - mmcu?avr3=mmcu?atmega103 mmcu?avr3=mmcu?atmega603 \ - mmcu?avr3=mmcu?at43usb320 mmcu?avr3=mmcu?at43usb355 \ + mmcu?avr3=mmcu?atmega103 \ + mmcu?avr3=mmcu?atmega603 \ + mmcu?avr3=mmcu?at43usb320 \ + mmcu?avr3=mmcu?at43usb355 \ mmcu?avr3=mmcu?at76c711 \ - mmcu?avr4=mmcu?atmega8515 mmcu?avr4=mmcu?atmega8535 \ - mmcu?avr4=mmcu?atmega8 mmcu?avr4=mmcu?atmega48 \ + mmcu?avr4=mmcu?atmega48 \ + mmcu?avr4=mmcu?atmega8 \ + mmcu?avr4=mmcu?atmega8515 \ + mmcu?avr4=mmcu?atmega8535 \ mmcu?avr4=mmcu?atmega88 \ - mmcu?avr5=mmcu?atmega161 mmcu?avr5=mmcu?atmega162 \ - mmcu?avr5=mmcu?atmega163 mmcu?avr5=mmcu?atmega169 \ - mmcu?avr5=mmcu?atmega16 mmcu?avr5=mmcu?atmega168 \ + mmcu?avr4=mmcu?at90pwm2 \ + mmcu?avr4=mmcu?at90pwm3 \ + mmcu?avr5=mmcu?atmega16 \ + mmcu?avr5=mmcu?atmega161 \ + mmcu?avr5=mmcu?atmega162 \ + mmcu?avr5=mmcu?atmega163 \ + mmcu?avr5=mmcu?atmega164p \ mmcu?avr5=mmcu?atmega165 \ - mmcu?avr5=mmcu?atmega323 mmcu?avr5=mmcu?atmega32 \ - mmcu?avr5=mmcu?atmega325 mmcu?avr5=mmcu?atmega3250 \ - mmcu?avr5=mmcu?atmega64 mmcu?avr5=mmcu?atmega128 \ - mmcu?avr5=mmcu?atmega645 mmcu?avr5=mmcu?atmega6450 \ - mmcu?avr5=mmcu?at94k mmcu?avr5=mmcu?at90can128 + mmcu?avr5=mmcu?atmega165p \ + mmcu?avr5=mmcu?atmega168 \ + mmcu?avr5=mmcu?atmega169 \ + mmcu?avr5=mmcu?atmega169p \ + mmcu?avr5=mmcu?atmega32 \ + mmcu?avr5=mmcu?atmega323 \ + mmcu?avr5=mmcu?atmega324p \ + mmcu?avr5=mmcu?atmega325 \ + mmcu?avr5=mmcu?atmega3250 \ + mmcu?avr5=mmcu?atmega329 \ + mmcu?avr5=mmcu?atmega3290 \ + mmcu?avr5=mmcu?atmega406 \ + mmcu?avr5=mmcu?atmega64 \ + mmcu?avr5=mmcu?atmega640 \ + mmcu?avr5=mmcu?atmega644 \ + mmcu?avr5=mmcu?atmega644p \ + mmcu?avr5=mmcu?atmega645 \ + mmcu?avr5=mmcu?atmega6450 \ + mmcu?avr5=mmcu?atmega649 \ + mmcu?avr5=mmcu?atmega6490 \ + mmcu?avr5=mmcu?atmega128 \ + mmcu?avr5=mmcu?atmega1280 \ + mmcu?avr5=mmcu?atmega1281 \ + mmcu?avr5=mmcu?at90can32 \ + mmcu?avr5=mmcu?at90can64 \ + mmcu?avr5=mmcu?at90can128 \ + mmcu?avr5=mmcu?at90usb646 \ + mmcu?avr5=mmcu?at90usb647 \ + mmcu?avr5=mmcu?at90usb1286 \ + mmcu?avr5=mmcu?at90usb1287 \ + mmcu?avr5=mmcu?at94k MULTILIB_EXCEPTIONS = -- 2.30.2