From f15a9aa2e42e41f3313a1686addcf56ac7c70fce Mon Sep 17 00:00:00 2001
From: Anatoly Sokolov <aesok@post.ru>
Date: Wed, 17 Dec 2008 00:05:59 +0300
Subject: [PATCH] avr.c (avr_mcu_t): Add attiny87...

	* config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
	atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b
	devices.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

From-SVN: r142783
---
 gcc/ChangeLog        |  8 ++++++++
 gcc/config/avr/avr.c |  9 +++++++++
 gcc/config/avr/avr.h | 37 +++++++++++++++++++++++++++++--------
 gcc/config/avr/t-avr |  9 +++++++++
 4 files changed, 55 insertions(+), 8 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 53561dd4c601..27fd45a409dd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2008-12-12  Anatoly Sokolov  <aesok@post.ru>
+
+	* config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
+	atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b
+	devices.
+	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
+	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
+
 2008-12-16  Hariharan Sandanagobalane <hariharan@picochip.com>
 
 	PR target/38842
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 16eff6b268bf..8ec6e2cf8dbe 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -188,6 +188,7 @@ static const struct mcu_type_s avr_mcu_types[] = {
   { "attiny461",    ARCH_AVR25, "__AVR_ATtiny461__" },
   { "attiny861",    ARCH_AVR25, "__AVR_ATtiny861__" },
   { "attiny43u",    ARCH_AVR25, "__AVR_ATtiny43U__" },
+  { "attiny87",     ARCH_AVR25, "__AVR_ATtiny87__" },
   { "attiny48",     ARCH_AVR25, "__AVR_ATtiny48__" },
   { "attiny88",     ARCH_AVR25, "__AVR_ATtiny88__" },
   { "at86rf401",    ARCH_AVR25, "__AVR_AT86RF401__" },
@@ -204,6 +205,7 @@ static const struct mcu_type_s avr_mcu_types[] = {
   { "at90usb82",    ARCH_AVR35, "__AVR_AT90USB82__" },
   { "at90usb162",   ARCH_AVR35, "__AVR_AT90USB162__" },
   { "attiny167",    ARCH_AVR35, "__AVR_ATtiny167__" },
+  { "attiny327",    ARCH_AVR35, "__AVR_ATtiny327__" },
     /* Enhanced, <= 8K.  */
   { "avr4",         ARCH_AVR4, NULL },
   { "atmega8",      ARCH_AVR4, "__AVR_ATmega8__" },
@@ -221,6 +223,7 @@ static const struct mcu_type_s avr_mcu_types[] = {
   { "at90pwm2b",    ARCH_AVR4, "__AVR_AT90PWM2B__" },
   { "at90pwm3",     ARCH_AVR4, "__AVR_AT90PWM3__" },
   { "at90pwm3b",    ARCH_AVR4, "__AVR_AT90PWM3B__" },
+  { "at90pwm81",    ARCH_AVR4, "__AVR_AT90PWM81__" },
     /* Enhanced, > 8K, <= 64K.  */
   { "avr5",         ARCH_AVR5, NULL },
   { "atmega16",     ARCH_AVR5, "__AVR_ATmega16__" },
@@ -264,11 +267,13 @@ static const struct mcu_type_s avr_mcu_types[] = {
   { "at90pwm316",   ARCH_AVR5, "__AVR_AT90PWM316__" },
   { "atmega32c1",   ARCH_AVR5, "__AVR_ATmega32C1__" },
   { "atmega64c1",   ARCH_AVR5, "__AVR_ATmega64C1__" },
+  { "atmega16m1",   ARCH_AVR5, "__AVR_ATmega16M1__" },
   { "atmega32m1",   ARCH_AVR5, "__AVR_ATmega32M1__" },
   { "atmega64m1",   ARCH_AVR5, "__AVR_ATmega64M1__" },
   { "atmega16u4",   ARCH_AVR5, "__AVR_ATmega16U4__" },
   { "atmega32u4",   ARCH_AVR5, "__AVR_ATmega32U4__" },
   { "atmega32u6",   ARCH_AVR5, "__AVR_ATmega32U6__" },
+  { "at90scr100",   ARCH_AVR5, "__AVR_AT90SCR100__" },
   { "at90usb646",   ARCH_AVR5, "__AVR_AT90USB646__" },
   { "at90usb647",   ARCH_AVR5, "__AVR_AT90USB647__" },
   { "at94k",        ARCH_AVR5, "__AVR_AT94K__" },
@@ -278,9 +283,13 @@ static const struct mcu_type_s avr_mcu_types[] = {
   { "atmega1280",   ARCH_AVR51, "__AVR_ATmega1280__" },
   { "atmega1281",   ARCH_AVR51, "__AVR_ATmega1281__" },
   { "atmega1284p",  ARCH_AVR51, "__AVR_ATmega1284P__" },
+  { "atmega128rfa1",  ARCH_AVR51, "__AVR_ATmega128RFA1__" },
   { "at90can128",   ARCH_AVR51, "__AVR_AT90CAN128__" },
   { "at90usb1286",  ARCH_AVR51, "__AVR_AT90USB1286__" },
   { "at90usb1287",  ARCH_AVR51, "__AVR_AT90USB1287__" },
+  { "m3000f",       ARCH_AVR51, "__AVR_M3000F__" },
+  { "m3000s",       ARCH_AVR51, "__AVR_M3000S__" },
+  { "m3001b",       ARCH_AVR51, "__AVR_M3001B__" },
     /* 3-Byte PC.  */
   { "avr6",         ARCH_AVR6, NULL },
   { "atmega2560",   ARCH_AVR6, "__AVR_ATmega2560__" },
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index 308d9a4f9470..d54870cac30a 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -838,14 +838,16 @@ mmcu=*:-mmcu=%*}"
   mmcu=at76*|\
   mmcu=at90usb82|\
   mmcu=at90usb162|\
-  mmcu=attiny167: -m avr3}\
+  mmcu=attiny16*|\
+  mmcu=attiny32*: -m avr3}\
 %{mmcu=atmega8*|\
   mmcu=atmega4*|\
   mmcu=at90pwm1|\
   mmcu=at90pwm2|\
   mmcu=at90pwm2b|\
   mmcu=at90pwm3|\
-  mmcu=at90pwm3b: -m avr4}\
+  mmcu=at90pwm3b|\
+  mmcu=at90pwm81: -m avr4}\
 %{mmcu=atmega16*|\
   mmcu=atmega32*|\
   mmcu=atmega406|\
@@ -854,9 +856,12 @@ mmcu=*:-mmcu=%*}"
   mmcu=at90can*|\
   mmcu=at90pwm216|\
   mmcu=at90pwm316|\
+  mmcu=at90scr100|\
   mmcu=at90usb64*|\
   mmcu=at90usb128*|\
-  mmcu=at94k: -m avr5}\
+  mmcu=at94k|\
+  mmcu=m3000*|\
+  mmcu=m3001*: -m avr5}\
 %{mmcu=atmega256*:-m avr6}\
 %{mmcu=atmega324*|\
   mmcu=atmega325*|\
@@ -882,20 +887,27 @@ mmcu=*:-mmcu=%*}"
   mmcu=atmega32hv*|\
   mmcu=attiny48|\
   mmcu=attiny88|\
