From 9628d76b2a8a7b3c2500523817cb76ba4ca49daf Mon Sep 17 00:00:00 2001 From: Anatoly Sokolov Date: Thu, 27 Dec 2007 01:02:14 +0300 Subject: [PATCH] avr.h (LINK_SPEC, [...]): Move AT90USB82 and AT90USB162 devices from 'avr5' to 'avr35' architecture. * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82 and AT90USB162 devices from 'avr5' to 'avr35' architecture. (ASM_SPEC): Add 'avr35' architecture. * config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162 devices from 'avr5' to 'avr35' architecture. (avr_arch_types): Add "avr23" entries. (avr_arch): Add 'ARCH_AVR35'. * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'. (MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5' to 'avr35' architecture. From-SVN: r131189 --- gcc/ChangeLog | 13 +++++++++++++ gcc/config/avr/avr.c | 8 ++++++-- gcc/config/avr/avr.h | 13 ++++++++----- gcc/config/avr/t-avr | 8 ++++---- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 955c34e..2cbba25 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2007-12-26 Anatoly Sokolov + + * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82 + and AT90USB162 devices from 'avr5' to 'avr35' architecture. + (ASM_SPEC): Add 'avr35' architecture. + * config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162 + devices from 'avr5' to 'avr35' architecture. + (avr_arch_types): Add "avr23" entries. + (avr_arch): Add 'ARCH_AVR35'. + * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'. + (MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5' + to 'avr35' architecture. + 2007-12-22 David Daney * doc/install.texi (disable-libgcj-bc): Document new option. diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 4abdf81..a27d2ea 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -128,6 +128,7 @@ static const struct base_arch_s avr_arch_types[] = { { 0, 0, 0, 0, "__AVR_ARCH__=2" }, { 0, 0, 0, 1, "__AVR_ARCH__=25"}, { 0, 0, 1, 0, "__AVR_ARCH__=3" }, + { 0, 0, 1, 1, "__AVR_ARCH__=35"}, { 0, 1, 0, 1, "__AVR_ARCH__=4" }, { 0, 1, 1, 1, "__AVR_ARCH__=5" } }; @@ -142,6 +143,7 @@ enum avr_arch ARCH_AVR2, ARCH_AVR25, ARCH_AVR3, + ARCH_AVR35, ARCH_AVR4, ARCH_AVR5 }; @@ -199,6 +201,10 @@ static const struct mcu_type_s avr_mcu_types[] = { { "at43usb320", ARCH_AVR3, "__AVR_AT43USB320__" }, { "at43usb355", ARCH_AVR3, "__AVR_AT43USB355__" }, { "at76c711", ARCH_AVR3, "__AVR_AT76C711__" }, + /* Classic + MOVW + JMP/CALL. */ + { "avr35", ARCH_AVR35, NULL }, + { "at90usb82", ARCH_AVR35, "__AVR_AT90USB82__" }, + { "at90usb162", ARCH_AVR35, "__AVR_AT90USB162__" }, /* Enhanced, <= 8K. */ { "avr4", ARCH_AVR4, NULL }, { "atmega8", ARCH_AVR4, "__AVR_ATmega8__" }, @@ -259,8 +265,6 @@ static const struct mcu_type_s avr_mcu_types[] = { { "at90can128", ARCH_AVR5, "__AVR_AT90CAN128__" }, { "at90pwm216", ARCH_AVR5, "__AVR_AT90PWM216__" }, { "at90pwm316", ARCH_AVR5, "__AVR_AT90PWM316__" }, - { "at90usb82", ARCH_AVR5, "__AVR_AT90USB82__" }, - { "at90usb162", ARCH_AVR5, "__AVR_AT90USB162__" }, { "at90usb646", ARCH_AVR5, "__AVR_AT90USB646__" }, { "at90usb647", ARCH_AVR5, "__AVR_AT90USB647__" }, { "at90usb1286", ARCH_AVR5, "__AVR_AT90USB1286__" }, diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h index 583dcbd..bbabaef 100644 --- a/gcc/config/avr/avr.h +++ b/gcc/config/avr/avr.h @@ -734,7 +734,7 @@ extern int avr_case_values_threshold; /* A C string constant that tells the GCC driver program options to pass to `cc1plus'. */ -#define ASM_SPEC "%{mmcu=avr25:-mmcu=avr2;\ +#define ASM_SPEC "%{mmcu=avr25:-mmcu=avr2;mmcu=avr35:-mmcu=avr3;\ mmcu=*:-mmcu=%*}" #define LINK_SPEC " %{!mmcu*:-m avr2}\ @@ -759,7 +759,9 @@ mmcu=*:-mmcu=%*}" mmcu=attiny8*:-m avr2}\ %{mmcu=atmega103|\ mmcu=at43*|\ - mmcu=at76*:-m avr3}\ + mmcu=at76*|\ + mmcu=at90usb82|\ + mmcu=at90usb162:-m avr3}\ %{mmcu=atmega8*|\ mmcu=atmega48*|\ mmcu=at90pwm1|\ @@ -775,7 +777,8 @@ mmcu=*:-mmcu=%*}" mmcu=at90can*|\ mmcu=at90pwm216|\ mmcu=at90pwm316|\ - mmcu=at90usb*|\ + mmcu=at90usb64*|\ + mmcu=at90usb128*|\ mmcu=at94k:-m avr5}\ %{mmcu=atmega324*|\ mmcu=atmega325*|\ @@ -857,6 +860,8 @@ mmcu=*:-mmcu=%*}" %{mmcu=at43usb320:crt43320.o%s} \ %{mmcu=at43usb355:crt43355.o%s} \ %{mmcu=at76c711:crt76711.o%s} \ +%{mmcu=at90usb162|mmcu=avr35:crtusb162.o%s} \ +%{mmcu=at90usb82:crtusb82.o%s} \ %{mmcu=atmega8|mmcu=avr4:crtm8.o%s} \ %{mmcu=atmega48:crtm48.o%s} \ %{mmcu=atmega48p:crtm48p.o%s} \ @@ -913,8 +918,6 @@ mmcu=*:-mmcu=%*}" %{mmcu=at90can128:crtcan128.o%s} \ %{mmcu=at90pwm216:crt90pwm216.o%s} \ %{mmcu=at90pwm316:crt90pwm316.o%s} \ -%{mmcu=at90usb82:crtusb82.o%s} \ -%{mmcu=at90usb162:crtusb162.o%s} \ %{mmcu=at90usb646:crtusb646.o%s} \ %{mmcu=at90usb647:crtusb647.o%s} \ %{mmcu=at90usb1286:crtusb1286.o%s} \ diff --git a/gcc/config/avr/t-avr b/gcc/config/avr/t-avr index e1273b5..f16a528 100644 --- a/gcc/config/avr/t-avr +++ b/gcc/config/avr/t-avr @@ -37,8 +37,8 @@ fp-bit.c: $(srcdir)/config/fp-bit.c $(srcdir)/config/avr/t-avr FPBIT = fp-bit.c -MULTILIB_OPTIONS = mmcu=avr2/mmcu=avr25/mmcu=avr3/mmcu=avr4/mmcu=avr5 -MULTILIB_DIRNAMES = avr2 avr25 avr3 avr4 avr5 +MULTILIB_OPTIONS = mmcu=avr2/mmcu=avr25/mmcu=avr3/mmcu=avr35/mmcu=avr4/mmcu=avr5 +MULTILIB_DIRNAMES = avr2 avr25 avr3 avr35 avr4 avr5 # The many avr2 matches are not listed here - this is the default. MULTILIB_MATCHES = \ @@ -61,6 +61,8 @@ MULTILIB_MATCHES = \ mmcu?avr3=mmcu?at43usb320 \ mmcu?avr3=mmcu?at43usb355 \ mmcu?avr3=mmcu?at76c711 \ + mmcu?avr35=mmcu?at90usb82 \ + mmcu?avr35=mmcu?at90usb162 \ mmcu?avr4=mmcu?atmega48 \ mmcu?avr4=mmcu?atmega48p \ mmcu?avr4=mmcu?atmega8 \ @@ -117,8 +119,6 @@ MULTILIB_MATCHES = \ mmcu?avr5=mmcu?at90can128 \ mmcu?avr5=mmcu?at90pwm216 \ mmcu?avr5=mmcu?at90pwm316 \ - mmcu?avr5=mmcu?at90usb82 \ - mmcu?avr5=mmcu?at90usb162 \ mmcu?avr5=mmcu?at90usb646 \ mmcu?avr5=mmcu?at90usb647 \ mmcu?avr5=mmcu?at90usb1286 \ -- 2.7.4