+  mmcu=attiny87|\
   mmcu=attiny167|\
+  mmcu=attiny327|\
   mmcu=at90can*|\
   mmcu=at90pwm*|\
   mmcu=atmega32c1|\
   mmcu=atmega64c1|\
+  mmcu=atmega16m1|\
   mmcu=atmega32m1|\
   mmcu=atmega64m1|\
   mmcu=atmega16u4|\
   mmcu=atmega32u*|\
+  mmcu=at90scr100|\
   mmcu=at90usb*: -Tdata 0x800100}\
 %{mmcu=atmega640|\
   mmcu=atmega1280|\
   mmcu=atmega1281|\
-  mmcu=atmega256*: -Tdata 0x800200} "
+  mmcu=atmega256*|\
+  mmcu=atmega128rfa1: -Tdata 0x800200}\
+%{mmcu=m3000*|\
+  mmcu=m3001*: -Tdata 0x801000}"
 
 #define LIB_SPEC \
   "%{!mmcu=at90s1*:%{!mmcu=attiny11:%{!mmcu=attiny12:%{!mmcu=attiny15:%{!mmcu=attiny28: -lc }}}}}"
@@ -942,15 +954,17 @@ mmcu=*:-mmcu=%*}"
 %{mmcu=attiny461:crttn461.o%s} \
 %{mmcu=attiny861:crttn861.o%s} \
 %{mmcu=attiny43u:crttn43u.o%s} \
+%{mmcu=attiny87:crttn87.o%s} \
 %{mmcu=attiny48:crttn48.o%s} \
 %{mmcu=attiny88:crttn88.o%s} \
-%{mmcu=attiny167:crttn167.o%s} \
 %{mmcu=at43usb355|mmcu=avr3:crt43355.o%s} \
 %{mmcu=at76c711:crt76711.o%s} \
 %{mmcu=atmega103|mmcu=avr31:crtm103.o%s} \
 %{mmcu=at43usb320:crt43320.o%s} \
 %{mmcu=at90usb162|mmcu=avr35:crtusb162.o%s} \
 %{mmcu=at90usb82:crtusb82.o%s} \
+%{mmcu=attiny167:crttn167.o%s} \
+%{mmcu=attiny327:crttn327.o%s} \
 %{mmcu=atmega8|mmcu=avr4:crtm8.o%s} \
 %{mmcu=atmega48:crtm48.o%s} \
 %{mmcu=atmega48p:crtm48p.o%s} \
@@ -963,6 +977,7 @@ mmcu=*:-mmcu=%*}"
 %{mmcu=at90pwm2b:crt90pwm2b.o%s} \
 %{mmcu=at90pwm3:crt90pwm3.o%s} \
 %{mmcu=at90pwm3b:crt90pwm3b.o%s} \
+%{mmcu=at90pwm81:crt90pwm81.o%s} \
 %{mmcu=atmega16:crtm16.o%s} \
 %{mmcu=atmega161|mmcu=avr5:crtm161.o%s} \
 %{mmcu=atmega162:crtm162.o%s} \
@@ -1007,11 +1022,13 @@ mmcu=*:-mmcu=%*}"
 %{mmcu=at90pwm316:crt90pwm316.o%s} \
 %{mmcu=atmega32c1:crtm32c1.o%s} \
 %{mmcu=atmega64c1:crtm64c1.o%s} \
+%{mmcu=atmega16m1:crtm16m1.o%s} \
 %{mmcu=atmega32m1:crtm32m1.o%s} \
 %{mmcu=atmega64m1:crtm64m1.o%s} \
 %{mmcu=atmega16u4:crtm16u4.o%s} \
 %{mmcu=atmega32u4:crtm32u4.o%s} \
 %{mmcu=atmega32u6:crtm32u6.o%s} \
+%{mmcu=at90scr100:crt90scr100.o%s} \
 %{mmcu=at90usb646:crtusb646.o%s} \
 %{mmcu=at90usb647:crtusb647.o%s} \
 %{mmcu=at94k:crtat94k.o%s} \
@@ -1019,11 +1036,15 @@ mmcu=*:-mmcu=%*}"
 %{mmcu=atmega1280:crtm1280.o%s} \
 %{mmcu=atmega1281:crtm1281.o%s} \
 %{mmcu=atmega1284p:crtm1284p.o%s} \
-%{mmcu=atmega2560:crtm2560.o%s} \
-%{mmcu=atmega2561:crtm2561.o%s} \
 %{mmcu=at90can128:crtcan128.o%s} \
+%{mmcu=atmega128rfa1:crtm128rfa1.o%s} \
 %{mmcu=at90usb1286:crtusb1286.o%s} \
-%{mmcu=at90usb1287:crtusb1287.o%s}"
+%{mmcu=at90usb1287:crtusb1287.o%s} \
+%{mmcu=m3000f:crtm3000f.o%s} \
+%{mmcu=m3000s:crtm3000s.o%s} \
+%{mmcu=m3001b:crtm3001b.o%s} \
+%{mmcu=atmega2560|mmcu=avr6:crtm2560.o%s} \
+%{mmcu=atmega2561:crtm2561.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 0106a4006ef3..410a70589acc 100644
--- a/gcc/config/avr/t-avr
+++ b/gcc/config/avr/t-avr
@@ -55,6 +55,7 @@ MULTILIB_MATCHES = \
 	mmcu?avr25=mmcu?attiny461 \
 	mmcu?avr25=mmcu?attiny861 \
 	mmcu?avr25=mmcu?attiny43u \
+	mmcu?avr25=mmcu?attiny87 \
 	mmcu?avr25=mmcu?attiny48 \
 	mmcu?avr25=mmcu?attiny88 \
 	mmcu?avr25=mmcu?at86rf401 \
@@ -65,6 +66,7 @@ MULTILIB_MATCHES = \
 	mmcu?avr35=mmcu?at90usb82 \
 	mmcu?avr35=mmcu?at90usb162 \
 	mmcu?avr35=mmcu?attiny167 \
+	mmcu?avr35=mmcu?attiny327 \
 	mmcu?avr4=mmcu?atmega48 \
 	mmcu?avr4=mmcu?atmega48p \
 	mmcu?avr4=mmcu?atmega8 \
@@ -80,6 +82,7 @@ MULTILIB_MATCHES = \
 	mmcu?avr4=mmcu?at90pwm2b \
 	mmcu?avr4=mmcu?at90pwm3 \
 	mmcu?avr4=mmcu?at90pwm3b \
+	mmcu?avr4=mmcu?at90pwm81 \
 	mmcu?avr5=mmcu?atmega16 \
 	mmcu?avr5=mmcu?atmega161 \
 	mmcu?avr5=mmcu?atmega162 \
@@ -121,11 +124,13 @@ MULTILIB_MATCHES = \
 	mmcu?avr5=mmcu?at90pwm316 \
 	mmcu?avr5=mmcu?atmega32c1 \
 	mmcu?avr5=mmcu?atmega64c1 \
+	mmcu?avr5=mmcu?atmega16m1 \
 	mmcu?avr5=mmcu?atmega32m1 \
 	mmcu?avr5=mmcu?atmega64m1 \
 	mmcu?avr5=mmcu?atmega16u4 \
 	mmcu?avr5=mmcu?atmega32u4 \
 	mmcu?avr5=mmcu?atmega32u6 \
+	mmcu?avr5=mmcu?at90scr100 \
 	mmcu?avr5=mmcu?at90usb646 \
 	mmcu?avr5=mmcu?at90usb647 \
 	mmcu?avr5=mmcu?at94k \
@@ -133,9 +138,13 @@ MULTILIB_MATCHES = \
 	mmcu?avr51=mmcu?atmega1280 \
 	mmcu?avr51=mmcu?atmega1281 \
 	mmcu?avr51=mmcu?atmega1284p \
+	mmcu?avr51=mmcu?atmega128rfa1 \
 	mmcu?avr51=mmcu?at90can128 \
 	mmcu?avr51=mmcu?at90usb1286 \
 	mmcu?avr51=mmcu?at90usb1287 \
+	mmcu?avr51=mmcu?m3000f \
+	mmcu?avr51=mmcu?m3000s \
+	mmcu?avr51=mmcu?m3001b \
  	mmcu?avr6=mmcu?atmega2560 \
  	mmcu?avr6=mmcu?atmega2561
 
-- 
GitLab