[packages/crossavr-binutils] crossavr-binutils: Synchronized with official AVR toolchain 3.4.0.663.
kosmo
kosmo at pld-linux.org
Tue Aug 14 21:01:49 CEST 2012
commit 30f666e72dca8d589aec9ea2039c0a154a937359
Author: Piotr Ziecik <kosmo at pld-linux.org>
Date: Tue Aug 14 20:58:50 2012 +0200
crossavr-binutils: Synchronized with official AVR toolchain 3.4.0.663.
...1-avr-size.patch => 300-binutils-avr-size.patch | 16 +-
...1-avr-coff.patch => 301-binutils-avr-coff.patch | 701 +++++++++++----------
302-binutils-2.20.1-new-sections.patch | 38 --
302-binutils-as-dwarf.patch | 19 +
303-binutils-2.20.1-as-dwarf.patch | 29 -
... 303-binutils-dwarf2-AVRStudio-workaround.patch | 10 +-
...1-bug13113.patch => 304-binutils-bug13113.patch | 26 +-
305-binutils-2.20.1-assembler-options.patch | 12 -
305-binutils-new-usb-insns.patch | 31 +
306-binutils-bug15573-AVRTC-419.patch | 26 +
307-binutils-fix-AVRTC-424.patch | 55 ++
400-binutils-2.20.1-xmega.patch | 679 --------------------
400-binutils-xmega.patch | 90 +++
401-binutils-2.20.1-new-devices.patch | 229 -------
...avrtiny10.patch => 401-binutils-avrtiny10.patch | 102 +--
...90pwm161.patch => 402-binutils-at90pwm161.patch | 52 +-
403-binutils-2.20.1-xmega128a1u-64a1u.patch | 42 --
403-binutils-new-devices.patch | 61 ++
404-binutils-2.20.1-atxmega32x1.patch | 38 --
...tiny1634.patch => 404-binutils-attiny1634.patch | 18 +-
405-binutils-2.20.1-atxmega128b1.patch | 36 --
...mega48pa.patch => 405-binutils-atmega48pa.patch | 29 +-
406-binutils-2.20.1-atxmega256a3bu.patch | 34 -
...u.patch => 406-binutils-atxmega_16_32_a4u.patch | 33 +-
... => 407-binutils-atxmega64_128_192_256a3u.patch | 31 +-
408-binutils-2.20.1-atmega16hvb-32hvb.patch | 52 --
...r2_a2.patch => 408-binutils-atmegarfr2_a2.patch | 56 +-
409-binutils-2.20.1-atmega32_5_50_90_pa.patch | 88 ---
...ga165pa.patch => 409-binutils-atmega165pa.patch | 24 +-
...a384c3.patch => 410-binutils-atxmega384c3.patch | 24 +-
...1-attiny80.patch => 411-binutils-attiny80.patch | 26 +-
...28a4u.patch => 412-binutils-atxmega128a4u.patch | 22 +-
...ega64d4.patch => 413-binutils-atxmega64d4.patch | 23 +-
...=> 414-binutils-atmega164pa_168pa_32a_64a.patch | 51 +-
...b3.patch => 415-binutils-atxmega64_128_b3.patch | 30 +-
...ega64b1.patch => 416-binutils-atxmega64b1.patch | 16 +-
...patch => 417-binutils-atmega_8a_128a_1284.patch | 28 +-
...a64a4u.patch => 418-binutils-atxmega64a4u.patch | 18 +-
...a128d4.patch => 419-binutils-atxmega128d4.patch | 27 +-
...atmxt336s.patch => 420-binutils-atmxt336s.patch | 20 +-
...421-binutils-atxmega16c4_32c4_128c3_256c3.patch | 66 +-
...a384d3.patch => 422-binutils-atxmega384d3.patch | 26 +-
423-binutils-atmega48hvf.patch | 44 ++
...ga26hvg.patch => 424-binutils-atmega26hvg.patch | 34 +-
..._224e.patch => 425-binutils-atmxt224_224e.patch | 24 +-
...a192c3.patch => 426-binutils-atxmega192c3.patch | 26 +-
427-binutils-atmxt112sl.patch | 37 ++
428-binutils-atxmega64c3.patch | 34 +
429-binutils-2.20.1-atmega48hvf.patch | 42 --
429-binutils-ata6285_6286.patch | 36 ++
430-binutils-attiny828.patch | 34 +
431-binutils-ata5790_5790N_5795.patch | 47 ++
432-binutils-ata5272_5505.patch | 55 ++
...1-bug13789.patch => 500-binutils-bug13789.patch | 52 +-
501-binutils-modify-usb-xmega-isa.patch | 28 +
502-binutils-add-config-section-tiny.patch | 32 +
503-binutils-avrtc193-tiny.patch | 221 +++++++
crossavr-binutils-new-devices.patch | 135 ----
crossavr-binutils.spec | 98 +--
59 files changed, 1705 insertions(+), 2308 deletions(-)
---
diff --git a/crossavr-binutils.spec b/crossavr-binutils.spec
index e0ae847..36fe6d7 100644
--- a/crossavr-binutils.spec
+++ b/crossavr-binutils.spec
@@ -5,61 +5,66 @@ Summary(pl.UTF-8): Skrośne narzędzia programistyczne GNU dla AVR - binutils
Summary(pt_BR.UTF-8): Utilitários para desenvolvimento de binários da GNU - AVR binutils
Summary(tr.UTF-8): GNU geliştirme araçları - AVR binutils
Name: crossavr-binutils
-Version: 2.20.1
+Version: 2.22
Release: 1
Epoch: 1
-# Patches 1xx are taken form Atmel official AVR8-GNU toolchain version 3.3.1.481.
-Patch100: 300-binutils-2.20.1-avr-size.patch
-Patch101: 301-binutils-2.20.1-avr-coff.patch
-Patch102: 302-binutils-2.20.1-new-sections.patch
-Patch103: 303-binutils-2.20.1-as-dwarf.patch
-Patch104: 304-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch
-Patch105: 305-binutils-2.20.1-assembler-options.patch
-Patch106: 400-binutils-2.20.1-xmega.patch
-Patch107: 401-binutils-2.20.1-new-devices.patch
-Patch108: 402-binutils-2.20.1-avrtiny10.patch
-Patch109: 403-binutils-2.20.1-xmega128a1u-64a1u.patch
-Patch110: 404-binutils-2.20.1-atxmega32x1.patch
-Patch111: 405-binutils-2.20.1-atxmega128b1.patch
-Patch112: 406-binutils-2.20.1-atxmega256a3bu.patch
-Patch113: 407-binutils-2.20.1-at90pwm161.patch
-Patch114: 408-binutils-2.20.1-atmega16hvb-32hvb.patch
-Patch115: 409-binutils-2.20.1-atmega32_5_50_90_pa.patch
-Patch116: 410-binutils-2.20.1-attiny1634.patch
-Patch117: 411-binutils-2.20.1-atmega48pa.patch
-Patch118: 412-binutils-2.20.1-atxmega_16_32_a4u.patch
-Patch119: 413-binutils-2.20.1-atxmega64_128_192_256a3u.patch
-Patch120: 414-binutils-2.20.1-atmegarfr2_a2.patch
-Patch121: 415-binutils-2.20.1-atmega165pa.patch
-Patch122: 416-binutils-2.20.1-atxmega384c3.patch
-Patch123: 417-binutils-2.20.1-attiny80.patch
-Patch124: 418-binutils-2.20.1-atxmega128a4u.patch
-Patch125: 419-binutils-2.20.1-atxmega64d4.patch
-Patch126: 420-binutils-2.20.1-atmega164pa_168pa_32a_64a.patch
-Patch127: 421-binutils-2.20.1-atxmega64_128_b3.patch
-Patch128: 422-binutils-2.20.1-atxmega64b1.patch
-Patch129: 423-binutils-2.20.1-atmega_8a_128a_1284.patch
-Patch130: 424-binutils-2.20.1-atxmega64a4u.patch
-Patch131: 425-binutils-2.20.1-atxmega128d4.patch
-Patch132: 426-binutils-2.20.1-atmxt336s.patch
-Patch133: 427-binutils-2.20.1-atxmega16c4_32c4_128c3_256c3.patch
-Patch134: 428-binutils-2.20.1-atxmega384d3.patch
-Patch135: 429-binutils-2.20.1-atmega48hvf.patch
-Patch136: 430-binutils-2.20.1-atmega26hvg.patch
-Patch137: 431-binutils-2.20.1-atmxt224_224e.patch
-Patch138: 431-binutils-2.20.1-atxmega192c3.patch
-Patch139: 500-binutils-2.20.1-bug13789.patch
-Patch140: 501-binutils-2.20.1-bug13113.patch
+# Patches 1xx are taken form Atmel official AVR8-GNU toolchain version 3.4.0.633
+Patch100: 300-binutils-avr-size.patch
+Patch101: 301-binutils-avr-coff.patch
+Patch102: 302-binutils-as-dwarf.patch
+Patch103: 303-binutils-dwarf2-AVRStudio-workaround.patch
+Patch104: 304-binutils-bug13113.patch
+Patch105: 305-binutils-new-usb-insns.patch
+Patch106: 306-binutils-bug15573-AVRTC-419.patch
+Patch107: 307-binutils-fix-AVRTC-424.patch
+Patch108: 400-binutils-xmega.patch
+Patch109: 401-binutils-avrtiny10.patch
+Patch110: 402-binutils-at90pwm161.patch
+Patch111: 403-binutils-new-devices.patch
+Patch112: 404-binutils-attiny1634.patch
+Patch113: 405-binutils-atmega48pa.patch
+Patch114: 406-binutils-atxmega_16_32_a4u.patch
+Patch115: 407-binutils-atxmega64_128_192_256a3u.patch
+Patch116: 408-binutils-atmegarfr2_a2.patch
+Patch117: 409-binutils-atmega165pa.patch
+Patch118: 410-binutils-atxmega384c3.patch
+Patch119: 411-binutils-attiny80.patch
+Patch120: 412-binutils-atxmega128a4u.patch
+Patch121: 413-binutils-atxmega64d4.patch
+Patch122: 414-binutils-atmega164pa_168pa_32a_64a.patch
+Patch123: 415-binutils-atxmega64_128_b3.patch
+Patch124: 416-binutils-atxmega64b1.patch
+Patch125: 417-binutils-atmega_8a_128a_1284.patch
+Patch126: 418-binutils-atxmega64a4u.patch
+Patch127: 419-binutils-atxmega128d4.patch
+Patch128: 420-binutils-atmxt336s.patch
+Patch129: 421-binutils-atxmega16c4_32c4_128c3_256c3.patch
+Patch130: 422-binutils-atxmega384d3.patch
+Patch131: 423-binutils-atmega48hvf.patch
+Patch132: 424-binutils-atmega26hvg.patch
+Patch133: 425-binutils-atmxt224_224e.patch
+Patch134: 426-binutils-atxmega192c3.patch
+Patch135: 427-binutils-atmxt112sl.patch
+Patch136: 428-binutils-atxmega64c3.patch
+Patch137: 429-binutils-ata6285_6286.patch
+Patch138: 430-binutils-attiny828.patch
+Patch139: 431-binutils-ata5790_5790N_5795.patch
+Patch140: 432-binutils-ata5272_5505.patch
+Patch141: 500-binutils-bug13789.patch
+Patch142: 501-binutils-modify-usb-xmega-isa.patch
+Patch143: 502-binutils-add-config-section-tiny.patch
+Patch144: 503-binutils-avrtc193-tiny.patch
License: GPL
Group: Development/Tools
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.bz2
-# Source0-md5: 2b9dc8f2b7dbd5ec5992c6e29de0b764
+# Source0-md5: ee0f10756c84979622b992a4a61ea3f5
URL: http://sources.redhat.com/binutils/
BuildRequires: automake
BuildRequires: bash
BuildRequires: bison
BuildRequires: flex
BuildRequires: gettext-devel
+BuildRequires: gcc-c++
BuildRequires: perl-tools-pod
BuildRequires: texinfo
%ifarch sparc sparc32
@@ -137,6 +142,10 @@ Ten pakiet zawiera wersję skrośną generującą kod dla Atmel AVR.
%patch138 -p0
%patch139 -p0
%patch140 -p0
+%patch141 -p0
+%patch142 -p0
+%patch143 -p0
+%patch144 -p0
%build
cp /usr/share/automake/config.sub .
@@ -149,6 +158,7 @@ CONFIG_SHELL="/bin/bash" \
sparc32 \
%endif
./configure \
+ --enable-gold \
--disable-shared \
--disable-werror \
--prefix=%{_prefix} \
diff --git a/300-binutils-2.20.1-avr-size.patch b/300-binutils-avr-size.patch
similarity index 97%
rename from 300-binutils-2.20.1-avr-size.patch
rename to 300-binutils-avr-size.patch
index e9065e9..047fb2e 100644
--- a/300-binutils-2.20.1-avr-size.patch
+++ b/300-binutils-avr-size.patch
@@ -430,9 +430,9 @@ AVR specific only
+ int rammax = 0;
+ int eeprommax = 0;
+ asection *section;
-+ bfd_size_type datasize = 0;
-+ bfd_size_type textsize = 0;
-+ bfd_size_type bsssize = 0;
++ bfd_size_type avr_datasize = 0;
++ bfd_size_type avr_textsize = 0;
++ bfd_size_type avr_bsssize = 0;
+ bfd_size_type bootloadersize = 0;
+ bfd_size_type noinitsize = 0;
+ bfd_size_type eepromsize = 0;
@@ -447,11 +447,11 @@ AVR specific only
+ }
+
+ if ((section = bfd_get_section_by_name (file, ".data")) != NULL)
-+ datasize = bfd_section_size (file, section);
++ avr_datasize = bfd_section_size (file, section);
+ if ((section = bfd_get_section_by_name (file, ".text")) != NULL)
-+ textsize = bfd_section_size (file, section);
++ avr_textsize = bfd_section_size (file, section);
+ if ((section = bfd_get_section_by_name (file, ".bss")) != NULL)
-+ bsssize = bfd_section_size (file, section);
++ avr_bsssize = bfd_section_size (file, section);
+ if ((section = bfd_get_section_by_name (file, ".bootloader")) != NULL)
+ bootloadersize = bfd_section_size (file, section);
+ if ((section = bfd_get_section_by_name (file, ".noinit")) != NULL)
@@ -459,8 +459,8 @@ AVR specific only
+ if ((section = bfd_get_section_by_name (file, ".eeprom")) != NULL)
+ eepromsize = bfd_section_size (file, section);
+
-+ bfd_size_type text = textsize + datasize + bootloadersize;
-+ bfd_size_type data = datasize + bsssize + noinitsize;
++ bfd_size_type text = avr_textsize + avr_datasize + bootloadersize;
++ bfd_size_type data = avr_datasize + avr_bsssize + noinitsize;
+ bfd_size_type eeprom = eepromsize;
+
+ printf ("AVR Memory Usage\n"
diff --git a/301-binutils-2.20.1-avr-coff.patch b/301-binutils-avr-coff.patch
similarity index 95%
rename from 301-binutils-2.20.1-avr-coff.patch
rename to 301-binutils-avr-coff.patch
index c21327f..d3c2a17 100644
--- a/301-binutils-2.20.1-avr-coff.patch
+++ b/301-binutils-avr-coff.patch
@@ -1,48 +1,6 @@
-diff -ruwN bfd/Makefile.am bfd/Makefile.am
---- bfd/Makefile.am 2009-10-16 17:17:44.000000000 +0530
-+++ bfd/Makefile.am 2010-03-11 12:13:23.069283600 +0530
-@@ -228,6 +228,8 @@
- coff-apollo.lo \
- coff-arm.lo \
- coff-aux.lo \
-+ coff-avr.lo \
-+ coff-ext-avr.lo \
- coff-go32.lo \
- coff-h8300.lo \
- coff-h8500.lo \
-@@ -411,6 +413,8 @@
- coff-apollo.c \
- coff-arm.c \
- coff-aux.c \
-+ coff-avr.c \
-+ coff-ext-avr.c \
- coff-go32.c \
- coff-h8300.c \
- coff-h8500.c \
-diff -ruwN bfd/Makefile.in bfd/Makefile.in
---- bfd/Makefile.in 2009-10-16 17:17:48.000000000 +0530
-+++ bfd/Makefile.in 2010-03-11 12:13:23.084906900 +0530
-@@ -524,6 +524,8 @@
- coff-apollo.lo \
- coff-arm.lo \
- coff-aux.lo \
-+ coff-avr.lo \
-+ coff-ext-avr.lo \
- coff-go32.lo \
- coff-h8300.lo \
- coff-h8500.lo \
-@@ -707,6 +709,8 @@
- coff-apollo.c \
- coff-arm.c \
- coff-aux.c \
-+ coff-avr.c \
-+ coff-ext-avr.c \
- coff-go32.c \
- coff-h8300.c \
- coff-h8500.c \
-diff -ruwN bfd/coff-avr.c bfd/coff-avr.c
+diff -Naurp bfd/coff-avr.c bfd/coff-avr.c
--- bfd/coff-avr.c 1970-01-01 05:30:00.000000000 +0530
-+++ bfd/coff-avr.c 2010-03-11 12:13:23.100530200 +0530
++++ bfd/coff-avr.c 2011-11-30 12:59:26.000000000 +0530
@@ -0,0 +1,613 @@
+/* BFD back-end for Atmel AVR COFF files.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2003
@@ -627,7 +585,7 @@ diff -ruwN bfd/coff-avr.c bfd/coff-avr.c
+ 0, /* leading char */
+ '/', /* ar_pad_char */
+ 15, /* ar_max_namelen */
-+
++ 0, /* match_priority */
+ bfd_getl64, bfd_getl_signed_64, bfd_putl64,
+ bfd_getl32, bfd_getl_signed_32, bfd_putl32,
+ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */
@@ -657,9 +615,147 @@ diff -ruwN bfd/coff-avr.c bfd/coff-avr.c
+
+ COFF_SWAP_TABLE
+};
-diff -ruwN bfd/coff-ext-avr.c bfd/coff-ext-avr.c
+diff -Naurp bfd/coffcode.h bfd/coffcode.h
+--- bfd/coffcode.h 2011-08-17 06:09:38.000000000 +0530
++++ bfd/coffcode.h 2011-11-30 12:54:36.000000000 +0530
+@@ -1,3 +1,4 @@
++
+ /* Support for the generic parts of most COFF variants, for BFD.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+@@ -1968,6 +1969,17 @@ coff_mkobject (bfd * abfd)
+ coff->relocbase = 0;
+ coff->local_toc_sym_map = 0;
+
++ /* These members communicate important constants about the symbol
++ table to GDB's symbol-reading code. These `constants'
++ unfortunately vary among coff implementations... */
++ coff->local_n_btmask = N_BTMASK;
++ coff->local_n_btshft = N_BTSHFT;
++ coff->local_n_tmask = N_TMASK;
++ coff->local_n_tshift = N_TSHIFT;
++ coff->local_symesz = bfd_coff_symesz (abfd);
++ coff->local_auxesz = bfd_coff_auxesz (abfd);
++ coff->local_linesz = bfd_coff_linesz (abfd);
++
+ /* make_abs_section(abfd);*/
+
+ return TRUE;
+@@ -1992,17 +2004,6 @@ coff_mkobject_hook (bfd * abfd,
+
+ coff->sym_filepos = internal_f->f_symptr;
+
+- /* These members communicate important constants about the symbol
+- table to GDB's symbol-reading code. These `constants'
+- unfortunately vary among coff implementations... */
+- coff->local_n_btmask = N_BTMASK;
+- coff->local_n_btshft = N_BTSHFT;
+- coff->local_n_tmask = N_TMASK;
+- coff->local_n_tshift = N_TSHIFT;
+- coff->local_symesz = bfd_coff_symesz (abfd);
+- coff->local_auxesz = bfd_coff_auxesz (abfd);
+- coff->local_linesz = bfd_coff_linesz (abfd);
+-
+ coff->timestamp = internal_f->f_timdat;
+
+ obj_raw_syment_count (abfd) =
+@@ -2134,6 +2135,11 @@ coff_set_arch_mach_hook (bfd *abfd, void
+ }
+ break;
+ #endif
++#ifdef AVRMAGIC
++ case AVRMAGIC:
++ arch = bfd_arch_avr;
++ break;
++#endif
+ #ifdef MC68MAGIC
+ case MC68MAGIC:
+ case M68MAGIC:
+@@ -2913,6 +2919,13 @@ coff_set_flags (bfd * abfd,
+ return TRUE;
+ #endif
+
++#ifdef AVRMAGIC
++ case bfd_arch_avr:
++ *magicp = AVRMAGIC;
++ return TRUE;
++ break;
++#endif
++
+ #ifdef PPCMAGIC
+ case bfd_arch_powerpc:
+ *magicp = PPCMAGIC;
+@@ -3741,6 +3754,11 @@ coff_write_object_contents (bfd * abfd)
+ section.s_page = 0;
+ #endif
+
++#ifdef AVR
++ /* AVR uses s_paddr the way GNU uses s_vaddr, and effectively
++ ignores s_vaddr. */
++ section.s_paddr = current->vma;
++#endif
+ #ifdef COFF_WITH_PE
+ section.s_paddr = 0;
+ #endif
+@@ -4087,6 +4105,17 @@ coff_write_object_contents (bfd * abfd)
+ internal_a.magic = ZMAGIC;
+ #endif
+
++#ifdef AVR
++ /* a.out is a dummy for non-extended COFF */
++ internal_a.magic = AVRAOUTMAGIC;
++ /* Upper nibble of f_flags must be set for historical reasons.
++ The upper byte remains blank on coff-avr, so undo the F_AR32WR
++ setting performed above. */
++ internal_f.f_flags |= F_JUNK;
++ internal_f.f_flags &= ~F_UNUSED;
++#define __A_MAGIC_SET__
++#endif /* AVR */
++
+ #if defined(PPC_PE)
+ #define __A_MAGIC_SET__
+ internal_a.magic = IMAGE_NT_OPTIONAL_HDR_MAGIC;
+@@ -4149,8 +4178,16 @@ coff_write_object_contents (bfd * abfd)
+ #endif
+ }
+
++#ifdef AVR_EXT_COFF
++ /* Note that we do not set F_PTRINFO because the GNU toolchain
++ doesn't provide any information about the target of a pointer,
++ so we cannot derive which section our pointer target would be
++ in. */
++ internal_a.vstamp = F_FULLPATHS | F_STRUCTINFO;
++#else
+ /* FIXME: Does anybody ever set this to another value? */
+ internal_a.vstamp = 0;
++#endif
+
+ /* Now should write relocs, strings, syms. */
+ obj_sym_filepos (abfd) = sym_base;
+@@ -4708,6 +4745,10 @@ coff_slurp_symbol_table (bfd * abfd)
+ /* In PE, 0x69 (105) denotes a weak external symbol. */
+ case C_NT_WEAK:
+ #endif
++#ifdef AVR
++ /* Some AVR COFF compilers handle EXTDEF like EXT. */
++ case C_EXTDEF: /* external definition */
++#endif
+ switch (coff_classify_symbol (abfd, &src->u.syment))
+ {
+ case COFF_SYMBOL_GLOBAL:
+@@ -4940,7 +4981,9 @@ coff_slurp_symbol_table (bfd * abfd)
+ break;
+ #endif
+ /* Fall through. */
++#if !defined(AVR)
+ case C_EXTDEF: /* External definition. */
++#endif
+ case C_ULABEL: /* Undefined label. */
+ case C_USTATIC: /* Undefined static. */
+ #ifndef COFF_WITH_PE
+diff -Naurp bfd/coff-ext-avr.c bfd/coff-ext-avr.c
--- bfd/coff-ext-avr.c 1970-01-01 05:30:00.000000000 +0530
-+++ bfd/coff-ext-avr.c 2010-03-11 12:13:23.131776800 +0530
++++ bfd/coff-ext-avr.c 2011-11-30 15:09:15.000000000 +0530
@@ -0,0 +1,428 @@
+/* BFD back-end for Atmel AVR "extended" COFF files.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2003
@@ -1059,7 +1155,7 @@ diff -ruwN bfd/coff-ext-avr.c bfd/coff-ext-avr.c
+ 0, /* leading char */
+ '/', /* ar_pad_char */
+ 15, /* ar_max_namelen */
-+
++ 0, /* match_priority */
+ bfd_getl64, bfd_getl_signed_64, bfd_putl64,
+ bfd_getl32, bfd_getl_signed_32, bfd_putl32,
+ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */
@@ -1089,148 +1185,10 @@ diff -ruwN bfd/coff-ext-avr.c bfd/coff-ext-avr.c
+
+ COFF_SWAP_TABLE
+};
-diff -ruwN bfd/coffcode.h bfd/coffcode.h
---- bfd/coffcode.h 2009-09-10 17:17:12.000000000 +0530
-+++ bfd/coffcode.h 2010-03-11 12:13:23.147400100 +0530
-@@ -1,3 +1,4 @@
-+
- /* Support for the generic parts of most COFF variants, for BFD.
- Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-@@ -1910,6 +1911,17 @@
- coff->relocbase = 0;
- coff->local_toc_sym_map = 0;
-
-+ /* These members communicate important constants about the symbol
-+ table to GDB's symbol-reading code. These `constants'
-+ unfortunately vary among coff implementations... */
-+ coff->local_n_btmask = N_BTMASK;
-+ coff->local_n_btshft = N_BTSHFT;
-+ coff->local_n_tmask = N_TMASK;
-+ coff->local_n_tshift = N_TSHIFT;
-+ coff->local_symesz = bfd_coff_symesz (abfd);
-+ coff->local_auxesz = bfd_coff_auxesz (abfd);
-+ coff->local_linesz = bfd_coff_linesz (abfd);
-+
- /* make_abs_section(abfd);*/
-
- return TRUE;
-@@ -1934,17 +1946,6 @@
-
- coff->sym_filepos = internal_f->f_symptr;
-
-- /* These members communicate important constants about the symbol
-- table to GDB's symbol-reading code. These `constants'
-- unfortunately vary among coff implementations... */
-- coff->local_n_btmask = N_BTMASK;
-- coff->local_n_btshft = N_BTSHFT;
-- coff->local_n_tmask = N_TMASK;
-- coff->local_n_tshift = N_TSHIFT;
-- coff->local_symesz = bfd_coff_symesz (abfd);
-- coff->local_auxesz = bfd_coff_auxesz (abfd);
-- coff->local_linesz = bfd_coff_linesz (abfd);
--
- coff->timestamp = internal_f->f_timdat;
-
- obj_raw_syment_count (abfd) =
-@@ -2076,6 +2077,11 @@
- }
- break;
- #endif
-+#ifdef AVRMAGIC
-+ case AVRMAGIC:
-+ arch = bfd_arch_avr;
-+ break;
-+#endif
- #ifdef MC68MAGIC
- case MC68MAGIC:
- case M68MAGIC:
-@@ -2871,6 +2877,13 @@
- return TRUE;
- #endif
-
-+#ifdef AVRMAGIC
-+ case bfd_arch_avr:
-+ *magicp = AVRMAGIC;
-+ return TRUE;
-+ break;
-+#endif
-+
- #ifdef PPCMAGIC
- case bfd_arch_powerpc:
- *magicp = PPCMAGIC;
-@@ -3698,6 +3711,11 @@
- section.s_page = 0;
- #endif
-
-+#ifdef AVR
-+ /* AVR uses s_paddr the way GNU uses s_vaddr, and effectively
-+ ignores s_vaddr. */
-+ section.s_paddr = current->vma;
-+#endif
- #ifdef COFF_WITH_PE
- section.s_paddr = 0;
- #endif
-@@ -4042,6 +4060,17 @@
- internal_a.magic = ZMAGIC;
- #endif
-
-+#ifdef AVR
-+ /* a.out is a dummy for non-extended COFF */
-+ internal_a.magic = AVRAOUTMAGIC;
-+ /* Upper nibble of f_flags must be set for historical reasons.
-+ The upper byte remains blank on coff-avr, so undo the F_AR32WR
-+ setting performed above. */
-+ internal_f.f_flags |= F_JUNK;
-+ internal_f.f_flags &= ~F_UNUSED;
-+#define __A_MAGIC_SET__
-+#endif /* AVR */
-+
- #if defined(PPC_PE)
- #define __A_MAGIC_SET__
- internal_a.magic = IMAGE_NT_OPTIONAL_HDR_MAGIC;
-@@ -4109,8 +4138,16 @@
- #endif
- }
-
-+#ifdef AVR_EXT_COFF
-+ /* Note that we do not set F_PTRINFO because the GNU toolchain
-+ doesn't provide any information about the target of a pointer,
-+ so we cannot derive which section our pointer target would be
-+ in. */
-+ internal_a.vstamp = F_FULLPATHS | F_STRUCTINFO;
-+#else
- /* FIXME: Does anybody ever set this to another value? */
- internal_a.vstamp = 0;
-+#endif
-
- /* Now should write relocs, strings, syms. */
- obj_sym_filepos (abfd) = sym_base;
-@@ -4668,6 +4705,10 @@
- /* In PE, 0x69 (105) denotes a weak external symbol. */
- case C_NT_WEAK:
- #endif
-+#ifdef AVR
-+ /* Some AVR COFF compilers handle EXTDEF like EXT. */
-+ case C_EXTDEF: /* external definition */
-+#endif
- switch (coff_classify_symbol (abfd, &src->u.syment))
- {
- case COFF_SYMBOL_GLOBAL:
-@@ -4891,7 +4932,9 @@
- && src->u.syment.n_scnum == 0)
- break;
- /* Fall through. */
-+#if !defined(AVR)
- case C_EXTDEF: /* External definition. */
-+#endif
- case C_ULABEL: /* Undefined label. */
- case C_USTATIC: /* Undefined static. */
- #ifndef COFF_WITH_PE
-diff -ruwN bfd/coffgen.c bfd/coffgen.c
---- bfd/coffgen.c 2009-09-10 17:17:12.000000000 +0530
-+++ bfd/coffgen.c 2010-03-11 12:13:23.163023400 +0530
-@@ -699,6 +699,20 @@
+diff -Naurp bfd/coffgen.c bfd/coffgen.c
+--- bfd/coffgen.c 2011-08-17 06:09:39.000000000 +0530
++++ bfd/coffgen.c 2011-11-30 12:54:36.000000000 +0530
+@@ -699,6 +699,20 @@ coff_renumber_symbols (bfd *bfd_ptr, int
if (last_file != NULL)
last_file->n_value = native_index;
last_file = &(s->u.syment);
@@ -1251,7 +1209,7 @@ diff -ruwN bfd/coffgen.c bfd/coffgen.c
}
else
/* Modify the symbol values according to their section and
-@@ -827,6 +841,20 @@
+@@ -827,6 +841,20 @@ coff_fix_symbol_name (bfd *abfd,
{
if (name_length <= filnmlen)
strncpy (auxent->x_file.x_fname, name, filnmlen);
@@ -1272,7 +1230,7 @@ diff -ruwN bfd/coffgen.c bfd/coffgen.c
else
{
auxent->x_file.x_n.x_offset = *string_size_p + STRING_SIZE_SIZE;
-@@ -1272,6 +1300,10 @@
+@@ -1277,6 +1305,10 @@ coff_write_symbols (bfd *abfd)
if (bfd_bwrite (".file", (bfd_size_type) 6, abfd) != 6)
return FALSE;
}
@@ -1283,7 +1241,7 @@ diff -ruwN bfd/coffgen.c bfd/coffgen.c
maxlen = bfd_coff_filnmlen (abfd);
}
else
-@@ -1710,14 +1742,27 @@
+@@ -1715,14 +1747,27 @@ coff_get_normalized_symtab (bfd *abfd)
{
/* Ordinary short filename, put into memory anyway. The
Microsoft PE tools sometimes store a filename in
@@ -1318,7 +1276,7 @@ diff -ruwN bfd/coffgen.c bfd/coffgen.c
else
internal_ptr->u.syment._n._n_n._n_offset =
((bfd_hostptr_t)
-@@ -1823,9 +1868,9 @@
+@@ -1828,9 +1873,9 @@ coff_bfd_make_debug_symbol (bfd *abfd,
if (new_symbol == NULL)
return NULL;
@@ -1330,10 +1288,10 @@ diff -ruwN bfd/coffgen.c bfd/coffgen.c
new_symbol->native = (combined_entry_type *) bfd_zalloc (abfd, amt);
if (!new_symbol->native)
return NULL;
-diff -ruwN bfd/coffswap.h bfd/coffswap.h
---- bfd/coffswap.h 2009-09-07 13:45:15.000000000 +0530
-+++ bfd/coffswap.h 2010-03-11 12:13:23.178646700 +0530
-@@ -383,7 +383,11 @@
+diff -Naurp bfd/coffswap.h bfd/coffswap.h
+--- bfd/coffswap.h 2009-09-05 13:26:22.000000000 +0530
++++ bfd/coffswap.h 2011-11-30 12:54:36.000000000 +0530
+@@ -383,7 +383,11 @@ coff_swap_aux_in (bfd *abfd,
void * ext1,
int type,
int in_class,
@@ -1346,7 +1304,7 @@ diff -ruwN bfd/coffswap.h bfd/coffswap.h
int numaux,
void * in1)
{
-@@ -409,9 +413,13 @@
+@@ -409,9 +413,13 @@ coff_swap_aux_in (bfd *abfd,
#else
if (numaux > 1)
{
@@ -1360,10 +1318,10 @@ diff -ruwN bfd/coffswap.h bfd/coffswap.h
}
else
memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN);
-diff -ruwN bfd/config.bfd bfd/config.bfd
---- bfd/config.bfd 2009-08-06 23:08:00.000000000 +0530
-+++ bfd/config.bfd 2010-03-11 12:13:23.178646700 +0530
-@@ -339,6 +339,7 @@
+diff -Naurp bfd/config.bfd bfd/config.bfd
+--- bfd/config.bfd 2011-07-29 04:05:13.000000000 +0530
++++ bfd/config.bfd 2011-11-30 12:54:36.000000000 +0530
+@@ -300,6 +300,7 @@ case "${targ}" in
avr-*-*)
targ_defvec=bfd_elf32_avr_vec
@@ -1371,10 +1329,10 @@ diff -ruwN bfd/config.bfd bfd/config.bfd
;;
bfin-*-*)
-diff -ruwN bfd/configure bfd/configure
---- bfd/configure 2009-10-16 17:17:47.000000000 +0530
-+++ bfd/configure 2010-03-11 12:13:23.209893300 +0530
-@@ -14782,6 +14782,8 @@
+diff -Naurp bfd/configure bfd/configure
+--- bfd/configure 2011-11-21 17:25:48.000000000 +0530
++++ bfd/configure 2011-11-30 12:54:36.000000000 +0530
+@@ -15175,6 +15175,8 @@ do
armpe_little_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
armpei_big_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
armpei_little_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
@@ -1383,10 +1341,10 @@ diff -ruwN bfd/configure bfd/configure
b_out_vec_big_host) tb="$tb bout.lo aout32.lo" ;;
b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;;
bfd_pei_ia64_vec) tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
-diff -ruwN bfd/configure.in bfd/configure.in
---- bfd/configure.in 2009-10-16 17:17:44.000000000 +0530
-+++ bfd/configure.in 2010-03-11 12:13:23.209893300 +0530
-@@ -670,6 +670,8 @@
+diff -Naurp bfd/configure.in bfd/configure.in
+--- bfd/configure.in 2011-11-21 17:25:46.000000000 +0530
++++ bfd/configure.in 2011-11-30 12:54:36.000000000 +0530
+@@ -674,6 +674,8 @@ do
armpe_little_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
armpei_big_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
armpei_little_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
@@ -1395,10 +1353,52 @@ diff -ruwN bfd/configure.in bfd/configure.in
b_out_vec_big_host) tb="$tb bout.lo aout32.lo" ;;
b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;;
bfd_pei_ia64_vec) tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
-diff -ruwN bfd/targets.c bfd/targets.c
---- bfd/targets.c 2009-09-10 17:17:13.000000000 +0530
-+++ bfd/targets.c 2010-03-11 12:13:23.225516600 +0530
-@@ -564,6 +564,8 @@
+diff -Naurp bfd/Makefile.am bfd/Makefile.am
+--- bfd/Makefile.am 2011-11-21 17:25:46.000000000 +0530
++++ bfd/Makefile.am 2011-11-30 12:54:36.000000000 +0530
+@@ -238,6 +238,8 @@ BFD32_BACKENDS = \
+ coff-apollo.lo \
+ coff-arm.lo \
+ coff-aux.lo \
++ coff-avr.lo \
++ coff-ext-avr.lo \
+ coff-go32.lo \
+ coff-h8300.lo \
+ coff-h8500.lo \
+@@ -422,6 +424,8 @@ BFD32_BACKENDS_CFILES = \
+ coff-apollo.c \
+ coff-arm.c \
+ coff-aux.c \
++ coff-avr.c \
++ coff-ext-avr.c \
+ coff-go32.c \
+ coff-h8300.c \
+ coff-h8500.c \
+diff -Naurp bfd/Makefile.in bfd/Makefile.in
+--- bfd/Makefile.in 2011-11-21 17:25:49.000000000 +0530
++++ bfd/Makefile.in 2011-11-30 12:54:36.000000000 +0530
+@@ -538,6 +538,8 @@ BFD32_BACKENDS = \
+ coff-apollo.lo \
+ coff-arm.lo \
+ coff-aux.lo \
++ coff-avr.lo \
++ coff-ext-avr.lo \
+ coff-go32.lo \
+ coff-h8300.lo \
+ coff-h8500.lo \
+@@ -722,6 +724,8 @@ BFD32_BACKENDS_CFILES = \
+ coff-apollo.c \
+ coff-arm.c \
+ coff-aux.c \
++ coff-avr.c \
++ coff-ext-avr.c \
+ coff-go32.c \
+ coff-h8300.c \
+ coff-h8500.c \
+diff -Naurp bfd/targets.c bfd/targets.c
+--- bfd/targets.c 2011-08-17 06:09:38.000000000 +0530
++++ bfd/targets.c 2011-11-30 12:54:36.000000000 +0530
+@@ -587,6 +587,8 @@ extern const bfd_target armpe_big_vec;
extern const bfd_target armpe_little_vec;
extern const bfd_target armpei_big_vec;
extern const bfd_target armpei_little_vec;
@@ -1407,7 +1407,7 @@ diff -ruwN bfd/targets.c bfd/targets.c
extern const bfd_target b_out_vec_big_host;
extern const bfd_target b_out_vec_little_host;
extern const bfd_target bfd_pei_ia64_vec;
-@@ -890,6 +892,8 @@
+@@ -941,6 +943,8 @@ static const bfd_target * const _bfd_tar
&armpe_little_vec,
&armpei_big_vec,
&armpei_little_vec,
@@ -1416,61 +1416,10 @@ diff -ruwN bfd/targets.c bfd/targets.c
&b_out_vec_big_host,
&b_out_vec_little_host,
#ifdef BFD64
-diff -ruwN binutils/Makefile.am binutils/Makefile.am
---- binutils/Makefile.am 2009-09-09 13:43:23.000000000 +0530
-+++ binutils/Makefile.am 2010-03-11 12:13:23.241139900 +0530
-@@ -101,7 +101,7 @@
- resbin.c rescoff.c resrc.c resres.c \
- size.c srconv.c stabs.c strings.c sysdump.c \
- unwind-ia64.c version.c \
-- windres.c winduni.c wrstabs.c \
-+ windres.c winduni.c wrcoff.c wrstabs.c \
- windmc.c mclex.c
-
- GENERATED_CFILES = \
-@@ -109,7 +109,7 @@
- defparse.c deflex.c nlmheader.c rcparse.c mcparse.c
-
- DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
--WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c
-+WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c wrcoff.c
-
- # Code shared by all the binutils.
- BULIBS = bucomm.c version.c filemode.c
-diff -ruwN binutils/Makefile.in binutils/Makefile.in
---- binutils/Makefile.in 2009-09-09 13:43:23.000000000 +0530
-+++ binutils/Makefile.in 2010-03-11 12:13:23.241139900 +0530
-@@ -126,7 +126,7 @@
- nm_new_OBJECTS = $(am_nm_new_OBJECTS)
- nm_new_LDADD = $(LDADD)
- am__objects_2 = rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \
-- ieee.$(OBJEXT) rdcoff.$(OBJEXT)
-+ ieee.$(OBJEXT) rdcoff.$(OBJEXT) wrcoff.$(OBJEXT)
- am__objects_3 = $(am__objects_2) wrstabs.$(OBJEXT)
- am_objcopy_OBJECTS = objcopy.$(OBJEXT) not-strip.$(OBJEXT) \
- rename.$(OBJEXT) $(am__objects_3) $(am__objects_1)
-@@ -439,7 +439,7 @@
- resbin.c rescoff.c resrc.c resres.c \
- size.c srconv.c stabs.c strings.c sysdump.c \
- unwind-ia64.c version.c \
-- windres.c winduni.c wrstabs.c \
-+ windres.c winduni.c wrcoff.c wrstabs.c \
- windmc.c mclex.c
-
- GENERATED_CFILES = \
-@@ -447,7 +447,7 @@
- defparse.c deflex.c nlmheader.c rcparse.c mcparse.c
-
- DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
--WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c
-+WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c wrcoff.c
-
- # Code shared by all the binutils.
- BULIBS = bucomm.c version.c filemode.c
-diff -ruwN binutils/bucomm.c binutils/bucomm.c
---- binutils/bucomm.c 2009-09-14 17:13:26.000000000 +0530
-+++ binutils/bucomm.c 2010-03-11 12:13:23.256763200 +0530
-@@ -550,6 +550,32 @@
+diff -Naurp binutils/bucomm.c binutils/bucomm.c
+--- binutils/bucomm.c 2011-03-25 23:21:10.000000000 +0530
++++ binutils/bucomm.c 2011-11-30 12:54:36.000000000 +0530
+@@ -561,6 +561,32 @@ parse_vma (const char *s, const char *ar
return ret;
}
@@ -1502,11 +1451,11 @@ diff -ruwN binutils/bucomm.c binutils/bucomm.c
+
/* Returns the size of the named file. If the file does not
exist, or if it is not a real file, then a suitable non-fatal
- error message is printed and zero is returned. */
-diff -ruwN binutils/bucomm.h binutils/bucomm.h
+ error message is printed and (off_t) -1 is returned. */
+diff -Naurp binutils/bucomm.h binutils/bucomm.h
--- binutils/bucomm.h 2009-09-02 12:52:31.000000000 +0530
-+++ binutils/bucomm.h 2010-03-11 12:13:23.272386500 +0530
-@@ -58,6 +58,8 @@
++++ binutils/bucomm.h 2011-11-30 12:54:36.000000000 +0530
+@@ -58,6 +58,8 @@ bfd_vma parse_vma (const char *, const c
off_t get_file_size (const char *);
@@ -1515,10 +1464,10 @@ diff -ruwN binutils/bucomm.h binutils/bucomm.h
extern char *program_name;
/* filemode.c */
-diff -ruwN binutils/budbg.h binutils/budbg.h
+diff -Naurp binutils/budbg.h binutils/budbg.h
--- binutils/budbg.h 2009-09-02 12:52:31.000000000 +0530
-+++ binutils/budbg.h 2010-03-11 12:13:23.272386500 +0530
-@@ -52,8 +52,11 @@
++++ binutils/budbg.h 2011-11-30 12:54:36.000000000 +0530
+@@ -52,8 +52,11 @@ extern bfd_boolean parse_ieee (void *, b
extern bfd_boolean write_ieee_debugging_info (bfd *, void *);
@@ -1531,18 +1480,18 @@ diff -ruwN binutils/budbg.h binutils/budbg.h
+ (bfd *abfd, void *, long *symcountp, asymbol ***);
+
#endif
-diff -ruwN binutils/debug.c binutils/debug.c
---- binutils/debug.c 2009-09-14 17:13:26.000000000 +0530
-+++ binutils/debug.c 2010-03-11 12:13:23.288009800 +0530
-@@ -31,6 +31,7 @@
- #include <assert.h>
+diff -Naurp binutils/debug.c binutils/debug.c
+--- binutils/debug.c 2011-03-01 00:02:51.000000000 +0530
++++ binutils/debug.c 2011-11-30 12:54:36.000000000 +0530
+@@ -32,6 +32,7 @@
#include "bfd.h"
#include "libiberty.h"
+ #include "filenames.h"
+#include "bucomm.h"
#include "debug.h"
/* Global information we keep for debugging. A pointer to this
-@@ -552,6 +553,19 @@
+@@ -553,6 +554,19 @@ struct debug_type_real_list
struct debug_type_s *t;
};
@@ -1562,7 +1511,7 @@ diff -ruwN binutils/debug.c binutils/debug.c
/* Local functions. */
static void debug_error (const char *);
-@@ -588,6 +602,11 @@
+@@ -589,6 +603,11 @@ static bfd_boolean debug_type_samep
(struct debug_handle *, struct debug_type_s *, struct debug_type_s *);
static bfd_boolean debug_class_type_samep
(struct debug_handle *, struct debug_type_s *, struct debug_type_s *);
@@ -1574,7 +1523,7 @@ diff -ruwN binutils/debug.c binutils/debug.c
/* Issue an error message. */
-@@ -680,6 +699,8 @@
+@@ -681,6 +700,8 @@ debug_set_filename (void *handle, const
if (name == NULL)
name = "";
@@ -1583,7 +1532,7 @@ diff -ruwN binutils/debug.c binutils/debug.c
nfile = (struct debug_file *) xmalloc (sizeof *nfile);
memset (nfile, 0, sizeof *nfile);
-@@ -720,6 +741,8 @@
+@@ -721,6 +742,8 @@ debug_start_source (void *handle, const
if (name == NULL)
name = "";
@@ -1592,7 +1541,7 @@ diff -ruwN binutils/debug.c binutils/debug.c
if (info->current_unit == NULL)
{
-@@ -3370,3 +3393,69 @@
+@@ -3369,3 +3392,70 @@ debug_class_type_samep (struct debug_han
return TRUE;
}
@@ -1638,34 +1587,35 @@ diff -ruwN binutils/debug.c binutils/debug.c
+ size_t olen;
+
+ if (xlat_basename)
-+ return bu_basename (oname);
++ return bu_basename (oname);
+
+ olen = strlen (oname);
+ for (xlp = xlat; xlp; xlp = xlp->next)
+ {
+ if (xlp->olen > olen)
-+ /* This cannot be our turn. */
-+ continue;
++ /* This cannot be our turn. */
++ continue;
+ /* Since we have pre-computed all our length values to avoid
-+ repetitively computing them, just use memcmp() since it's
-+ faster than strcmp(). */
++ repetitively computing them, just use memcmp() since it's
++ faster than strcmp(). */
+ if (memcmp (xlp->old, oname, xlp->olen) == 0)
-+ {
-+ cp = (char *) xmalloc (olen + xlp->nlen - xlp->olen + 1);
-+ memcpy (cp, xlp->newstr, xlp->nlen);
-+ memcpy (cp + xlp->nlen, oname + xlp->olen,
-+ olen - xlp->olen + 1);
-+ return cp;
-+ }
++ {
++ cp = (char *) xmalloc (olen + xlp->nlen - xlp->olen + 1);
++ memcpy (cp, xlp->newstr, xlp->nlen);
++ memcpy (cp + xlp->nlen, oname + xlp->olen,
++ olen - xlp->olen + 1);
++ return cp;
++ }
+ }
+
+ /* Not found, pass the original name on. */
+ return oname;
+}
-diff -ruwN binutils/debug.h binutils/debug.h
---- binutils/debug.h 2009-09-14 17:13:26.000000000 +0530
-+++ binutils/debug.h 2010-03-11 12:13:23.288009800 +0530
-@@ -440,6 +440,12 @@
++
+diff -Naurp binutils/debug.h binutils/debug.h
+--- binutils/debug.h 2009-09-10 19:10:44.000000000 +0530
++++ binutils/debug.h 2011-11-30 12:54:36.000000000 +0530
+@@ -441,6 +441,12 @@ extern bfd_boolean debug_set_filename (v
extern bfd_boolean debug_start_source (void *, const char *);
@@ -1678,10 +1628,10 @@ diff -ruwN binutils/debug.h binutils/debug.h
/* Record a function definition. This implicitly starts a function
block. The debug_type argument is the type of the return value.
The bfd_boolean indicates whether the function is globally visible.
-diff -ruwN binutils/doc/objcopy.1 binutils/doc/objcopy.1
---- binutils/doc/objcopy.1 2009-10-16 17:22:19.000000000 +0530
-+++ binutils/doc/objcopy.1 2010-03-11 12:13:23.303633100 +0530
-@@ -202,6 +202,8 @@
+diff -Naurp binutils/doc/objcopy.1 binutils/doc/objcopy.1
+--- binutils/doc/objcopy.1 2011-11-21 17:10:06.000000000 +0530
++++ binutils/doc/objcopy.1 2011-11-30 12:54:36.000000000 +0530
+@@ -195,6 +195,8 @@ objcopy [\fB\-F\fR \fIbfdname\fR|\fB\-\-
[\fB\-\-readonly\-text\fR]
[\fB\-\-pure\fR]
[\fB\-\-impure\fR]
@@ -1690,10 +1640,10 @@ diff -ruwN binutils/doc/objcopy.1 binutils/doc/objcopy.1
[\fB\-\-file\-alignment=\fR\fInum\fR]
[\fB\-\-heap=\fR\fIsize\fR]
[\fB\-\-image\-base=\fR\fIaddress\fR]
-@@ -885,6 +887,23 @@
- It can also be a useful way of reducing the size of a \fB\-\-just\-symbols\fR
- linker input file.
- .RE
+@@ -911,6 +913,23 @@ Compress \s-1DWARF\s0 debug sections usi
+ .IP "\fB\-\-decompress\-debug\-sections\fR" 4
+ .IX Item "--decompress-debug-sections"
+ Decompress \s-1DWARF\s0 debug sections using zlib.
+.IP "\fB\-\-change\-pathname\fR \fIold\fR=\fInew\fR" 4
+.IX Item "--change-pathname old=new"
+When converting debugging information using \fB\-\-debugging\fR, for
@@ -1714,9 +1664,60 @@ diff -ruwN binutils/doc/objcopy.1 binutils/doc/objcopy.1
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
-diff -ruwN binutils/objcopy.c binutils/objcopy.c
---- binutils/objcopy.c 2009-09-14 17:13:26.000000000 +0530
-+++ binutils/objcopy.c 2010-03-11 12:13:23.319256400 +0530
+diff -Naurp binutils/Makefile.am binutils/Makefile.am
+--- binutils/Makefile.am 2011-08-08 05:57:15.000000000 +0530
++++ binutils/Makefile.am 2011-11-30 12:54:36.000000000 +0530
+@@ -107,7 +107,7 @@ CFILES = \
+ resbin.c rescoff.c resrc.c resres.c \
+ size.c srconv.c stabs.c strings.c sysdump.c \
+ unwind-ia64.c elfedit.c version.c \
+- windres.c winduni.c wrstabs.c \
++ windres.c winduni.c wrcoff.c wrstabs.c \
+ windmc.c mclex.c
+
+ GENERATED_CFILES = \
+@@ -115,7 +115,7 @@ GENERATED_CFILES = \
+ defparse.c deflex.c nlmheader.c rcparse.c mcparse.c
+
+ DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
+-WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c
++WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c wrcoff.c
+
+ # Extra object files for objdump
+ OBJDUMP_PRIVATE_OFILES = @OBJDUMP_PRIVATE_OFILES@
+diff -Naurp binutils/Makefile.in binutils/Makefile.in
+--- binutils/Makefile.in 2011-08-08 05:57:15.000000000 +0530
++++ binutils/Makefile.in 2011-11-30 12:54:36.000000000 +0530
+@@ -134,7 +134,7 @@ am_nm_new_OBJECTS = nm.$(OBJEXT) $(am__o
+ nm_new_OBJECTS = $(am_nm_new_OBJECTS)
+ nm_new_LDADD = $(LDADD)
+ am__objects_3 = rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \
+- ieee.$(OBJEXT) rdcoff.$(OBJEXT)
++ ieee.$(OBJEXT) rdcoff.$(OBJEXT) wrcoff.$(OBJEXT)
+ am__objects_4 = $(am__objects_3) wrstabs.$(OBJEXT)
+ am_objcopy_OBJECTS = objcopy.$(OBJEXT) not-strip.$(OBJEXT) \
+ rename.$(OBJEXT) $(am__objects_4) $(am__objects_1)
+@@ -476,7 +476,7 @@ CFILES = \
+ resbin.c rescoff.c resrc.c resres.c \
+ size.c srconv.c stabs.c strings.c sysdump.c \
+ unwind-ia64.c elfedit.c version.c \
+- windres.c winduni.c wrstabs.c \
++ windres.c winduni.c wrcoff.c wrstabs.c \
+ windmc.c mclex.c
+
+ GENERATED_CFILES = \
+@@ -484,7 +484,7 @@ GENERATED_CFILES = \
+ defparse.c deflex.c nlmheader.c rcparse.c mcparse.c
+
+ DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
+-WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c
++WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c wrcoff.c
+
+ # Code shared by all the binutils.
+ BULIBS = bucomm.c version.c filemode.c
+diff -Naurp binutils/objcopy.c binutils/objcopy.c
+--- binutils/objcopy.c 2011-09-16 09:53:17.000000000 +0530
++++ binutils/objcopy.c 2011-11-30 12:54:36.000000000 +0530
@@ -32,6 +32,7 @@
#include "elf-bfd.h"
#include <sys/stat.h>
@@ -1725,7 +1726,7 @@ diff -ruwN binutils/objcopy.c binutils/objcopy.c
#include "coff/internal.h"
#include "libcoff.h"
-@@ -297,6 +298,8 @@
+@@ -308,6 +309,8 @@ enum command_line_switch
OPTION_IMPURE,
OPTION_EXTRACT_SYMBOL,
OPTION_REVERSE_BYTES,
@@ -1734,7 +1735,7 @@ diff -ruwN binutils/objcopy.c binutils/objcopy.c
OPTION_FILE_ALIGNMENT,
OPTION_HEAP,
OPTION_IMAGE_BASE,
-@@ -346,10 +349,12 @@
+@@ -358,10 +361,12 @@ static struct option copy_options[] =
{"adjust-section-vma", required_argument, 0, OPTION_CHANGE_SECTION_ADDRESS},
{"adjust-warnings", no_argument, 0, OPTION_CHANGE_WARNINGS},
{"alt-machine-code", required_argument, 0, OPTION_ALT_MACH_CODE},
@@ -1747,7 +1748,7 @@ diff -ruwN binutils/objcopy.c binutils/objcopy.c
{"change-section-address", required_argument, 0, OPTION_CHANGE_SECTION_ADDRESS},
{"change-section-lma", required_argument, 0, OPTION_CHANGE_SECTION_LMA},
{"change-section-vma", required_argument, 0, OPTION_CHANGE_SECTION_VMA},
-@@ -543,6 +548,8 @@
+@@ -554,6 +559,8 @@ copy_usage (FILE *stream, int exit_statu
--prefix-alloc-sections <prefix>\n\
Add <prefix> to start of every allocatable\n\
section name\n\
@@ -1756,7 +1757,7 @@ diff -ruwN binutils/objcopy.c binutils/objcopy.c
--file-alignment <num> Set PE file alignment to <num>\n\
--heap <reserve>[,<commit>] Set PE reserve/commit heap to <reserve>/\n\
<commit>\n\
-@@ -999,6 +1006,8 @@
+@@ -1031,6 +1038,8 @@ filter_symbols (bfd *abfd, bfd *obfd, as
asymbol **from = isyms, **to = osyms;
long src_count = 0, dst_count = 0;
int relocatable = (abfd->flags & (EXEC_P | DYNAMIC)) == 0;
@@ -1765,7 +1766,7 @@ diff -ruwN binutils/objcopy.c binutils/objcopy.c
for (; src_count < symcount; src_count++)
{
-@@ -1099,7 +1108,8 @@
+@@ -1131,7 +1140,8 @@ filter_symbols (bfd *abfd, bfd *obfd, as
|| bfd_is_com_section (bfd_get_section (sym)))
keep = strip_symbols != STRIP_UNNEEDED;
else if ((flags & BSF_DEBUGGING) != 0) /* Debugging symbol. */
@@ -1775,7 +1776,7 @@ diff -ruwN binutils/objcopy.c binutils/objcopy.c
&& strip_symbols != STRIP_UNNEEDED
&& ! convert_debugging);
else if (bfd_coff_get_comdat_section (abfd, bfd_get_section (sym)))
-@@ -2817,6 +2827,10 @@
+@@ -2883,6 +2893,10 @@ write_debugging_info (bfd *obfd, void *d
return write_ieee_debugging_info (obfd, dhandle);
if (bfd_get_flavour (obfd) == bfd_target_coff_flavour
@@ -1786,7 +1787,7 @@ diff -ruwN binutils/objcopy.c binutils/objcopy.c
|| bfd_get_flavour (obfd) == bfd_target_elf_flavour)
{
bfd_byte *syms, *strings;
-@@ -3641,6 +3655,30 @@
+@@ -3735,6 +3749,30 @@ copy_main (int argc, char *argv[])
prefix_alloc_sections_string = optarg;
break;
@@ -1817,10 +1818,10 @@ diff -ruwN binutils/objcopy.c binutils/objcopy.c
case OPTION_READONLY_TEXT:
bfd_flags_to_set |= WP_TEXT;
bfd_flags_to_clear &= ~WP_TEXT;
-diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
+diff -Naurp binutils/rdcoff.c binutils/rdcoff.c
--- binutils/rdcoff.c 2009-09-02 12:52:32.000000000 +0530
-+++ binutils/rdcoff.c 2010-03-11 12:13:23.334879700 +0530
-@@ -82,6 +82,9 @@
++++ binutils/rdcoff.c 2011-11-30 12:54:36.000000000 +0530
+@@ -82,6 +82,9 @@ struct coff_types
struct coff_slots *slots;
/* Basic types. */
debug_type basic[T_MAX + 1];
@@ -1830,7 +1831,7 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
};
static debug_type *coff_get_slot (struct coff_types *, int);
-@@ -101,6 +104,7 @@
+@@ -101,6 +104,7 @@ static bfd_boolean parse_coff_symbol
(bfd *, struct coff_types *, asymbol *, long, struct internal_syment *,
void *, debug_type, bfd_boolean);
static bfd_boolean external_coff_symbol_p (int sym_class);
@@ -1838,7 +1839,7 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
/* Return the slot for a type. */
-@@ -271,8 +275,7 @@
+@@ -271,8 +275,7 @@ parse_coff_base_type (bfd *abfd, struct
break;
case T_INT:
@@ -1848,7 +1849,7 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
name = "int";
break;
-@@ -287,7 +290,7 @@
+@@ -287,7 +290,7 @@ parse_coff_base_type (bfd *abfd, struct
break;
case T_DOUBLE:
@@ -1857,7 +1858,7 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
name = "double";
break;
-@@ -307,7 +310,7 @@
+@@ -307,7 +310,7 @@ parse_coff_base_type (bfd *abfd, struct
break;
case T_UINT:
@@ -1866,7 +1867,7 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
name = "unsigned int";
break;
-@@ -565,6 +568,8 @@
+@@ -565,6 +568,8 @@ parse_coff_symbol (bfd *abfd ATTRIBUTE_U
case C_WEAKEXT:
case C_EXT:
@@ -1875,7 +1876,7 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
if (! debug_record_variable (dhandle, bfd_asymbol_name (sym), type,
DEBUG_GLOBAL, bfd_asymbol_value (sym)))
return FALSE;
-@@ -580,9 +585,9 @@
+@@ -580,9 +585,9 @@ parse_coff_symbol (bfd *abfd ATTRIBUTE_U
break;
case C_REG:
@@ -1887,7 +1888,7 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
return FALSE;
break;
-@@ -596,9 +601,9 @@
+@@ -596,9 +601,9 @@ parse_coff_symbol (bfd *abfd ATTRIBUTE_U
break;
case C_REGPARM:
@@ -1899,7 +1900,7 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
return FALSE;
break;
-@@ -648,6 +653,28 @@
+@@ -648,6 +653,28 @@ external_coff_symbol_p (int sym_class)
return FALSE;
}
@@ -1928,7 +1929,7 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
/* This is the main routine. It looks through all the symbols and
handles them. */
-@@ -674,6 +701,17 @@
+@@ -674,6 +701,17 @@ parse_coff (bfd *abfd, asymbol **syms, l
types.slots = NULL;
for (i = 0; i <= T_MAX; i++)
types.basic[i] = DEBUG_TYPE_NULL;
@@ -1946,7 +1947,7 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
next_c_file = -1;
fnname = NULL;
-@@ -734,7 +772,6 @@
+@@ -734,7 +772,6 @@ parse_coff (bfd *abfd, asymbol **syms, l
switch (syment.n_sclass)
{
case C_EFCN:
@@ -1954,7 +1955,7 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
case C_ULABEL:
case C_USTATIC:
case C_LINE:
-@@ -757,6 +794,8 @@
+@@ -757,6 +794,8 @@ parse_coff (bfd *abfd, asymbol **syms, l
/* Fall through. */
case C_WEAKEXT:
case C_EXT:
@@ -1963,9 +1964,9 @@ diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
if (ISFCN (syment.n_type))
{
fnname = name;
-diff -ruwN binutils/wrcoff.c binutils/wrcoff.c
+diff -Naurp binutils/wrcoff.c binutils/wrcoff.c
--- binutils/wrcoff.c 1970-01-01 05:30:00.000000000 +0530
-+++ binutils/wrcoff.c 2010-03-11 12:13:23.366126300 +0530
++++ binutils/wrcoff.c 2011-11-30 12:54:36.000000000 +0530
@@ -0,0 +1,3410 @@
+/* wrcoff.c -- Generate (AVR) COFF debugging information
+ Copyright 2003 Free Software Foundation, Inc.
@@ -3139,13 +3140,13 @@ diff -ruwN binutils/wrcoff.c binutils/wrcoff.c
+ if (ehash->nfixidxs != 0)
+ {
+ coff_symbol_type *symp;
-+ unsigned i;
++ unsigned tmp_i1;
+
-+ for (i = 0; i < ehash->nfixidxs; i++)
++ for (tmp_i1 = 0; tmp_i1 < ehash->nfixidxs; tmp_i1++)
+ {
+ combined_entry_type *np;
+
-+ symp = (coff_symbol_type *) info->syms[ehash->fixidxs[i]];
++ symp = (coff_symbol_type *) info->syms[ehash->fixidxs[tmp_i1]];
+ symp->native->u.syment.n_type &= ~N_BTMASK;
+ symp->native->u.syment.n_type |= T_ENUM;
+
@@ -3207,13 +3208,13 @@ diff -ruwN binutils/wrcoff.c binutils/wrcoff.c
+ if (shash->nfixidxs != 0)
+ {
+ coff_symbol_type *symp;
-+ unsigned i;
++ unsigned tmp_i2;
+
-+ for (i = 0; i < shash->nfixidxs; i++)
++ for (tmp_i2 = 0; tmp_i2 < shash->nfixidxs; tmp_i2++)
+ {
+ combined_entry_type *np;
+
-+ symp = (coff_symbol_type *) info->syms[shash->fixidxs[i]];
++ symp = (coff_symbol_type *) info->syms[shash->fixidxs[tmp_i2]];
+ symp->native->u.syment.n_type &= ~N_BTMASK;
+ if (tst->u.ts_struct.isstruct)
+ symp->native->u.syment.n_type |= T_STRUCT;
@@ -5377,9 +5378,9 @@ diff -ruwN binutils/wrcoff.c binutils/wrcoff.c
+
+ return TRUE;
+}
-diff -ruwN include/coff/avr.h include/coff/avr.h
+diff -Naurp include/coff/avr.h include/coff/avr.h
--- include/coff/avr.h 1970-01-01 05:30:00.000000000 +0530
-+++ include/coff/avr.h 2010-03-11 12:13:23.381749600 +0530
++++ include/coff/avr.h 2011-11-30 12:54:36.000000000 +0530
@@ -0,0 +1,110 @@
+/* coff information for Atmel AVR.
+
@@ -5491,10 +5492,10 @@ diff -ruwN include/coff/avr.h include/coff/avr.h
+
+#define RELOC struct external_reloc
+#define RELSZ 10
-diff -ruwN include/coff/internal.h include/coff/internal.h
---- include/coff/internal.h 2009-09-02 12:51:39.000000000 +0530
-+++ include/coff/internal.h 2010-03-11 12:13:23.381749600 +0530
-@@ -646,6 +646,8 @@
+diff -Naurp include/coff/internal.h include/coff/internal.h
+--- include/coff/internal.h 2011-03-31 13:43:48.000000000 +0530
++++ include/coff/internal.h 2011-11-30 12:54:36.000000000 +0530
+@@ -649,6 +649,8 @@ union internal_auxent
};
diff --git a/302-binutils-2.20.1-new-sections.patch b/302-binutils-2.20.1-new-sections.patch
deleted file mode 100644
index c1dac97..0000000
--- a/302-binutils-2.20.1-new-sections.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -ruwN ld/scripttempl/avr.sc ld/scripttempl/avr.sc
---- ld/scripttempl/avr.sc 2009-10-09 18:42:35.000000000 +0530
-+++ ld/scripttempl/avr.sc 2010-03-11 12:26:00.563046000 +0530
-@@ -7,6 +7,9 @@
- text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH
- data (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH
- eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
-+ fuse (rw!x) : ORIGIN = 0x820000, LENGTH = 1K
-+ lock (rw!x) : ORIGIN = 0x830000, LENGTH = 1K
-+ signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K
- }
-
- SECTIONS
-@@ -196,6 +199,24 @@
- ${RELOCATING+ __eeprom_end = . ; }
- } ${RELOCATING+ > eeprom}
-
-+ .fuse ${RELOCATING-0}:
-+ {
-+ KEEP(*(.fuse))
-+ KEEP(*(.lfuse))
-+ KEEP(*(.hfuse))
-+ KEEP(*(.efuse))
-+ } ${RELOCATING+ > fuse}
-+
-+ .lock ${RELOCATING-0}:
-+ {
-+ KEEP(*(.lock*))
-+ } ${RELOCATING+ > lock}
-+
-+ .signature ${RELOCATING-0}:
-+ {
-+ KEEP(*(.signature*))
-+ } ${RELOCATING+ > signature}
-+
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
diff --git a/302-binutils-as-dwarf.patch b/302-binutils-as-dwarf.patch
new file mode 100644
index 0000000..c74d4ae
--- /dev/null
+++ b/302-binutils-as-dwarf.patch
@@ -0,0 +1,19 @@
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2011-03-29 23:46:15.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-16 12:28:16.000000000 +0530
+@@ -24,6 +24,7 @@
+ #include "as.h"
+ #include "safe-ctype.h"
+ #include "subsegs.h"
++#include "dwarf2dbg.h"
+ #include "dw2gencfi.h"
+
+
+@@ -1453,6 +1454,7 @@ md_assemble (char *str)
+
+ dwarf2_emit_insn (0);
+
++ dwarf2_emit_insn (0);
+ /* We used to set input_line_pointer to the result of get_operands,
+ but that is wrong. Our caller assumes we don't change it. */
+ {
diff --git a/303-binutils-2.20.1-as-dwarf.patch b/303-binutils-2.20.1-as-dwarf.patch
deleted file mode 100644
index 6aade2d..0000000
--- a/303-binutils-2.20.1-as-dwarf.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -ruwN gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2010-03-11 14:56:16.484109300 +0530
-+++ gas/config/tc-avr.c 2010-03-11 14:58:59.248690500 +0530
-@@ -24,6 +24,7 @@
- #include "as.h"
- #include "safe-ctype.h"
- #include "subsegs.h"
-+#include "dwarf2dbg.h"
-
- struct avr_opcodes_s
- {
-@@ -1368,6 +1369,7 @@
-
- dwarf2_emit_insn (0);
-
-+ dwarf2_emit_insn (0);
- /* We used to set input_line_pointer to the result of get_operands,
- but that is wrong. Our caller assumes we don't change it. */
- {
-diff -ruwN gas/config/tc-avr.h gas/config/tc-avr.h
---- gas/config/tc-avr.h 2010-03-11 14:56:16.484109300 +0530
-+++ gas/config/tc-avr.h 2010-03-11 14:58:59.264313900 +0530
-@@ -147,3 +147,6 @@
-
- /* This target is buggy, and sets fix size too large. */
- #define TC_FX_SIZE_SLACK(FIX) 2
-+
-+/* keep DWARF2_ADDR_SIZE in consistency with C compiler produced information */
-+#define DWARF2_ADDR_SIZE(bfd) 4
diff --git a/304-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch b/303-binutils-dwarf2-AVRStudio-workaround.patch
similarity index 76%
rename from 304-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch
rename to 303-binutils-dwarf2-AVRStudio-workaround.patch
index a75b26b..0813ff1 100644
--- a/304-binutils-2.20.1-dwarf2-AVRStudio-workaround.patch
+++ b/303-binutils-dwarf2-AVRStudio-workaround.patch
@@ -1,7 +1,7 @@
-diff -ruwN gas/dwarf2dbg.c gas/dwarf2dbg.c
---- gas/dwarf2dbg.c 2010-03-11 15:06:25.773290700 +0530
-+++ gas/dwarf2dbg.c 2010-03-11 15:08:20.410311300 +0530
-@@ -112,8 +112,11 @@
+diff -Naurp gas/dwarf2dbg.c gas/dwarf2dbg.c
+--- gas/dwarf2dbg.c 2011-11-28 13:04:11.000000000 +0530
++++ gas/dwarf2dbg.c 2011-11-28 16:33:02.000000000 +0530
+@@ -116,8 +116,11 @@
Note: If you want to change this, you'll have to update the
"standard_opcode_lengths" table that is emitted below in
out_debug_line(). */
@@ -14,7 +14,7 @@ diff -ruwN gas/dwarf2dbg.c gas/dwarf2dbg.c
#ifndef DWARF2_LINE_BASE
/* Minimum line offset in a special line info. opcode. This value
was chosen to give a reasonable range of values. */
-@@ -1439,9 +1442,11 @@
+@@ -1482,9 +1485,11 @@ out_debug_line (segT line_seg)
out_byte (0); /* DW_LNS_set_basic_block */
out_byte (0); /* DW_LNS_const_add_pc */
out_byte (1); /* DW_LNS_fixed_advance_pc */
diff --git a/501-binutils-2.20.1-bug13113.patch b/304-binutils-bug13113.patch
similarity index 82%
rename from 501-binutils-2.20.1-bug13113.patch
rename to 304-binutils-bug13113.patch
index d79bdc5..5962434 100644
--- a/501-binutils-2.20.1-bug13113.patch
+++ b/304-binutils-bug13113.patch
@@ -1,7 +1,7 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2012-01-24 12:19:53.000000000 +0530
-+++ binutils/size.c 2012-01-24 12:17:26.000000000 +0530
-@@ -402,6 +402,7 @@ usage (FILE *stream, int status)
+--- binutils/size.c 2011-12-16 12:25:31.000000000 +0530
++++ binutils/size.c 2011-12-16 12:36:09.000000000 +0530
+@@ -341,6 +341,7 @@ usage (FILE *stream, int status)
fprintf (stream, _(" The options are:\n\
-A|-B|-C --format={sysv|berkeley|avr} Select output style (default is %s)\n\
--mcu=<avrmcu> MCU name for AVR format only\n\
@@ -9,7 +9,7 @@ diff -Naurp binutils/size.c binutils/size.c
-o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n\
-t --totals Display the total sizes (Berkeley only)\n\
--common Display total size for *COM* syms\n\
-@@ -422,6 +423,7 @@ FORMAT_NAME
+@@ -361,6 +362,7 @@ FORMAT_NAME
#define OPTION_RADIX (OPTION_FORMAT + 1)
#define OPTION_TARGET (OPTION_RADIX + 1)
#define OPTION_MCU (OPTION_TARGET + 1)
@@ -17,7 +17,7 @@ diff -Naurp binutils/size.c binutils/size.c
static struct option long_options[] =
{
-@@ -430,12 +432,37 @@ static struct option long_options[] =
+@@ -369,12 +371,37 @@ static struct option long_options[] =
{"radix", required_argument, 0, OPTION_RADIX},
{"target", required_argument, 0, OPTION_TARGET},
{"mcu", required_argument, 0, 203},
@@ -55,7 +55,7 @@ diff -Naurp binutils/size.c binutils/size.c
int main (int, char **);
int
-@@ -490,6 +517,10 @@ main (int argc, char **argv)
+@@ -429,6 +456,10 @@ main (int argc, char **argv)
avrmcu = optarg;
break;
@@ -67,9 +67,9 @@ diff -Naurp binutils/size.c binutils/size.c
target = optarg;
break;
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2012-01-24 12:19:53.000000000 +0530
-+++ gas/config/tc-avr.c 2012-01-24 12:17:26.000000000 +0530
-@@ -392,7 +392,8 @@ static struct hash_control *avr_mod_hash
+--- gas/config/tc-avr.c 2011-12-16 12:30:52.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-16 12:36:09.000000000 +0530
+@@ -348,7 +348,8 @@ static struct hash_control *avr_mod_hash
#define OPTION_MMCU 'm'
enum options
{
@@ -79,7 +79,7 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
OPTION_NO_SKIP_BUG,
OPTION_NO_WRAP
};
-@@ -400,6 +401,7 @@ enum options
+@@ -356,6 +357,7 @@ enum options
struct option md_longopts[] =
{
{ "mmcu", required_argument, NULL, OPTION_MMCU },
@@ -87,8 +87,8 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{ "mall-opcodes", no_argument, NULL, OPTION_ALL_OPCODES },
{ "mno-skip-bug", no_argument, NULL, OPTION_NO_SKIP_BUG },
{ "mno-wrap", no_argument, NULL, OPTION_NO_WRAP },
-@@ -504,12 +506,12 @@ md_show_usage (FILE *stream)
- " avrtiny10 - tiny devices with 16 gp registers\n"
+@@ -458,12 +460,12 @@ md_show_usage (FILE *stream)
+ " avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM\n"
" or immediate microcontroller name.\n"));
fprintf (stream,
- _(" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
@@ -102,7 +102,7 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
}
static void
-@@ -561,6 +563,9 @@ md_parse_option (int c, char *arg)
+@@ -515,6 +517,9 @@ md_parse_option (int c, char *arg)
avr_mcu->name, mcu_types[i].name);
return 1;
}
diff --git a/305-binutils-2.20.1-assembler-options.patch b/305-binutils-2.20.1-assembler-options.patch
deleted file mode 100644
index 18ecaac..0000000
--- a/305-binutils-2.20.1-assembler-options.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-02-08 10:59:27.000000000 -0600
-+++ gas/config/tc-avr.c 2011-02-08 11:01:47.000000000 -0600
-@@ -378,7 +378,7 @@ void
- md_show_usage (FILE *stream)
- {
- fprintf (stream,
-- _("AVR options:\n"
-+ _("AVR Assembler options:\n"
- " -mmcu=[avr-name] select microcontroller variant\n"
- " [avr-name] can be:\n"
- " avr1 - classic AVR core without data RAM\n"
diff --git a/305-binutils-new-usb-insns.patch b/305-binutils-new-usb-insns.patch
new file mode 100644
index 0000000..9d5dd7b
--- /dev/null
+++ b/305-binutils-new-usb-insns.patch
@@ -0,0 +1,31 @@
+diff -Naurp include/opcode/avr.h include/opcode/avr.h
+--- include/opcode/avr.h 2011-07-01 22:44:03.000000000 +0530
++++ include/opcode/avr.h 2011-12-22 11:56:43.000000000 +0530
+@@ -33,6 +33,7 @@
+ #define AVR_ISA_MOVW 0x1000 /* device has MOVW */
+ #define AVR_ISA_SPMX 0x2000 /* device has SPM Z[+] */
+ #define AVR_ISA_DES 0x4000 /* device has DES */
++#define AVR_ISA_USB 0x8000 /* device has USB */
+
+ #define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
+ #define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
+@@ -53,6 +54,7 @@
+ #define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX)
+ #define AVR_ISA_M256 (AVR_ISA_M128 | AVR_ISA_EIND)
+ #define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES)
++#define AVR_ISA_XMEGAU (AVR_ISA_XMEGA | AVR_ISA_USB)
+
+ #define AVR_ISA_AVR1 AVR_ISA_TINY1
+ #define AVR_ISA_AVR2 AVR_ISA_2xxx
+@@ -276,6 +278,11 @@ AVR_INSN (fmulsu,"a,a","000000111ddd1rrr
+ AVR_INSN (sts, "i,r", "1001001ddddd0000", 2, AVR_ISA_2xxx, 0x9200)
+ AVR_INSN (lds, "r,i", "1001000ddddd0000", 2, AVR_ISA_2xxx, 0x9000)
+
++AVR_INSN (xch, "z,r", "1001001rrrrr0100", 1, AVR_ISA_XMEGAU, 0x9204)
++AVR_INSN (las, "z,r", "1001001rrrrr0101", 1, AVR_ISA_XMEGAU, 0x9205)
++AVR_INSN (lac, "z,r", "1001001rrrrr0110", 1, AVR_ISA_XMEGAU, 0x9206)
++AVR_INSN (lat, "z,r", "1001001rrrrr0111", 1, AVR_ISA_XMEGAU, 0x9207)
++
+ /* Special case for b+0, `e' must be next entry after `b',
+ b={Y=1,Z=0}, ee={X=11,Y=10,Z=00}, !=1 if -e or e+ or X. */
+ AVR_INSN (ldd, "r,b", "10o0oo0dddddbooo", 1, AVR_ISA_2xxx, 0x8000)
diff --git a/306-binutils-bug15573-AVRTC-419.patch b/306-binutils-bug15573-AVRTC-419.patch
new file mode 100644
index 0000000..939916e
--- /dev/null
+++ b/306-binutils-bug15573-AVRTC-419.patch
@@ -0,0 +1,26 @@
+--- bfd/elf32-avr.c 2011-06-02 19:13:14.000000000 +0530
++++ bfd/elf32-avr.c 2012-02-01 19:09:51.000000000 +0530
+@@ -1506,8 +1506,12 @@
+ shrinked_insn_address = (sec->output_section->vma
+ + sec->output_offset + addr - count);
+
+- irelend = elf_section_data (isec)->relocs + isec->reloc_count;
+- for (irel = elf_section_data (isec)->relocs;
++ irel = elf_section_data (isec)->relocs;
++
++ if (NULL == irel)
++ irel = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL, FALSE);
++
++ for (irelend = irel + isec->reloc_count;
+ irel < irelend;
+ irel++)
+ {
+@@ -1564,6 +1568,8 @@
+ /* else...Reference symbol is extern. No need for adjusting
+ the addend. */
+ }
++ if (NULL == elf_section_data (isec)->relocs)
++ free (irelend - isec->reloc_count);
+ }
+ }
+
diff --git a/307-binutils-fix-AVRTC-424.patch b/307-binutils-fix-AVRTC-424.patch
new file mode 100644
index 0000000..1ae373b
--- /dev/null
+++ b/307-binutils-fix-AVRTC-424.patch
@@ -0,0 +1,55 @@
+--- bfd/elf32-avr.c 2012-02-02 15:47:48.000000000 +0530
++++ bfd/elf32-avr.c 2012-02-02 15:50:59.000000000 +0530
+@@ -1655,6 +1655,16 @@ elf32_avr_relax_section (bfd *abfd,
+ Elf_Internal_Sym *isymbuf = NULL;
+ struct elf32_avr_link_hash_table *htab;
+
++ /* If 'shrinkable' is FALSE, do not shrink by deleting bytes while
++ relaxing. Such shrinking can cause issues for the sections such
++ as .vectors and .jumptables. Instead the unused bytes should be
++ filled with nop instructions */
++ bfd_boolean shrinkable = TRUE;
++
++ if (!strcmp (sec->name,".vectors")
++ || !strcmp (sec->name,".jumptables"))
++ shrinkable = FALSE;
++
+ if (link_info->relocatable)
+ (*link_info->callbacks->einfo)
+ (_("%P%F: --relax and -r may not be used together\n"));
+@@ -1811,10 +1821,16 @@ elf32_avr_relax_section (bfd *abfd,
+ /* Compute the distance from this insn to the branch target. */
+ gap = value - dot;
+
+- /* If the distance is within -4094..+4098 inclusive, then we can
+- relax this jump/call. +4098 because the call/jump target
+- will be closer after the relaxation. */
+- if ((int) gap >= -4094 && (int) gap <= 4098)
++ /* Check if the gap falls in the range that can be accommodated
++ in 13bits signed (It is 12bits when encoded, as we deal with
++ word addressing). */
++ if (!shrinkable && ((int) gap >= -4096 && (int) gap <= 4095))
++ distance_short_enough = 1;
++ /* If shrinkable, then we can check for a range of distance which
++ is two bytes farther on both the directions because the call
++ or jump target will be closer by two bytes after the
++ relaxation. */
++ else if (shrinkable && ((int) gap >= -4094 && (int) gap <= 4097))
+ distance_short_enough = 1;
+
+ /* Here we handle the wrap-around case. E.g. for a 16k device
+@@ -1888,11 +1904,9 @@ elf32_avr_relax_section (bfd *abfd,
+ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+ R_AVR_13_PCREL);
+
+- /* Check for the vector section. There we don't want to
+- modify the ordering! */
+-
+- if (!strcmp (sec->name,".vectors")
+- || !strcmp (sec->name,".jumptables"))
++ /* We should not modify the ordering if 'shrinkable' is
++ FALSE */
++ if (!shrinkable)
+ {
+ /* Let's insert a nop. */
+ bfd_put_8 (abfd, 0x00, contents + irel->r_offset + 2);
diff --git a/400-binutils-2.20.1-xmega.patch b/400-binutils-2.20.1-xmega.patch
deleted file mode 100644
index 7f6e084..0000000
--- a/400-binutils-2.20.1-xmega.patch
+++ /dev/null
@@ -1,679 +0,0 @@
-avrxmega1
-avrxmega2
-avrxmega3
-avrxmega4
-avrxmega5
-avrxmega6
-avrxmega7
-atxmega16a4
-atxmega16d4
-atxmega32d4
-atxmega32a4
-atxmega64a3
-atxmega64d3
-atxmega64a1
-atxmega128a3
-atxmega128d3
-atxmega192a3
-atxmega192d3
-atxmega256a3
-atxmega256a3b
-atxmega256d3
-atxmega128a1
-=======================================================
-diff -Naurp bfd/archures.c bfd/archures.c
---- bfd/archures.c 2009-09-10 06:47:11.000000000 -0500
-+++ bfd/archures.c 2011-06-07 11:44:52.000000000 -0500
-@@ -368,6 +368,13 @@ DESCRIPTION
- .#define bfd_mach_avr5 5
- .#define bfd_mach_avr51 51
- .#define bfd_mach_avr6 6
-+.#define bfd_mach_avrxmega1 101
-+.#define bfd_mach_avrxmega2 102
-+.#define bfd_mach_avrxmega3 103
-+.#define bfd_mach_avrxmega4 104
-+.#define bfd_mach_avrxmega5 105
-+.#define bfd_mach_avrxmega6 106
-+.#define bfd_mach_avrxmega7 107
- . bfd_arch_bfin, {* ADI Blackfin *}
- .#define bfd_mach_bfin 1
- . bfd_arch_cr16, {* National Semiconductor CompactRISC (ie CR16). *}
-diff -Naurp bfd/bfd-in2.h bfd/bfd-in2.h
---- bfd/bfd-in2.h 2010-02-03 07:28:24.000000000 -0600
-+++ bfd/bfd-in2.h 2011-06-07 11:44:52.000000000 -0500
-@@ -2042,6 +2042,13 @@ enum bfd_architecture
- #define bfd_mach_avr5 5
- #define bfd_mach_avr51 51
- #define bfd_mach_avr6 6
-+#define bfd_mach_avrxmega1 101
-+#define bfd_mach_avrxmega2 102
-+#define bfd_mach_avrxmega3 103
-+#define bfd_mach_avrxmega4 104
-+#define bfd_mach_avrxmega5 105
-+#define bfd_mach_avrxmega6 106
-+#define bfd_mach_avrxmega7 107
- bfd_arch_bfin, /* ADI Blackfin */
- #define bfd_mach_bfin 1
- bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */
-diff -Naurp bfd/cpu-avr.c bfd/cpu-avr.c
---- bfd/cpu-avr.c 2009-09-02 02:18:36.000000000 -0500
-+++ bfd/cpu-avr.c 2011-06-07 11:44:52.000000000 -0500
-@@ -133,7 +133,29 @@ static const bfd_arch_info_type arch_inf
- N (22, bfd_mach_avr51, "avr:51", FALSE, & arch_info_struct[9]),
-
- /* 3-Byte PC. */
-- N (22, bfd_mach_avr6, "avr:6", FALSE, NULL)
-+ N (22, bfd_mach_avr6, "avr:6", FALSE, & arch_info_struct[10]),
-+
-+ /* Xmega 1 */
-+ N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[11]),
-+
-+ /* Xmega 2 */
-+ N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[12]),
-+
-+ /* Xmega 3 */
-+ N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[13]),
-+
-+ /* Xmega 4 */
-+ N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[14]),
-+
-+ /* Xmega 5 */
-+ N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[15]),
-+
-+ /* Xmega 6 */
-+ N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]),
-+
-+ /* Xmega 7 */
-+ N (24, bfd_mach_avrxmega7, "avr:107", FALSE, NULL)
-+
- };
-
- const bfd_arch_info_type bfd_avr_arch =
-diff -Naurp bfd/elf32-avr.c bfd/elf32-avr.c
---- bfd/elf32-avr.c 2009-09-02 02:18:36.000000000 -0500
-+++ bfd/elf32-avr.c 2011-06-07 11:44:52.000000000 -0500
-@@ -1328,6 +1328,34 @@ bfd_elf_avr_final_write_processing (bfd
- case bfd_mach_avr6:
- val = E_AVR_MACH_AVR6;
- break;
-+
-+ case bfd_mach_avrxmega1:
-+ val = E_AVR_MACH_XMEGA1;
-+ break;
-+
-+ case bfd_mach_avrxmega2:
-+ val = E_AVR_MACH_XMEGA2;
-+ break;
-+
-+ case bfd_mach_avrxmega3:
-+ val = E_AVR_MACH_XMEGA3;
-+ break;
-+
-+ case bfd_mach_avrxmega4:
-+ val = E_AVR_MACH_XMEGA4;
-+ break;
-+
-+ case bfd_mach_avrxmega5:
-+ val = E_AVR_MACH_XMEGA5;
-+ break;
-+
-+ case bfd_mach_avrxmega6:
-+ val = E_AVR_MACH_XMEGA6;
-+ break;
-+
-+ case bfd_mach_avrxmega7:
-+ val = E_AVR_MACH_XMEGA7;
-+ break;
- }
-
- elf_elfheader (abfd)->e_machine = EM_AVR;
-@@ -1390,6 +1418,34 @@ elf32_avr_object_p (bfd *abfd)
- case E_AVR_MACH_AVR6:
- e_set = bfd_mach_avr6;
- break;
-+
-+ case E_AVR_MACH_XMEGA1:
-+ e_set = bfd_mach_avrxmega1;
-+ break;
-+
-+ case E_AVR_MACH_XMEGA2:
-+ e_set = bfd_mach_avrxmega2;
-+ break;
-+
-+ case E_AVR_MACH_XMEGA3:
-+ e_set = bfd_mach_avrxmega3;
-+ break;
-+
-+ case E_AVR_MACH_XMEGA4:
-+ e_set = bfd_mach_avrxmega4;
-+ break;
-+
-+ case E_AVR_MACH_XMEGA5:
-+ e_set = bfd_mach_avrxmega5;
-+ break;
-+
-+ case E_AVR_MACH_XMEGA6:
-+ e_set = bfd_mach_avrxmega6;
-+ break;
-+
-+ case E_AVR_MACH_XMEGA7:
-+ e_set = bfd_mach_avrxmega7;
-+ break;
- }
- }
- return bfd_default_set_arch_mach (abfd, bfd_arch_avr,
-diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-06-07 11:47:11.000000000 -0500
-+++ gas/config/tc-avr.c 2011-06-07 11:44:52.000000000 -0500
-@@ -30,18 +30,19 @@ struct avr_opcodes_s
- {
- char * name;
- char * constraints;
-+ char *opcode;
- int insn_size; /* In words. */
- int isa;
- unsigned int bin_opcode;
- };
-
- #define AVR_INSN(NAME, CONSTR, OPCODE, SIZE, ISA, BIN) \
--{#NAME, CONSTR, SIZE, ISA, BIN},
-+{#NAME, CONSTR, OPCODE, SIZE, ISA, BIN},
-
- struct avr_opcodes_s avr_opcodes[] =
- {
- #include "opcode/avr.h"
-- {NULL, NULL, 0, 0, 0}
-+ {NULL, NULL, NULL, 0, 0, 0}
- };
-
- const char comment_chars[] = ";";
-@@ -80,6 +81,13 @@ static struct mcu_type_s mcu_types[] =
- {"avr5", AVR_ISA_AVR51, bfd_mach_avr5},
- {"avr51", AVR_ISA_AVR51, bfd_mach_avr51},
- {"avr6", AVR_ISA_AVR6, bfd_mach_avr6},
-+ {"avrxmega1", AVR_ISA_XMEGA, bfd_mach_avrxmega1},
-+ {"avrxmega2", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-+ {"avrxmega3", AVR_ISA_XMEGA, bfd_mach_avrxmega3},
-+ {"avrxmega4", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
-+ {"avrxmega5", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
-+ {"avrxmega6", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"avrxmega7", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
- {"at90s1200", AVR_ISA_1200, bfd_mach_avr1},
- {"attiny11", AVR_ISA_AVR1, bfd_mach_avr1},
- {"attiny12", AVR_ISA_AVR1, bfd_mach_avr1},
-@@ -216,6 +224,21 @@ static struct mcu_type_s mcu_types[] =
- {"m3001b", AVR_ISA_AVR51, bfd_mach_avr51},
- {"atmega2560", AVR_ISA_AVR6, bfd_mach_avr6},
- {"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6},
-+ {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-+ {"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-+ {"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-+ {"atxmega32d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-+ {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
-+ {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
-+ {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
-+ {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
- {NULL, 0, 0}
- };
-
-@@ -393,6 +416,11 @@ md_show_usage (FILE *stream)
- " avr5 - enhanced AVR core with up to 64K program memory\n"
- " avr51 - enhanced AVR core with up to 128K program memory\n"
- " avr6 - enhanced AVR core with up to 256K program memory\n"
-+ " avrxmega3 - XMEGA, > 8K, <= 64K FLASH, > 64K RAM\n"
-+ " avrxmega4 - XMEGA, > 64K, <= 128K FLASH, <= 64K RAM\n"
-+ " avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n"
-+ " avrxmega6 - XMEGA, > 128K, <= 256K FLASH, <= 64K RAM\n"
-+ " avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM\n"
- " or immediate microcontroller name.\n"));
- fprintf (stream,
- _(" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
-@@ -820,7 +848,12 @@ avr_operand (struct avr_opcodes_s *opcod
- if (*str == '+')
- {
- ++str;
-- op_mask |= 1;
-+ char *s;
-+ for (s = opcode->opcode; *s; ++s)
-+ {
-+ if (*s == '+')
-+ op_mask |= (1 << (15 - (s - opcode->opcode)));
-+ }
- }
-
- /* attiny26 can do "lpm" and "lpm r,Z" but not "lpm r,Z+". */
-@@ -937,6 +970,16 @@ avr_operand (struct avr_opcodes_s *opcod
- }
- break;
-
-+ case 'E':
-+ {
-+ unsigned int x;
-+
-+ x = avr_get_constant (str, 15);
-+ str = input_line_pointer;
-+ op_mask |= (x << 4);
-+ }
-+ break;
-+
- case '?':
- break;
-
-diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2009-09-02 02:24:21.000000000 -0500
-+++ gas/doc/c-avr.texi 2011-06-07 11:44:52.000000000 -0500
-@@ -80,6 +80,27 @@ atmega128rfa1, at90can128, at90usb1286,
- Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types:
- atmega2560, atmega2561).
-
-+Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program
-+memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16d4,
-+atxmega32d4).
-+
-+Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program
-+memory space and greater than 64K data space (MCU types: atxmega32a4).
-+
-+Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
-+memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64d3).
-+
-+Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program
-+memory space and greater than 64K data space (MCU types: atxmega64a1).
-+
-+Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
-+memory space and less than 64K data space (MCU types: atxmega128a3,
-+atxmega128d3, atxmega192a3, atxmega192d3, atxmega256a3, atxmega256a3b,
-+atxmega192d3).
-+
-+Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program
-+memory space and greater than 64K data space (MCU types: atxmega128a1).
-+
- @cindex @code{-mall-opcodes} command line option, AVR
- @item -mall-opcodes
- Accept all AVR opcodes, even if not supported by @code{-mmcu}.
-diff -Naurp include/elf/avr.h include/elf/avr.h
---- include/elf/avr.h 2008-08-09 00:35:13.000000000 -0500
-+++ include/elf/avr.h 2011-06-07 11:44:52.000000000 -0500
-@@ -40,6 +40,13 @@
- #define E_AVR_MACH_AVR5 5
- #define E_AVR_MACH_AVR51 51
- #define E_AVR_MACH_AVR6 6
-+#define E_AVR_MACH_XMEGA1 101
-+#define E_AVR_MACH_XMEGA2 102
-+#define E_AVR_MACH_XMEGA3 103
-+#define E_AVR_MACH_XMEGA4 104
-+#define E_AVR_MACH_XMEGA5 105
-+#define E_AVR_MACH_XMEGA6 106
-+#define E_AVR_MACH_XMEGA7 107
-
- /* Relocations. */
- START_RELOC_NUMBERS (elf_avr_reloc_type)
-diff -Naurp include/opcode/avr.h include/opcode/avr.h
---- include/opcode/avr.h 2008-08-09 00:35:13.000000000 -0500
-+++ include/opcode/avr.h 2011-06-07 11:44:52.000000000 -0500
-@@ -30,6 +30,8 @@
- #define AVR_ISA_BRK 0x0400 /* device has BREAK (on-chip debug) */
- #define AVR_ISA_EIND 0x0800 /* device has >128K program memory (none yet) */
- #define AVR_ISA_MOVW 0x1000 /* device has MOVW */
-+#define AVR_ISA_SPMX 0x2000 /* device has SPM Z[+] */
-+#define AVR_ISA_DES 0x4000 /* device has DES */
-
- #define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
- #define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
-@@ -48,6 +50,8 @@
- #define AVR_ISA_94K (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | AVR_ISA_LPMX)
- #define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK)
- #define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX)
-+#define AVR_ISA_M256 (AVR_ISA_M128 | AVR_ISA_EIND)
-+#define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES)
-
- #define AVR_ISA_AVR1 AVR_ISA_TINY1
- #define AVR_ISA_AVR2 AVR_ISA_2xxx
-@@ -108,6 +112,7 @@
- L - signed pc relative offset from -2048 to 2047
- h - absolute code address (call, jmp)
- S - immediate value from 0 to 7 (S = s << 4)
-+ E - immediate value from 0 to 15, shifted left by 4 (des)
- ? - use this opcode entry if no parameters, else use next opcode entry
-
- Order is important - some binary opcodes have more than one name,
-@@ -168,7 +173,8 @@ AVR_INSN (reti, "", "1001010100011000
- AVR_INSN (sleep,"", "1001010110001000", 1, AVR_ISA_1200, 0x9588)
- AVR_INSN (break,"", "1001010110011000", 1, AVR_ISA_BRK, 0x9598)
- AVR_INSN (wdr, "", "1001010110101000", 1, AVR_ISA_1200, 0x95a8)
--AVR_INSN (spm, "", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
-+AVR_INSN (spm, "?", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
-+AVR_INSN (spm, "z", "10010101111+1000", 1, AVR_ISA_SPMX, 0x95e8)
-
- AVR_INSN (adc, "r,r", "000111rdddddrrrr", 1, AVR_ISA_1200, 0x1c00)
- AVR_INSN (add, "r,r", "000011rdddddrrrr", 1, AVR_ISA_1200, 0x0c00)
-@@ -282,3 +288,6 @@ AVR_INSN (st, "e,r", "100!001rrrrree-+
- AVR_INSN (eicall, "", "1001010100011001", 1, AVR_ISA_EIND, 0x9519)
- AVR_INSN (eijmp, "", "1001010000011001", 1, AVR_ISA_EIND, 0x9419)
-
-+/* DES instruction for encryption and decryption */
-+AVR_INSN (des, "E", "10010100EEEE1011", 1, AVR_ISA_DES, 0x940B)
-+
-diff -Naurp ld/configure.tgt ld/configure.tgt
---- ld/configure.tgt 2009-08-06 12:38:03.000000000 -0500
-+++ ld/configure.tgt 2011-06-07 11:44:52.000000000 -0500
-@@ -110,7 +110,7 @@ xscale-*-coff) targ_emul=armcoff ;;
- xscale-*-elf) targ_emul=armelf
- ;;
- avr-*-*) targ_emul=avr2
-- targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6"
-+ targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7"
- ;;
- bfin-*-elf) targ_emul=elf32bfin;
- targ_extra_emuls="elf32bfinfd"
-diff -Naurp ld/emulparams/avrxmega1.sh ld/emulparams/avrxmega1.sh
---- ld/emulparams/avrxmega1.sh 1969-12-31 18:00:00.000000000 -0600
-+++ ld/emulparams/avrxmega1.sh 2011-06-07 11:44:52.000000000 -0500
-@@ -0,0 +1,12 @@
-+ARCH=avr:101
-+MACHINE=
-+SCRIPT_NAME=avr
-+OUTPUT_FORMAT="elf32-avr"
-+MAXPAGESIZE=1
-+EMBEDDED=yes
-+TEMPLATE_NAME=elf32
-+
-+TEXT_LENGTH=1024K
-+DATA_ORIGIN=0x802000
-+DATA_LENGTH=0xffa0
-+EXTRA_EM_FILE=avrelf
-diff -Naurp ld/emulparams/avrxmega2.sh ld/emulparams/avrxmega2.sh
---- ld/emulparams/avrxmega2.sh 1969-12-31 18:00:00.000000000 -0600
-+++ ld/emulparams/avrxmega2.sh 2011-06-07 11:44:52.000000000 -0500
-@@ -0,0 +1,12 @@
-+ARCH=avr:102
-+MACHINE=
-+SCRIPT_NAME=avr
-+OUTPUT_FORMAT="elf32-avr"
-+MAXPAGESIZE=1
-+EMBEDDED=yes
-+TEMPLATE_NAME=elf32
-+
-+TEXT_LENGTH=1024K
-+DATA_ORIGIN=0x802000
-+DATA_LENGTH=0xffa0
-+EXTRA_EM_FILE=avrelf
-diff -Naurp ld/emulparams/avrxmega3.sh ld/emulparams/avrxmega3.sh
---- ld/emulparams/avrxmega3.sh 1969-12-31 18:00:00.000000000 -0600
-+++ ld/emulparams/avrxmega3.sh 2011-06-07 11:44:52.000000000 -0500
-@@ -0,0 +1,12 @@
-+ARCH=avr:103
-+MACHINE=
-+SCRIPT_NAME=avr
-+OUTPUT_FORMAT="elf32-avr"
-+MAXPAGESIZE=1
-+EMBEDDED=yes
-+TEMPLATE_NAME=elf32
-+
-+TEXT_LENGTH=1024K
-+DATA_ORIGIN=0x802000
-+DATA_LENGTH=0xffa0
-+EXTRA_EM_FILE=avrelf
-diff -Naurp ld/emulparams/avrxmega4.sh ld/emulparams/avrxmega4.sh
---- ld/emulparams/avrxmega4.sh 1969-12-31 18:00:00.000000000 -0600
-+++ ld/emulparams/avrxmega4.sh 2011-06-07 11:44:52.000000000 -0500
-@@ -0,0 +1,12 @@
-+ARCH=avr:104
-+MACHINE=
-+SCRIPT_NAME=avr
-+OUTPUT_FORMAT="elf32-avr"
-+MAXPAGESIZE=1
-+EMBEDDED=yes
-+TEMPLATE_NAME=elf32
-+
-+TEXT_LENGTH=1024K
-+DATA_ORIGIN=0x802000
-+DATA_LENGTH=0xffa0
-+EXTRA_EM_FILE=avrelf
-diff -Naurp ld/emulparams/avrxmega5.sh ld/emulparams/avrxmega5.sh
---- ld/emulparams/avrxmega5.sh 1969-12-31 18:00:00.000000000 -0600
-+++ ld/emulparams/avrxmega5.sh 2011-06-07 11:44:52.000000000 -0500
-@@ -0,0 +1,12 @@
-+ARCH=avr:105
-+MACHINE=
-+SCRIPT_NAME=avr
-+OUTPUT_FORMAT="elf32-avr"
-+MAXPAGESIZE=1
-+EMBEDDED=yes
-+TEMPLATE_NAME=elf32
-+
-+TEXT_LENGTH=1024K
-+DATA_ORIGIN=0x802000
-+DATA_LENGTH=0xffa0
-+EXTRA_EM_FILE=avrelf
-diff -Naurp ld/emulparams/avrxmega6.sh ld/emulparams/avrxmega6.sh
---- ld/emulparams/avrxmega6.sh 1969-12-31 18:00:00.000000000 -0600
-+++ ld/emulparams/avrxmega6.sh 2011-06-07 11:44:52.000000000 -0500
-@@ -0,0 +1,12 @@
-+ARCH=avr:106
-+MACHINE=
-+SCRIPT_NAME=avr
-+OUTPUT_FORMAT="elf32-avr"
-+MAXPAGESIZE=1
-+EMBEDDED=yes
-+TEMPLATE_NAME=elf32
-+
-+TEXT_LENGTH=1024K
-+DATA_ORIGIN=0x802000
-+DATA_LENGTH=0xffa0
-+EXTRA_EM_FILE=avrelf
-diff -Naurp ld/emulparams/avrxmega7.sh ld/emulparams/avrxmega7.sh
---- ld/emulparams/avrxmega7.sh 1969-12-31 18:00:00.000000000 -0600
-+++ ld/emulparams/avrxmega7.sh 2011-06-07 11:44:52.000000000 -0500
-@@ -0,0 +1,12 @@
-+ARCH=avr:107
-+MACHINE=
-+SCRIPT_NAME=avr
-+OUTPUT_FORMAT="elf32-avr"
-+MAXPAGESIZE=1
-+EMBEDDED=yes
-+TEMPLATE_NAME=elf32
-+
-+TEXT_LENGTH=1024K
-+DATA_ORIGIN=0x802000
-+DATA_LENGTH=0xffa0
-+EXTRA_EM_FILE=avrelf
-diff -Naurp ld/emultempl/avrelf.em ld/emultempl/avrelf.em
---- ld/emultempl/avrelf.em 2009-09-02 02:25:35.000000000 -0500
-+++ ld/emultempl/avrelf.em 2011-06-07 11:44:52.000000000 -0500
-@@ -71,8 +71,10 @@ avr_elf_${EMULATION_NAME}_before_allocat
-
- gld${EMULATION_NAME}_before_allocation ();
-
-- /* We only need stubs for the avr6 family. */
-- if (strcmp ("${EMULATION_NAME}","avr6"))
-+ /* We only need stubs for avr6, avrxmega6, and avrxmega7. */
-+ if (strcmp ("${EMULATION_NAME}","avr6")
-+ && strcmp ("${EMULATION_NAME}","avrxmega6")
-+ && strcmp ("${EMULATION_NAME}","avrxmega7") )
- avr_no_stubs = TRUE;
-
- avr_elf_set_global_bfd_parameters ();
-diff -Naurp ld/Makefile.am ld/Makefile.am
---- ld/Makefile.am 2010-02-22 02:07:01.000000000 -0600
-+++ ld/Makefile.am 2011-06-07 11:44:52.000000000 -0500
-@@ -148,6 +148,13 @@ ALL_EMULATIONS = \
- eavr5.o \
- eavr51.o \
- eavr6.o \
-+ eavrxmega1.o \
-+ eavrxmega2.o \
-+ eavrxmega3.o \
-+ eavrxmega4.o \
-+ eavrxmega5.o \
-+ eavrxmega6.o \
-+ eavrxmega7.o \
- ecoff_i860.o \
- ecoff_sparc.o \
- eelf32_spu.o \
-@@ -727,6 +734,34 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
- $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
- ${GEN_DEPENDS}
- ${GENSCRIPTS} avr6 "$(tdir_avr2)"
-+eavrxmega1.c: $(srcdir)/emulparams/avrxmega1.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega1 "$(tdir_avr2)"
-+eavrxmega2.c: $(srcdir)/emulparams/avrxmega2.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega2 "$(tdir_avr2)"
-+eavrxmega3.c: $(srcdir)/emulparams/avrxmega3.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega3 "$(tdir_avr2)"
-+eavrxmega4.c: $(srcdir)/emulparams/avrxmega4.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega4 "$(tdir_avr2)"
-+eavrxmega5.c: $(srcdir)/emulparams/avrxmega5.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega5 "$(tdir_avr2)"
-+eavrxmega6.c: $(srcdir)/emulparams/avrxmega6.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega6 "$(tdir_avr2)"
-+eavrxmega7.c: $(srcdir)/emulparams/avrxmega7.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)"
- ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
- $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
- ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
-diff -Naurp ld/Makefile.in ld/Makefile.in
---- ld/Makefile.in 2010-03-03 08:06:21.000000000 -0600
-+++ ld/Makefile.in 2011-06-07 11:44:52.000000000 -0500
-@@ -434,6 +434,13 @@ ALL_EMULATIONS = \
- eavr5.o \
- eavr51.o \
- eavr6.o \
-+ eavrxmega1.o \
-+ eavrxmega2.o \
-+ eavrxmega3.o \
-+ eavrxmega4.o \
-+ eavrxmega5.o \
-+ eavrxmega6.o \
-+ eavrxmega7.o \
- ecoff_i860.o \
- ecoff_sparc.o \
- eelf32_spu.o \
-@@ -2069,6 +2076,34 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
- $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
- ${GEN_DEPENDS}
- ${GENSCRIPTS} avr6 "$(tdir_avr2)"
-+eavrxmega1.c: $(srcdir)/emulparams/avrxmega1.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega1 "$(tdir_avr2)"
-+eavrxmega2.c: $(srcdir)/emulparams/avrxmega2.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega2 "$(tdir_avr2)"
-+eavrxmega3.c: $(srcdir)/emulparams/avrxmega3.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega3 "$(tdir_avr2)"
-+eavrxmega4.c: $(srcdir)/emulparams/avrxmega4.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega4 "$(tdir_avr2)"
-+eavrxmega5.c: $(srcdir)/emulparams/avrxmega5.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega5 "$(tdir_avr2)"
-+eavrxmega6.c: $(srcdir)/emulparams/avrxmega6.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega6 "$(tdir_avr2)"
-+eavrxmega7.c: $(srcdir)/emulparams/avrxmega7.sh \
-+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
-+ ${GEN_DEPENDS}
-+ ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)"
- ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
- $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
- ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
-diff -Naurp opcodes/avr-dis.c opcodes/avr-dis.c
---- opcodes/avr-dis.c 2008-11-06 06:03:24.000000000 -0600
-+++ opcodes/avr-dis.c 2011-06-07 11:44:52.000000000 -0500
-@@ -50,7 +50,7 @@ static const char * comment_start = "0x"
-
- static int
- avr_operand (unsigned int insn, unsigned int insn2, unsigned int pc, int constraint,
-- char *buf, char *comment, int regs, int *sym, bfd_vma *sym_addr)
-+ char *opcode_str, char *buf, char *comment, int regs, int *sym, bfd_vma *sym_addr)
- {
- int ok = 1;
- *sym = 0;
-@@ -118,8 +118,18 @@ avr_operand (unsigned int insn, unsigned
-
- case 'z':
- *buf++ = 'Z';
-- if (insn & 0x1)
-+
-+ /* Check for post-increment. */
-+ char *s;
-+ for (s = opcode_str; *s; ++s)
-+ {
-+ if (*s == '+')
-+ {
- *buf++ = '+';
-+ break;
-+ }
-+ }
-+
- *buf = '\0';
- if (AVR_UNDEF_P (insn))
- sprintf (comment, _("undefined"));
-@@ -227,6 +237,10 @@ avr_operand (unsigned int insn, unsigned
- }
- break;
-
-+ case 'E':
-+ sprintf (buf, "%d", (insn >> 4) & 15);
-+ break;
-+
- case '?':
- *buf = '\0';
- break;
-@@ -331,7 +345,8 @@ print_insn_avr (bfd_vma addr, disassembl
-
- if (opcode->name)
- {
-- char *op = opcode->constraints;
-+ char *constraints = opcode->constraints;
-+ char *opcode_str = opcode->opcode;
-
- insn2 = 0;
- ok = 1;
-@@ -342,14 +357,14 @@ print_insn_avr (bfd_vma addr, disassembl
- cmd_len = 4;
- }
-
-- if (*op && *op != '?')
-+ if (*constraints && *constraints != '?')
- {
-- int regs = REGISTER_P (*op);
-+ int regs = REGISTER_P (*constraints);
-
-- ok = avr_operand (insn, insn2, addr, *op, op1, comment1, 0, &sym_op1, &sym_addr1);
-+ ok = avr_operand (insn, insn2, addr, *constraints, opcode_str, op1, comment1, 0, &sym_op1, &sym_addr1);
-
-- if (ok && *(++op) == ',')
-- ok = avr_operand (insn, insn2, addr, *(++op), op2,
-+ if (ok && *(++constraints) == ',')
-+ ok = avr_operand (insn, insn2, addr, *(++constraints), opcode_str, op2,
- *comment1 ? comment2 : comment1, regs, &sym_op2, &sym_addr2);
- }
- }
diff --git a/400-binutils-xmega.patch b/400-binutils-xmega.patch
new file mode 100644
index 0000000..8f72370
--- /dev/null
+++ b/400-binutils-xmega.patch
@@ -0,0 +1,90 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2011-12-16 12:43:06.000000000 +0530
++++ binutils/size.c 2011-12-16 12:43:50.000000000 +0530
+@@ -121,6 +121,7 @@ avr_device_t avr[] =
+ {
+ {"atxmega256a3", AVR264K, AVR16K, AVR4K},
+ {"atxmega256a3b", AVR264K, AVR16K, AVR4K},
++ {"atxmega256a3bu",AVR264K, AVR16K, AVR4K},
+ {"atxmega256d3", AVR264K, AVR16K, AVR4K},
+
+ {"atmega2560", AVR256K, AVR8K, AVR4K},
+@@ -132,6 +133,7 @@ avr_device_t avr[] =
+ {"atxmega128a1", AVR136K, AVR8K, AVR2K},
+ {"atxmega128a1u", AVR136K, AVR8K, AVR2K},
+ {"atxmega128a3", AVR136K, AVR8K, AVR2K},
++ {"atxmega128b1", AVR136K, AVR8K, AVR2K},
+ {"atxmega128d3", AVR136K, AVR8K, AVR2K},
+
+ {"at43usb320", AVR128K, 608UL, 0UL},
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2011-12-16 12:43:06.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-16 12:43:50.000000000 +0530
+@@ -453,6 +453,7 @@ md_show_usage (FILE *stream)
+ " avr5 - enhanced AVR core with up to 64K program memory\n"
+ " avr51 - enhanced AVR core with up to 128K program memory\n"
+ " avr6 - enhanced AVR core with up to 256K program memory\n"
++ " avrxmega2 - XMEGA, > 8K, < 64K FLASH, < 64K RAM\n"
+ " avrxmega3 - XMEGA, > 8K, <= 64K FLASH, > 64K RAM\n"
+ " avrxmega4 - XMEGA, > 64K, <= 128K FLASH, <= 64K RAM\n"
+ " avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n"
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2011-03-24 22:33:03.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-16 12:43:50.000000000 +0530
+@@ -103,7 +103,7 @@ atxmega64a1u).
+ Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
+ memory space and less than 64K data space (MCU types: atxmega128a3,
+ atxmega128d3, atxmega192a3, atxmega128b1, atxmega192d3, atxmega256a3,
+-atxmega256a3b, atxmega256a3bu, atxmega192d3).
++atxmega256a3b, atxmega256a3bu).
+
+ Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program
+ memory space and greater than 64K data space (MCU types: atxmega128a1,
+diff -Naurp ld/Makefile.am ld/Makefile.am
+--- ld/Makefile.am 2011-07-23 01:52:37.000000000 +0530
++++ ld/Makefile.am 2011-12-16 12:43:50.000000000 +0530
+@@ -163,13 +163,13 @@ ALL_EMULATION_SOURCES = \
+ eavr5.c \
+ eavr51.c \
+ eavr6.c \
+- eavrxmega1.o \
+- eavrxmega2.o \
+- eavrxmega3.o \
+- eavrxmega4.o \
+- eavrxmega5.o \
+- eavrxmega6.o \
+- eavrxmega7.o \
++ eavrxmega1.c \
++ eavrxmega2.c \
++ eavrxmega3.c \
++ eavrxmega4.c \
++ eavrxmega5.c \
++ eavrxmega6.c \
++ eavrxmega7.c \
+ ecoff_i860.c \
+ ecoff_sparc.c \
+ ecrisaout.c \
+diff -Naurp ld/Makefile.in ld/Makefile.in
+--- ld/Makefile.in 2011-07-23 01:52:37.000000000 +0530
++++ ld/Makefile.in 2011-12-16 12:43:50.000000000 +0530
+@@ -469,13 +469,13 @@ ALL_EMULATION_SOURCES = \
+ eavr5.c \
+ eavr51.c \
+ eavr6.c \
+- eavrxmega1.o \
+- eavrxmega2.o \
+- eavrxmega3.o \
+- eavrxmega4.o \
+- eavrxmega5.o \
+- eavrxmega6.o \
+- eavrxmega7.o \
++ eavrxmega1.c \
++ eavrxmega2.c \
++ eavrxmega3.c \
++ eavrxmega4.c \
++ eavrxmega5.c \
++ eavrxmega6.c \
++ eavrxmega7.c \
+ ecoff_i860.c \
+ ecoff_sparc.c \
+ ecrisaout.c \
diff --git a/401-binutils-2.20.1-new-devices.patch b/401-binutils-2.20.1-new-devices.patch
deleted file mode 100644
index 34f3a7b..0000000
--- a/401-binutils-2.20.1-new-devices.patch
+++ /dev/null
@@ -1,229 +0,0 @@
-attiny461a
-atmega48a
-atmega88a
-atmega88pa
-atmega16a
-atmega164a
-atmega165a
-atmega168a
-atmega169a
-atmega169pa
-atmega324a
-atmega324pa
-atmega328
-atmega329pa
-atmega644a
-atmega645a
-atmega645p
-atmega649p
-atmega649a
-atmega6450a
-atmega6450p
-atmega6490a
-atmega6490p
-atmega64hve
-atmega16hva2
-attiny84a
-atmega325a
-atmega3250a
-atmega329a
-atmega3290a
-m3000
-Remove: m3000f, m3000s, m3001b, atmega16c1, atmega4hvd, atmega8hvd, atmega8m1,
-atmega8c1, attiny327
-===========================================================
-diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-01-12 14:20:58.000000000 -0600
-+++ gas/config/tc-avr.c 2011-01-12 14:24:17.000000000 -0600
-@@ -115,12 +115,14 @@ static struct mcu_type_s mcu_types[] =
- {"attiny44", AVR_ISA_AVR25, bfd_mach_avr25},
- {"attiny44a", AVR_ISA_AVR25, bfd_mach_avr25},
- {"attiny84", AVR_ISA_AVR25, bfd_mach_avr25},
-+ {"attiny84a", AVR_ISA_AVR25, bfd_mach_avr25},
- {"attiny25", AVR_ISA_AVR25, bfd_mach_avr25},
- {"attiny45", AVR_ISA_AVR25, bfd_mach_avr25},
- {"attiny85", AVR_ISA_AVR25, bfd_mach_avr25},
- {"attiny261", AVR_ISA_AVR25, bfd_mach_avr25},
- {"attiny261a", AVR_ISA_AVR25, bfd_mach_avr25},
- {"attiny461", AVR_ISA_AVR25, bfd_mach_avr25},
-+ {"attiny461a", AVR_ISA_AVR25, bfd_mach_avr25},
- {"attiny861", AVR_ISA_AVR25, bfd_mach_avr25},
- {"attiny861a", AVR_ISA_AVR25, bfd_mach_avr25},
- {"attiny87", AVR_ISA_AVR25, bfd_mach_avr25},
-@@ -134,7 +136,6 @@ static struct mcu_type_s mcu_types[] =
- {"atmega103", AVR_ISA_AVR31, bfd_mach_avr31},
- {"at43usb320", AVR_ISA_AVR31, bfd_mach_avr31},
- {"attiny167", AVR_ISA_AVR35, bfd_mach_avr35},
-- {"attiny327", AVR_ISA_AVR35, bfd_mach_avr35},
- {"at90usb82", AVR_ISA_AVR35, bfd_mach_avr35},
- {"at90usb162", AVR_ISA_AVR35, bfd_mach_avr35},
- {"atmega8u2", AVR_ISA_AVR35, bfd_mach_avr35},
-@@ -142,16 +143,15 @@ static struct mcu_type_s mcu_types[] =
- {"atmega32u2", AVR_ISA_AVR35, bfd_mach_avr35},
- {"atmega8", AVR_ISA_M8, bfd_mach_avr4},
- {"atmega48", AVR_ISA_AVR4, bfd_mach_avr4},
-+ {"atmega48a", AVR_ISA_AVR4, bfd_mach_avr4},
- {"atmega48p", AVR_ISA_AVR4, bfd_mach_avr4},
- {"atmega88", AVR_ISA_AVR4, bfd_mach_avr4},
-+ {"atmega88a", AVR_ISA_AVR4, bfd_mach_avr4},
- {"atmega88p", AVR_ISA_AVR4, bfd_mach_avr4},
-+ {"atmega88pa", AVR_ISA_AVR4, bfd_mach_avr4},
- {"atmega8515", AVR_ISA_M8, bfd_mach_avr4},
- {"atmega8535", AVR_ISA_M8, bfd_mach_avr4},
- {"atmega8hva", AVR_ISA_AVR4, bfd_mach_avr4},
-- {"atmega4hvd", AVR_ISA_AVR4, bfd_mach_avr4},
-- {"atmega8hvd", AVR_ISA_AVR4, bfd_mach_avr4},
-- {"atmega8c1", AVR_ISA_AVR4, bfd_mach_avr4},
-- {"atmega8m1", AVR_ISA_AVR4, bfd_mach_avr4},
- {"at90pwm1", AVR_ISA_AVR4, bfd_mach_avr4},
- {"at90pwm2", AVR_ISA_AVR4, bfd_mach_avr4},
- {"at90pwm2b", AVR_ISA_AVR4, bfd_mach_avr4},
-@@ -159,40 +159,64 @@ static struct mcu_type_s mcu_types[] =
- {"at90pwm3b", AVR_ISA_AVR4, bfd_mach_avr4},
- {"at90pwm81", AVR_ISA_AVR4, bfd_mach_avr4},
- {"atmega16", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega16a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega161", AVR_ISA_M161, bfd_mach_avr5},
- {"atmega162", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega163", AVR_ISA_M161, bfd_mach_avr5},
-+ {"atmega164a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega164p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega165", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega165a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega165p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega168", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega168a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega168p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega169", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega169a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega169p", AVR_ISA_AVR5, bfd_mach_avr5},
-- {"atmega16c1", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega169pa",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega32", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega323", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega324a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega324p", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega324pa",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega325", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega325a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega325p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3250", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega3250a",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3250p",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega328", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega328p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega329", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega329a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega329p", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega329pa",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3290", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega3290a",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3290p",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega406", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega64", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega640", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega644", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega644a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega644p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega644pa",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega645", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega645a", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega645p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega649", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega649p", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega649a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega6450", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega6450a",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega6450p",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega6490", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega6490a",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega6490p",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega64hve",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega16hva",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega16hva2",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5},
- {"at90can32" , AVR_ISA_AVR5, bfd_mach_avr5},
-@@ -211,6 +235,7 @@ static struct mcu_type_s mcu_types[] =
- {"at90usb647", AVR_ISA_AVR5, bfd_mach_avr5},
- {"at90scr100", AVR_ISA_AVR5, bfd_mach_avr5},
- {"at94k", AVR_ISA_94K, bfd_mach_avr5},
-+ {"m3000", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega128", AVR_ISA_AVR51, bfd_mach_avr51},
- {"atmega1280", AVR_ISA_AVR51, bfd_mach_avr51},
- {"atmega1281", AVR_ISA_AVR51, bfd_mach_avr51},
-@@ -219,9 +244,6 @@ static struct mcu_type_s mcu_types[] =
- {"at90can128", AVR_ISA_AVR51, bfd_mach_avr51},
- {"at90usb1286",AVR_ISA_AVR51, bfd_mach_avr51},
- {"at90usb1287",AVR_ISA_AVR51, bfd_mach_avr51},
-- {"m3000f", AVR_ISA_AVR51, bfd_mach_avr51},
-- {"m3000s", AVR_ISA_AVR51, bfd_mach_avr51},
-- {"m3001b", AVR_ISA_AVR51, bfd_mach_avr51},
- {"atmega2560", AVR_ISA_AVR6, bfd_mach_avr6},
- {"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6},
- {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-01-12 14:20:58.000000000 -0600
-+++ gas/doc/c-avr.texi 2011-01-12 14:22:42.000000000 -0600
-@@ -43,9 +43,10 @@ at90s8535).
-
- Instruction set avr25 is for the classic AVR core with up to 8K program memory
- space plus the MOVW instruction (MCU types: attiny13, attiny13a, attiny2313,
--attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
--attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461, attiny861,
--attiny861a, attiny87, attiny43u, attiny48, attiny88, at86rf401, ata6289).
-+attiny2313a, attiny24, attiny24a, attiny4313, attiny43u, attiny44, attiny44a,
-+attiny84, attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a,
-+attiny461, attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48,
-+attiny88, at86rf401, ata6289).
-
- Instruction set avr3 is for the classic AVR core with up to 128K program
- memory space (MCU types: at43usb355, at76c711).
-@@ -54,28 +55,33 @@ Instruction set avr31 is for the classic
- memory space (MCU types: atmega103, at43usb320).
-
- Instruction set avr35 is for classic AVR core plus MOVW, CALL, and JMP
--instructions (MCU types: attiny167, attiny327, at90usb82, at90usb162, atmega8u2,
-+instructions (MCU types: attiny167, at90usb82, at90usb162, atmega8u2,
- atmega16u2, atmega32u2).
-
- Instruction set avr4 is for the enhanced AVR core with up to 8K program
--memory space (MCU types: atmega48, atmega48p,atmega8, atmega88, atmega88p,
--atmega8515, atmega8535, atmega8hva, atmega4hvd, atmega8hvd, at90pwm1,
--at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, atmega8m1, atmega8c1).
-+memory space (MCU types: atmega48, atmega48a, atmega48p,atmega8, atmega88,
-+atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva,
-+at90pwm1,at90pwm2, at90pwm2b, at90pwm3, at90pwm3b,
-+at90pwm81).
-
- Instruction set avr5 is for the enhanced AVR core with up to 128K program
--memory space (MCU types: atmega16, atmega161, atmega162, atmega163, atmega164p,
--atmega165, atmega165p, atmega168, atmega168p, atmega169, atmega169p, atmega16c1,
--atmega32, atmega323, atmega324p, atmega325, atmega325p, atmega3250, atmega3250p,
--atmega328p, atmega329, atmega329p, atmega3290, atmega3290p, atmega406, atmega64,
--atmega640, atmega644, atmega644p, atmega644pa, atmega645, atmega6450, atmega649,
--atmega6490, atmega16hva, atmega16hvb, atmega32hvb, at90can32, at90can64,
--at90pwm216, at90pwm316, atmega32c1, atmega64c1, atmega16m1, atmega32m1,
--atmega64m1, atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k,
--at90scr100).
-+memory space (MCU types: atmega16, atmega16a, atmega161, atmega162, atmega163,
-+atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168,
-+atmega168a, atmega168p, atmega169, atmega169p, atmega169pa,
-+atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a,
-+atmega325p, atmega3250, atmega3250a, atmega3250p, atmega328, atmega328p,
-+atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, atmega3290a,
-+atmega3290p, atmega406, atmega64, atmega640, atmega644, atmega644a, atmega644p,
-+atmega644pa, atmega645, atmega645a, atmega645p, atmega6450, atmega6450a,
-+atmega6450p, atmega649, atmega649a, atmega649p, atmega6490, atmega6490a,
-+atmega6490p, atmega64hve, atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb,
-+at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4, atmega32c1,
-+atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1, atmega16u4,
-+atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
-
- Instruction set avr51 is for the enhanced AVR core with exactly 128K program
- memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p,
--atmega128rfa1, at90can128, at90usb1286, at90usb1287, m3000f, m3000s, m3001b).
-+atmega128rfa1, at90can128, at90usb1286, at90usb1287, m3000).
-
- Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types:
- atmega2560, atmega2561).
diff --git a/402-binutils-2.20.1-avrtiny10.patch b/401-binutils-avrtiny10.patch
similarity index 73%
rename from 402-binutils-2.20.1-avrtiny10.patch
rename to 401-binutils-avrtiny10.patch
index d51aeb5..472e4ae 100644
--- a/402-binutils-2.20.1-avrtiny10.patch
+++ b/401-binutils-avrtiny10.patch
@@ -1,7 +1,7 @@
diff -Naurp bfd/archures.c bfd/archures.c
---- bfd/archures.c 2011-06-07 11:55:03.000000000 -0500
-+++ bfd/archures.c 2011-06-07 11:56:48.000000000 -0500
-@@ -375,6 +375,7 @@ DESCRIPTION
+--- bfd/archures.c 2011-08-02 04:34:19.000000000 +0530
++++ bfd/archures.c 2011-12-22 12:00:37.000000000 +0530
+@@ -388,6 +388,7 @@ DESCRIPTION
.#define bfd_mach_avrxmega5 105
.#define bfd_mach_avrxmega6 106
.#define bfd_mach_avrxmega7 107
@@ -10,9 +10,9 @@ diff -Naurp bfd/archures.c bfd/archures.c
.#define bfd_mach_bfin 1
. bfd_arch_cr16, {* National Semiconductor CompactRISC (ie CR16). *}
diff -Naurp bfd/bfd-in2.h bfd/bfd-in2.h
---- bfd/bfd-in2.h 2011-06-07 11:55:03.000000000 -0500
-+++ bfd/bfd-in2.h 2011-06-07 11:56:48.000000000 -0500
-@@ -2049,6 +2049,7 @@ enum bfd_architecture
+--- bfd/bfd-in2.h 2011-09-16 06:45:18.000000000 +0530
++++ bfd/bfd-in2.h 2011-12-22 12:00:37.000000000 +0530
+@@ -2095,6 +2095,7 @@ enum bfd_architecture
#define bfd_mach_avrxmega5 105
#define bfd_mach_avrxmega6 106
#define bfd_mach_avrxmega7 107
@@ -21,8 +21,8 @@ diff -Naurp bfd/bfd-in2.h bfd/bfd-in2.h
#define bfd_mach_bfin 1
bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */
diff -Naurp bfd/cpu-avr.c bfd/cpu-avr.c
---- bfd/cpu-avr.c 2011-06-07 11:55:03.000000000 -0500
-+++ bfd/cpu-avr.c 2011-06-07 11:56:48.000000000 -0500
+--- bfd/cpu-avr.c 2011-03-22 23:40:42.000000000 +0530
++++ bfd/cpu-avr.c 2011-12-22 12:00:37.000000000 +0530
@@ -154,7 +154,10 @@ static const bfd_arch_info_type arch_inf
N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]),
@@ -36,9 +36,9 @@ diff -Naurp bfd/cpu-avr.c bfd/cpu-avr.c
};
diff -Naurp bfd/elf32-avr.c bfd/elf32-avr.c
---- bfd/elf32-avr.c 2011-06-07 11:55:03.000000000 -0500
-+++ bfd/elf32-avr.c 2011-06-07 11:56:48.000000000 -0500
-@@ -1356,6 +1356,10 @@ bfd_elf_avr_final_write_processing (bfd
+--- bfd/elf32-avr.c 2011-06-02 19:13:14.000000000 +0530
++++ bfd/elf32-avr.c 2011-12-22 12:00:37.000000000 +0530
+@@ -1326,6 +1326,10 @@ bfd_elf_avr_final_write_processing (bfd
case bfd_mach_avrxmega7:
val = E_AVR_MACH_XMEGA7;
break;
@@ -49,7 +49,7 @@ diff -Naurp bfd/elf32-avr.c bfd/elf32-avr.c
}
elf_elfheader (abfd)->e_machine = EM_AVR;
-@@ -1446,6 +1450,10 @@ elf32_avr_object_p (bfd *abfd)
+@@ -1416,6 +1420,10 @@ elf32_avr_object_p (bfd *abfd)
case E_AVR_MACH_XMEGA7:
e_set = bfd_mach_avrxmega7;
break;
@@ -61,9 +61,9 @@ diff -Naurp bfd/elf32-avr.c bfd/elf32-avr.c
}
return bfd_default_set_arch_mach (abfd, bfd_arch_avr,
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-06-07 11:56:25.000000000 -0500
-+++ gas/config/tc-avr.c 2011-06-07 11:56:48.000000000 -0500
-@@ -88,6 +88,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:02:01.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:00:37.000000000 +0530
+@@ -90,6 +90,7 @@ static struct mcu_type_s mcu_types[] =
{"avrxmega5", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
{"avrxmega6", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"avrxmega7", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
@@ -71,10 +71,10 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"at90s1200", AVR_ISA_1200, bfd_mach_avr1},
{"attiny11", AVR_ISA_AVR1, bfd_mach_avr1},
{"attiny12", AVR_ISA_AVR1, bfd_mach_avr1},
-@@ -261,6 +262,12 @@ static struct mcu_type_s mcu_types[] =
- {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+@@ -275,6 +276,12 @@ static struct mcu_type_s mcu_types[] =
{"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
+ {"atxmega128a1u", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
+ {"attiny4", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
+ {"attiny5", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
+ {"attiny9", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
@@ -84,15 +84,15 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{NULL, 0, 0}
};
-@@ -443,6 +450,7 @@ md_show_usage (FILE *stream)
+@@ -459,6 +466,7 @@ md_show_usage (FILE *stream)
" avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n"
" avrxmega6 - XMEGA, > 128K, <= 256K FLASH, <= 64K RAM\n"
" avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM\n"
+ " avrtiny10 - tiny devices with 16 gp registers\n"
" or immediate microcontroller name.\n"));
fprintf (stream,
- _(" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
-@@ -790,6 +798,17 @@ avr_operand (struct avr_opcodes_s *opcod
+ _(" -mlist-devices list all supported devices\n"
+@@ -809,6 +817,17 @@ avr_operand (struct avr_opcodes_s *opcod
op_mask = avr_get_constant (str, 31);
str = input_line_pointer;
}
@@ -111,8 +111,8 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
if (op_mask <= 31)
{
diff -Naurp include/elf/avr.h include/elf/avr.h
---- include/elf/avr.h 2011-06-07 11:55:03.000000000 -0500
-+++ include/elf/avr.h 2011-06-07 11:56:48.000000000 -0500
+--- include/elf/avr.h 2011-03-22 23:40:44.000000000 +0530
++++ include/elf/avr.h 2011-12-22 12:00:37.000000000 +0530
@@ -47,6 +47,7 @@
#define E_AVR_MACH_XMEGA5 105
#define E_AVR_MACH_XMEGA6 106
@@ -122,18 +122,18 @@ diff -Naurp include/elf/avr.h include/elf/avr.h
/* Relocations. */
START_RELOC_NUMBERS (elf_avr_reloc_type)
diff -Naurp include/opcode/avr.h include/opcode/avr.h
---- include/opcode/avr.h 2011-06-07 11:55:03.000000000 -0500
-+++ include/opcode/avr.h 2011-06-07 11:56:48.000000000 -0500
-@@ -69,7 +69,7 @@
+--- include/opcode/avr.h 2011-12-22 11:59:33.000000000 +0530
++++ include/opcode/avr.h 2011-12-22 12:00:37.000000000 +0530
+@@ -72,6 +72,8 @@
AVR_ISA_ELPM | AVR_ISA_ELPMX | AVR_ISA_SPM | \
- AVR_ISA_SPM | AVR_ISA_BRK | AVR_ISA_EIND | \
- AVR_ISA_MOVW)
--
+ AVR_ISA_BRK | AVR_ISA_EIND | AVR_ISA_MOVW)
+
+#define AVR_ISA_AVRTINY10 (AVR_ISA_1200 | AVR_ISA_BRK | AVR_ISA_SRAM)
++
#define REGISTER_P(x) ((x) == 'r' \
|| (x) == 'd' \
|| (x) == 'w' \
-@@ -159,8 +159,8 @@ AVR_INSN (sez, "", "1001010000011000
+@@ -161,8 +163,8 @@ AVR_INSN (sez, "", "1001010000011000
AVR_INSN (bclr, "S", "100101001SSS1000", 1, AVR_ISA_1200, 0x9488)
AVR_INSN (bset, "S", "100101000SSS1000", 1, AVR_ISA_1200, 0x9408)
@@ -144,7 +144,7 @@ diff -Naurp include/opcode/avr.h include/opcode/avr.h
AVR_INSN (lpm, "?", "1001010111001000", 1, AVR_ISA_TINY1,0x95c8)
AVR_INSN (lpm, "r,z", "1001000ddddd010+", 1, AVR_ISA_LPMX, 0x9004)
-@@ -260,8 +260,8 @@ AVR_INSN (dec, "r", "1001010rrrrr1010
+@@ -262,8 +264,8 @@ AVR_INSN (dec, "r", "1001010rrrrr1010
AVR_INSN (inc, "r", "1001010rrrrr0011", 1, AVR_ISA_1200, 0x9403)
AVR_INSN (lsr, "r", "1001010rrrrr0110", 1, AVR_ISA_1200, 0x9406)
AVR_INSN (neg, "r", "1001010rrrrr0001", 1, AVR_ISA_1200, 0x9401)
@@ -155,7 +155,7 @@ diff -Naurp include/opcode/avr.h include/opcode/avr.h
AVR_INSN (ror, "r", "1001010rrrrr0111", 1, AVR_ISA_1200, 0x9407)
AVR_INSN (swap, "r", "1001010rrrrr0010", 1, AVR_ISA_1200, 0x9402)
-@@ -273,8 +273,8 @@ AVR_INSN (fmul, "a,a", "000000110ddd1rrr
+@@ -275,8 +277,8 @@ AVR_INSN (fmul, "a,a", "000000110ddd1rrr
AVR_INSN (fmuls,"a,a", "000000111ddd0rrr", 1, AVR_ISA_MUL, 0x0380)
AVR_INSN (fmulsu,"a,a","000000111ddd1rrr", 1, AVR_ISA_MUL, 0x0388)
@@ -164,14 +164,14 @@ diff -Naurp include/opcode/avr.h include/opcode/avr.h
+AVR_INSN (sts, "i,r", "1001001ddddd0000", 2, AVR_ISA_SRAM, 0x9200)
+AVR_INSN (lds, "r,i", "1001000ddddd0000", 2, AVR_ISA_SRAM, 0x9000)
- /* Special case for b+0, `e' must be next entry after `b',
- b={Y=1,Z=0}, ee={X=11,Y=10,Z=00}, !=1 if -e or e+ or X. */
+ AVR_INSN (xch, "z,r", "1001001rrrrr0100", 1, AVR_ISA_XMEGAU, 0x9204)
+ AVR_INSN (las, "z,r", "1001001rrrrr0101", 1, AVR_ISA_XMEGAU, 0x9205)
diff -Naurp ld/configure.tgt ld/configure.tgt
---- ld/configure.tgt 2011-06-07 11:55:03.000000000 -0500
-+++ ld/configure.tgt 2011-06-07 11:56:48.000000000 -0500
-@@ -110,7 +110,7 @@ xscale-*-coff) targ_emul=armcoff ;;
- xscale-*-elf) targ_emul=armelf
- ;;
+--- ld/configure.tgt 2011-11-21 14:59:37.000000000 +0530
++++ ld/configure.tgt 2011-12-22 12:00:37.000000000 +0530
+@@ -98,7 +98,7 @@ arm*-*-uclinux*) targ_emul=armelf_linux
+ arm-*-vxworks) targ_emul=armelf_vxworks ;;
+ arm*-*-conix*) targ_emul=armelf ;;
avr-*-*) targ_emul=avr2
- targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7"
+ targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny10"
@@ -179,8 +179,8 @@ diff -Naurp ld/configure.tgt ld/configure.tgt
bfin-*-elf) targ_emul=elf32bfin;
targ_extra_emuls="elf32bfinfd"
diff -Naurp ld/emulparams/avrtiny10.sh ld/emulparams/avrtiny10.sh
---- ld/emulparams/avrtiny10.sh 1969-12-31 18:00:00.000000000 -0600
-+++ ld/emulparams/avrtiny10.sh 2011-06-07 11:56:48.000000000 -0500
+--- ld/emulparams/avrtiny10.sh 1970-01-01 05:30:00.000000000 +0530
++++ ld/emulparams/avrtiny10.sh 2011-12-22 12:00:37.000000000 +0530
@@ -0,0 +1,12 @@
+ARCH=avr:201
+MACHINE=
@@ -195,17 +195,17 @@ diff -Naurp ld/emulparams/avrtiny10.sh ld/emulparams/avrtiny10.sh
+DATA_LENGTH=0x140
+EXTRA_EM_FILE=avrelf
diff -Naurp ld/Makefile.am ld/Makefile.am
---- ld/Makefile.am 2011-06-07 11:55:03.000000000 -0500
-+++ ld/Makefile.am 2011-06-07 11:56:48.000000000 -0500
-@@ -155,6 +155,7 @@ ALL_EMULATIONS = \
- eavrxmega5.o \
- eavrxmega6.o \
- eavrxmega7.o \
-+ eavrtiny10.o \
- ecoff_i860.o \
- ecoff_sparc.o \
- eelf32_spu.o \
-@@ -762,6 +763,10 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm
+--- ld/Makefile.am 2011-12-22 12:02:01.000000000 +0530
++++ ld/Makefile.am 2011-12-22 12:00:37.000000000 +0530
+@@ -170,6 +170,7 @@ ALL_EMULATION_SOURCES = \
+ eavrxmega5.c \
+ eavrxmega6.c \
+ eavrxmega7.c \
++ eavrtiny10.c \
+ ecoff_i860.c \
+ ecoff_sparc.c \
+ ecrisaout.c \
+@@ -818,6 +819,10 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm
$(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
${GEN_DEPENDS}
${GENSCRIPTS} avrxmega7 "$(tdir_avr2)"
diff --git a/407-binutils-2.20.1-at90pwm161.patch b/402-binutils-at90pwm161.patch
similarity index 69%
rename from 407-binutils-2.20.1-at90pwm161.patch
rename to 402-binutils-at90pwm161.patch
index 2acfbfa..fce9da2 100644
--- a/407-binutils-2.20.1-at90pwm161.patch
+++ b/402-binutils-at90pwm161.patch
@@ -1,7 +1,7 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 15:47:17.000000000 +0300
-+++ binutils/size.c 2011-09-05 15:47:30.000000000 +0300
-@@ -221,6 +221,7 @@ avr_device_t avr[] =
+--- binutils/size.c 2011-12-16 12:46:47.000000000 +0530
++++ binutils/size.c 2011-12-16 15:05:18.000000000 +0530
+@@ -220,6 +220,7 @@ avr_device_t avr[] =
{"atxmega16d4", AVR20K, AVR2K, AVR1K},
{"at76c711", AVR16K, AVR2K, 0UL},
@@ -10,9 +10,9 @@ diff -Naurp binutils/size.c binutils/size.c
{"at90pwm316", AVR16K, AVR1K, AVR512},
{"at90usb162", AVR16K, AVR512, AVR512},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 15:47:17.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 15:47:30.000000000 +0300
-@@ -159,6 +159,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-16 12:46:54.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-16 15:05:18.000000000 +0530
+@@ -161,6 +161,7 @@ static struct mcu_type_s mcu_types[] =
{"at90pwm3", AVR_ISA_AVR4, bfd_mach_avr4},
{"at90pwm3b", AVR_ISA_AVR4, bfd_mach_avr4},
{"at90pwm81", AVR_ISA_AVR4, bfd_mach_avr4},
@@ -21,31 +21,31 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"atmega16a", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega161", AVR_ISA_M161, bfd_mach_avr5},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 15:47:17.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 15:47:30.000000000 +0300
-@@ -65,8 +65,8 @@ at90pwm1,at90pwm2, at90pwm2b, at90pwm3,
- at90pwm81).
+--- gas/doc/c-avr.texi 2011-12-16 12:46:47.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-16 15:05:18.000000000 +0530
+@@ -64,8 +64,8 @@ atmega88a, atmega88p, atmega88pa, atmega
+ at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81).
Instruction set avr5 is for the enhanced AVR core with up to 128K program
-memory space (MCU types: atmega16, atmega16a, atmega161, atmega162, atmega163,
--atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168,
+-atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168,
+memory space (MCU types: at90pwm161, atmega16, atmega16a, atmega161, atmega162,
+atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168,
- atmega168a, atmega168p, atmega169, atmega169p, atmega169pa,
- atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a,
- atmega325p, atmega3250, atmega3250a, atmega3250p, atmega328, atmega328p,
+ atmega168a, atmega168p, atmega169, atmega169a, atmega169p, atmega169pa,
+ atmega32, atmega323, atmega324a, atmega324p, atmega325, atmega325a, atmega325p,
+ atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328,
diff -Naurp ld/Makefile.in ld/Makefile.in
---- ld/Makefile.in 2011-09-05 15:33:12.000000000 +0300
-+++ ld/Makefile.in 2011-09-05 15:47:30.000000000 +0300
-@@ -441,6 +441,7 @@ ALL_EMULATIONS = \
- eavrxmega5.o \
- eavrxmega6.o \
- eavrxmega7.o \
-+ eavrtiny10.o \
- ecoff_i860.o \
- ecoff_sparc.o \
- eelf32_spu.o \
-@@ -952,6 +953,14 @@ distclean-compile:
+--- ld/Makefile.in 2011-12-16 12:46:47.000000000 +0530
++++ ld/Makefile.in 2011-12-16 15:05:18.000000000 +0530
+@@ -476,6 +476,7 @@ ALL_EMULATION_SOURCES = \
+ eavrxmega5.c \
+ eavrxmega6.c \
+ eavrxmega7.c \
++ eavrtiny10.c \
+ ecoff_i860.c \
+ ecoff_sparc.c \
+ ecrisaout.c \
+@@ -1075,6 +1076,14 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/eavr5.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/eavr51.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/eavr6.Po at am__quote@
@@ -60,7 +60,7 @@ diff -Naurp ld/Makefile.in ld/Makefile.in
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ecoff_i860.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ecoff_sparc.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ecrisaout.Po at am__quote@
-@@ -2104,6 +2113,10 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm
+@@ -2271,6 +2280,10 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm
$(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
${GEN_DEPENDS}
${GENSCRIPTS} avrxmega7 "$(tdir_avr2)"
diff --git a/403-binutils-2.20.1-xmega128a1u-64a1u.patch b/403-binutils-2.20.1-xmega128a1u-64a1u.patch
deleted file mode 100644
index 03c651b..0000000
--- a/403-binutils-2.20.1-xmega128a1u-64a1u.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-06-07 12:00:46.000000000 -0500
-+++ gas/config/tc-avr.c 2011-06-07 12:01:05.000000000 -0500
-@@ -254,6 +254,7 @@ static struct mcu_type_s mcu_types[] =
- {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
- {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
- {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
-+ {"atxmega64a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega5},
- {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-@@ -262,6 +263,7 @@ static struct mcu_type_s mcu_types[] =
- {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
-+ {"atxmega128a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega7},
- {"attiny4", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
- {"attiny5", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
- {"attiny9", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
-diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-06-07 11:56:25.000000000 -0500
-+++ gas/doc/c-avr.texi 2011-06-07 12:01:05.000000000 -0500
-@@ -97,7 +97,8 @@ Instruction set avrxmega4 is for the XME
- memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64d3).
-
- Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program
--memory space and greater than 64K data space (MCU types: atxmega64a1).
-+memory space and greater than 64K data space (MCU types: atxmega64a1,
-+atxmega64a1u).
-
- Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
- memory space and less than 64K data space (MCU types: atxmega128a3,
-@@ -105,7 +106,8 @@ atxmega128d3, atxmega192a3, atxmega192d3
- atxmega192d3).
-
- Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program
--memory space and greater than 64K data space (MCU types: atxmega128a1).
-+memory space and greater than 64K data space (MCU types: atxmega128a1,
-+atxmega128a1u).
-
- @cindex @code{-mall-opcodes} command line option, AVR
- @item -mall-opcodes
diff --git a/403-binutils-new-devices.patch b/403-binutils-new-devices.patch
new file mode 100644
index 0000000..4de7af1
--- /dev/null
+++ b/403-binutils-new-devices.patch
@@ -0,0 +1,61 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2011-11-29 19:16:45.000000000 +0530
++++ binutils/size.c 2011-11-29 19:20:58.000000000 +0530
+@@ -194,9 +194,11 @@ avr_device_t avr[] =
+ {"atmega325", AVR32K, AVR2K, AVR1K},
+ {"atmega325a", AVR32K, AVR2K, AVR1K},
+ {"atmega325p", AVR32K, AVR2K, AVR1K},
++ {"atmega325pa", AVR32K, AVR2K, AVR1K},
+ {"atmega3250", AVR32K, AVR2K, AVR1K},
+ {"atmega3250a", AVR32K, AVR2K, AVR1K},
+ {"atmega3250p", AVR32K, AVR2K, AVR1K},
++ {"atmega3250pa", AVR32K, AVR2K, AVR1K},
+ {"atmega328", AVR32K, AVR2K, AVR1K},
+ {"atmega328p", AVR32K, AVR2K, AVR1K},
+ {"atmega329", AVR32K, AVR2K, AVR1K},
+@@ -206,9 +208,10 @@ avr_device_t avr[] =
+ {"atmega3290", AVR32K, AVR2K, AVR1K},
+ {"atmega3290a", AVR32K, AVR2K, AVR1K},
+ {"atmega3290p", AVR32K, AVR2K, AVR1K},
++ {"atmega3290pa", AVR32K, AVR2K, AVR1K},
+ {"atmega32hvb", AVR32K, AVR2K, AVR1K},
++ {"atmega32hvbrevb",AVR32K, AVR2K, AVR1K},
+ {"atmega32c1", AVR32K, AVR2K, AVR1K},
+- {"atmega32hvb", AVR32K, AVR2K, AVR1K},
+ {"atmega32m1", AVR32K, AVR2K, AVR1K},
+ {"atmega32u2", AVR32K, AVR1K, AVR1K},
+ {"atmega32u4", AVR32K, 2560UL, AVR1K},
+@@ -244,7 +247,8 @@ avr_device_t avr[] =
+ {"atmega169pa", AVR16K, AVR1K, AVR512},
+ {"atmega16hva", AVR16K, 768UL, AVR256},
+ {"atmega16hva2", AVR16K, AVR1K, AVR256},
+- {"atmega16hvb", AVR16K, AVR1K, AVR512},
++ {"atmega16hvb", AVR16K, AVR1K, AVR512},
++ {"atmega16hvbrevb",AVR16K, AVR1K, AVR512},
+ {"atmega16m1", AVR16K, AVR1K, AVR512},
+ {"atmega16u2", AVR16K, AVR512, AVR512},
+ {"atmega16u4", AVR16K, 1280UL, AVR512},
+diff -Naurp gas/doc/as.info gas/doc/as.info
+--- gas/doc/as.info 2011-11-29 19:16:25.000000000 +0530
++++ gas/doc/as.info 2011-11-29 19:20:58.000000000 +0530
+@@ -7248,7 +7248,7 @@ File: as.info, Node: AVR Options, Next
+ program memory space (MCU types: atmega16, atmega16a, atmega161,
+ atmega162, atmega163, atmega164a, atmega164p, atmega165,
+ atmega165a, atmega165p, atmega168, atmega168a, atmega168p,
+- atmega169, atmega169a, atmega169p, atmega169pa, atmega32,
++ atmega169, atmega169a, atmega169p, atmega169pa, atmega16c1, atmega32,
+ atmega323, atmega324a, atmega324p, atmega325, atmega325a,
+ atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p,
+ atmega3250pa, atmega328, atmega328p, atmega329, atmega329a,
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2011-11-29 19:16:45.000000000 +0530
++++ gas/doc/c-avr.texi 2011-11-29 19:20:43.000000000 +0530
+@@ -67,7 +67,7 @@ Instruction set avr5 is for the enhanced
+ memory space (MCU types: at90pwm161, atmega16, atmega16a, atmega161, atmega162,
+ atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168,
+ atmega168a, atmega168p, atmega169, atmega169a, atmega169p, atmega169pa,
+-atmega32, atmega323, atmega324a, atmega324p, atmega325, atmega325a, atmega325p,
++atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, atmega325p,
+ atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328,
+ atmega328p, atmega329, atmega329a, atmega329p, atmega329pa, atmega3290,
+ atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64, atmega640,
diff --git a/404-binutils-2.20.1-atxmega32x1.patch b/404-binutils-2.20.1-atxmega32x1.patch
deleted file mode 100644
index dd694cb..0000000
--- a/404-binutils-2.20.1-atxmega32x1.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 15:32:07.000000000 +0300
-+++ binutils/size.c 2011-09-05 15:38:25.000000000 +0300
-@@ -181,6 +181,7 @@ avr_device_t avr[] =
-
- {"atxmega32a4", AVR36K, AVR4K, AVR1K},
- {"atxmega32d4", AVR36K, AVR4K, AVR1K},
-+ {"atxmega32x1", AVR36K, AVR2K, AVR1K},
-
- {"at90can32", AVR32K, AVR2K, AVR1K},
- {"at94k", AVR32K, AVR4K, 0UL},
-diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 15:33:12.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 15:35:21.000000000 +0300
-@@ -251,6 +251,7 @@ static struct mcu_type_s mcu_types[] =
- {"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
- {"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
- {"atxmega32d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-+ {"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
- {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
- {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
- {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
-diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 15:33:12.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 15:37:04.000000000 +0300
-@@ -88,10 +88,10 @@ atmega2560, atmega2561).
-
- Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program
- memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16d4,
--atxmega32d4).
-+atxmega32a4, atxmega32d4, atxmega32x1).
-
- Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program
--memory space and greater than 64K data space (MCU types: atxmega32a4).
-+memory space and greater than 64K data space (MCU types: none).
-
- Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
- memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64d3).
diff --git a/410-binutils-2.20.1-attiny1634.patch b/404-binutils-attiny1634.patch
similarity index 71%
rename from 410-binutils-2.20.1-attiny1634.patch
rename to 404-binutils-attiny1634.patch
index 9109789..ce08d47 100644
--- a/410-binutils-2.20.1-attiny1634.patch
+++ b/404-binutils-attiny1634.patch
@@ -1,7 +1,7 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 15:49:15.000000000 +0300
-+++ binutils/size.c 2011-09-05 15:50:47.000000000 +0300
-@@ -251,6 +251,7 @@ avr_device_t avr[] =
+--- binutils/size.c 2011-12-16 15:12:22.000000000 +0530
++++ binutils/size.c 2011-12-16 15:11:54.000000000 +0530
+@@ -250,6 +250,7 @@ avr_device_t avr[] =
{"atmega16hvb", AVR16K, AVR1K, AVR512},
{"atmega16hvbrevb",AVR16K, AVR1K, AVR512},
{"atmega16m1", AVR16K, AVR1K, AVR512},
@@ -10,9 +10,9 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega16u4", AVR16K, 1280UL, AVR512},
{"attiny167", AVR16K, AVR512, AVR512},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 15:49:15.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 15:50:47.000000000 +0300
-@@ -142,6 +142,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-16 15:05:18.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-16 15:11:54.000000000 +0530
+@@ -144,6 +144,7 @@ static struct mcu_type_s mcu_types[] =
{"atmega8u2", AVR_ISA_AVR35, bfd_mach_avr35},
{"atmega16u2", AVR_ISA_AVR35, bfd_mach_avr35},
{"atmega32u2", AVR_ISA_AVR35, bfd_mach_avr35},
@@ -21,8 +21,8 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"atmega48", AVR_ISA_AVR4, bfd_mach_avr4},
{"atmega48a", AVR_ISA_AVR4, bfd_mach_avr4},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 15:49:15.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 15:50:47.000000000 +0300
+--- gas/doc/c-avr.texi 2011-12-16 15:12:22.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-16 15:11:54.000000000 +0530
@@ -55,8 +55,8 @@ Instruction set avr31 is for the classic
memory space (MCU types: atmega103, at43usb320).
@@ -33,4 +33,4 @@ diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+atmega8u2, atmega16u2, atmega32u2).
Instruction set avr4 is for the enhanced AVR core with up to 8K program
- memory space (MCU types: atmega48, atmega48a, atmega48p,atmega8, atmega88,
+ memory space (MCU types: atmega48, atmega48a, atmega48p, atmega8, atmega88,
diff --git a/405-binutils-2.20.1-atxmega128b1.patch b/405-binutils-2.20.1-atxmega128b1.patch
deleted file mode 100644
index ff3db65..0000000
--- a/405-binutils-2.20.1-atxmega128b1.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 15:40:59.000000000 +0300
-+++ binutils/size.c 2011-09-05 15:40:03.000000000 +0300
-@@ -132,6 +132,7 @@ avr_device_t avr[] =
- {"atxmega128a1", AVR136K, AVR8K, AVR2K},
- {"atxmega128a1u", AVR136K, AVR8K, AVR2K},
- {"atxmega128a3", AVR136K, AVR8K, AVR2K},
-+ {"atxmega128b1", AVR136K, AVR8K, AVR2K},
- {"atxmega128d3", AVR136K, AVR8K, AVR2K},
-
- {"at43usb320", AVR128K, 608UL, 0UL},
-diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 15:40:59.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 15:40:03.000000000 +0300
-@@ -257,6 +257,7 @@ static struct mcu_type_s mcu_types[] =
- {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
- {"atxmega64a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega5},
- {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 15:40:59.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 15:40:03.000000000 +0300
-@@ -102,8 +102,8 @@ atxmega64a1u).
-
- Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
- memory space and less than 64K data space (MCU types: atxmega128a3,
--atxmega128d3, atxmega192a3, atxmega192d3, atxmega256a3, atxmega256a3b,
--atxmega192d3).
-+atxmega128d3, atxmega192a3, atxmega128b1, atxmega192d3, atxmega256a3,
-+atxmega256a3b, atxmega192d3).
-
- Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program
- memory space and greater than 64K data space (MCU types: atxmega128a1,
diff --git a/411-binutils-2.20.1-atmega48pa.patch b/405-binutils-atmega48pa.patch
similarity index 63%
rename from 411-binutils-2.20.1-atmega48pa.patch
rename to 405-binutils-atmega48pa.patch
index 1a9f6c7..7054919 100644
--- a/411-binutils-2.20.1-atmega48pa.patch
+++ b/405-binutils-atmega48pa.patch
@@ -1,7 +1,7 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 15:50:47.000000000 +0300
-+++ binutils/size.c 2011-09-05 15:53:27.000000000 +0300
-@@ -289,6 +289,7 @@ avr_device_t avr[] =
+--- binutils/size.c 2011-12-16 15:11:54.000000000 +0530
++++ binutils/size.c 2011-12-16 15:16:27.000000000 +0530
+@@ -288,6 +288,7 @@ avr_device_t avr[] =
{"at90s4434", AVR4K, 352UL, AVR256},
{"atmega48", AVR4K, AVR512, AVR256},
{"atmega48a", AVR4K, AVR512, AVR256},
@@ -10,9 +10,9 @@ diff -Naurp binutils/size.c binutils/size.c
{"attiny4313", AVR4K, AVR256, AVR256},
{"attiny43u", AVR4K, AVR256, AVR64},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 15:50:47.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 15:53:27.000000000 +0300
-@@ -146,6 +146,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-16 15:11:54.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-16 15:16:27.000000000 +0530
+@@ -148,6 +148,7 @@ static struct mcu_type_s mcu_types[] =
{"atmega8", AVR_ISA_M8, bfd_mach_avr4},
{"atmega48", AVR_ISA_AVR4, bfd_mach_avr4},
{"atmega48a", AVR_ISA_AVR4, bfd_mach_avr4},
@@ -21,19 +21,18 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"atmega88", AVR_ISA_AVR4, bfd_mach_avr4},
{"atmega88a", AVR_ISA_AVR4, bfd_mach_avr4},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 15:50:47.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 15:53:27.000000000 +0300
-@@ -59,10 +59,9 @@ instructions (MCU types: attiny167, atti
+--- gas/doc/c-avr.texi 2011-12-16 15:11:54.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-16 15:16:27.000000000 +0530
+@@ -59,9 +59,9 @@ instructions (MCU types: attiny167, atti
atmega8u2, atmega16u2, atmega32u2).
Instruction set avr4 is for the enhanced AVR core with up to 8K program
--memory space (MCU types: atmega48, atmega48a, atmega48p,atmega8, atmega88,
--atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva,
--at90pwm1,at90pwm2, at90pwm2b, at90pwm3, at90pwm3b,
--at90pwm81).
-+memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p,atmega8,
+-memory space (MCU types: atmega48, atmega48a, atmega48p, atmega8, atmega88,
+-atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva, at90pwm1,
+-at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81).
++memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p, atmega8,
+atmega88, atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva,
-+at90pwm1,at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81).
++at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81).
Instruction set avr5 is for the enhanced AVR core with up to 128K program
memory space (MCU types: at90pwm161, atmega16, atmega16a, atmega161, atmega162,
diff --git a/406-binutils-2.20.1-atxmega256a3bu.patch b/406-binutils-2.20.1-atxmega256a3bu.patch
deleted file mode 100644
index f6708d6..0000000
--- a/406-binutils-2.20.1-atxmega256a3bu.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 15:43:49.000000000 +0300
-+++ binutils/size.c 2011-09-05 15:44:57.000000000 +0300
-@@ -121,6 +121,7 @@ avr_device_t avr[] =
- {
- {"atxmega256a3", AVR264K, AVR16K, AVR4K},
- {"atxmega256a3b", AVR264K, AVR16K, AVR4K},
-+ {"atxmega256a3bu",AVR264K, AVR16K, AVR4K},
- {"atxmega256d3", AVR264K, AVR16K, AVR4K},
-
- {"atmega2560", AVR256K, AVR8K, AVR4K},
-diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 15:43:49.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 15:44:57.000000000 +0300
-@@ -263,6 +263,7 @@ static struct mcu_type_s mcu_types[] =
- {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega256a3bu",AVR_ISA_XMEGA,bfd_mach_avrxmega6},
- {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
- {"atxmega128a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega7},
-diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 15:43:49.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 15:44:57.000000000 +0300
-@@ -103,7 +103,7 @@ atxmega64a1u).
- Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
- memory space and less than 64K data space (MCU types: atxmega128a3,
- atxmega128d3, atxmega192a3, atxmega128b1, atxmega192d3, atxmega256a3,
--atxmega256a3b, atxmega192d3).
-+atxmega256a3b, atxmega256a3bu, atxmega192d3).
-
- Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program
- memory space and greater than 64K data space (MCU types: atxmega128a1,
diff --git a/412-binutils-2.20.1-atxmega_16_32_a4u.patch b/406-binutils-atxmega_16_32_a4u.patch
similarity index 75%
rename from 412-binutils-2.20.1-atxmega_16_32_a4u.patch
rename to 406-binutils-atxmega_16_32_a4u.patch
index 25cb8da..62f1ec2 100644
--- a/412-binutils-2.20.1-atxmega_16_32_a4u.patch
+++ b/406-binutils-atxmega_16_32_a4u.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 15:54:26.000000000 +0300
-+++ binutils/size.c 2011-09-05 15:54:34.000000000 +0300
+--- binutils/size.c 2011-12-22 12:06:57.000000000 +0530
++++ binutils/size.c 2011-12-22 12:07:20.000000000 +0530
@@ -177,11 +177,12 @@ avr_device_t avr[] =
{"atmega64c1", AVR64K, AVR4K, AVR2K},
{"atmega64hve", AVR64K, AVR4K, AVR1K},
@@ -13,9 +13,9 @@ diff -Naurp binutils/size.c binutils/size.c
{"atxmega32a4", AVR36K, AVR4K, AVR1K},
+ {"atxmega32a4u", AVR36K, AVR4K, AVR1K},
{"atxmega32d4", AVR36K, AVR4K, AVR1K},
- {"atxmega32x1", AVR36K, AVR2K, AVR1K},
-@@ -221,6 +222,7 @@ avr_device_t avr[] =
+ {"at90can32", AVR32K, AVR2K, AVR1K},
+@@ -220,6 +221,7 @@ avr_device_t avr[] =
{"at43usb355", AVR24K, 1120UL, 0UL},
{"atxmega16a4", AVR20K, AVR2K, AVR1K},
@@ -23,7 +23,7 @@ diff -Naurp binutils/size.c binutils/size.c
{"atxmega16d4", AVR20K, AVR2K, AVR1K},
{"at76c711", AVR16K, AVR2K, 0UL},
-@@ -305,7 +307,7 @@ avr_device_t avr[] =
+@@ -304,7 +306,7 @@ avr_device_t avr[] =
{"at90s2323", AVR2K, AVR128, AVR128},
{"at90s2333", AVR2K, 224UL, AVR128},
{"at90s2343", AVR2K, AVR128, AVR128},
@@ -32,7 +32,7 @@ diff -Naurp binutils/size.c binutils/size.c
{"attiny22", AVR2K, 224UL, AVR128},
{"attiny2313", AVR2K, AVR128, AVR128},
{"attiny2313a", AVR2K, AVR128, AVR128},
-@@ -316,19 +318,19 @@ avr_device_t avr[] =
+@@ -315,19 +317,19 @@ avr_device_t avr[] =
{"attiny261", AVR2K, AVR128, AVR128},
{"attiny261a", AVR2K, AVR128, AVR128},
{"attiny28", AVR2K, 0UL, 0UL},
@@ -58,30 +58,31 @@ diff -Naurp binutils/size.c binutils/size.c
static char *avrmcu = NULL;
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 15:54:26.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 15:56:53.000000000 +0300
-@@ -256,8 +256,10 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:06:57.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:09:01.000000000 +0530
+@@ -259,9 +259,11 @@ static struct mcu_type_s mcu_types[] =
{"atmega2560", AVR_ISA_AVR6, bfd_mach_avr6},
{"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6},
{"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-+ {"atxmega16a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2},
++ {"atxmega16a4u",AVR_ISA_XMEGAU, bfd_mach_avrxmega2},
{"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atxmega16x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-+ {"atxmega32a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2},
++ {"atxmega32a4u",AVR_ISA_XMEGAU, bfd_mach_avrxmega2},
{"atxmega32d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 15:54:26.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 15:58:33.000000000 +0300
-@@ -86,8 +86,8 @@ Instruction set avr6 is for the enhanced
+--- gas/doc/c-avr.texi 2011-12-22 12:06:57.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:07:20.000000000 +0530
+@@ -87,8 +87,8 @@ Instruction set avr6 is for the enhanced
atmega2560, atmega2561).
Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program
-memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16d4,
--atxmega32a4, atxmega32d4, atxmega32x1).
+-atxmega16x1, atxmega32a4, atxmega32d4, atxmega32x1).
+memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u,
-+atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1).
++atxmega16d4, atxmega16x1, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1).
Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program
memory space and greater than 64K data space (MCU types: none).
diff --git a/413-binutils-2.20.1-atxmega64_128_192_256a3u.patch b/407-binutils-atxmega64_128_192_256a3u.patch
similarity index 78%
rename from 413-binutils-2.20.1-atxmega64_128_192_256a3u.patch
rename to 407-binutils-atxmega64_128_192_256a3u.patch
index ca338be..ec062de 100644
--- a/413-binutils-2.20.1-atxmega64_128_192_256a3u.patch
+++ b/407-binutils-atxmega64_128_192_256a3u.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 15:59:51.000000000 +0300
-+++ binutils/size.c 2011-09-05 16:03:16.000000000 +0300
+--- binutils/size.c 2011-12-22 12:10:12.000000000 +0530
++++ binutils/size.c 2011-12-22 12:10:24.000000000 +0530
@@ -120,6 +120,7 @@ typedef struct
avr_device_t avr[] =
{
@@ -32,38 +32,37 @@ diff -Naurp binutils/size.c binutils/size.c
{"at90can64", AVR64K, AVR4K, AVR2K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 15:59:51.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 16:03:16.000000000 +0300
-@@ -263,15 +263,19 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:10:12.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:11:34.000000000 +0530
+@@ -267,15 +267,19 @@ static struct mcu_type_s mcu_types[] =
{"atxmega32d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
-+ {"atxmega64a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega4},
++ {"atxmega64a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega4},
{"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
{"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
{"atxmega64a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega5},
{"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega128a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
++ {"atxmega128a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega192a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
++ {"atxmega192a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega256a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
++ {"atxmega256a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega256a3bu",AVR_ISA_XMEGA,bfd_mach_avrxmega6},
{"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 15:59:51.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 16:03:16.000000000 +0300
-@@ -93,16 +93,17 @@ Instruction set avrxmega3 is for the XME
+--- gas/doc/c-avr.texi 2011-12-22 12:10:12.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:10:24.000000000 +0530
+@@ -94,16 +94,16 @@ Instruction set avrxmega3 is for the XME
memory space and greater than 64K data space (MCU types: none).
Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
-memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64d3).
-+memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64a3u,
-+atxmega64d3).
++memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64a3u, atxmega64d3).
Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program
memory space and greater than 64K data space (MCU types: atxmega64a1,
@@ -72,10 +71,10 @@ diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
-memory space and less than 64K data space (MCU types: atxmega128a3,
-atxmega128d3, atxmega192a3, atxmega128b1, atxmega192d3, atxmega256a3,
--atxmega256a3b, atxmega256a3bu, atxmega192d3).
+-atxmega256a3b, atxmega256a3bu).
+memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u,
+atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega192d3, atxmega256a3,
-+atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3).
++atxmega256a3u, atxmega256a3b, atxmega256a3bu).
Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program
memory space and greater than 64K data space (MCU types: atxmega128a1,
diff --git a/408-binutils-2.20.1-atmega16hvb-32hvb.patch b/408-binutils-2.20.1-atmega16hvb-32hvb.patch
deleted file mode 100644
index 61f11de..0000000
--- a/408-binutils-2.20.1-atmega16hvb-32hvb.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 15:48:20.000000000 +0300
-+++ binutils/size.c 2011-09-05 15:48:28.000000000 +0300
-@@ -208,8 +208,8 @@ avr_device_t avr[] =
- {"atmega3290a", AVR32K, AVR2K, AVR1K},
- {"atmega3290p", AVR32K, AVR2K, AVR1K},
- {"atmega32hvb", AVR32K, AVR2K, AVR1K},
-+ {"atmega32hvbrevb",AVR32K, AVR2K, AVR1K},
- {"atmega32c1", AVR32K, AVR2K, AVR1K},
-- {"atmega32hvb", AVR32K, AVR2K, AVR1K},
- {"atmega32m1", AVR32K, AVR2K, AVR1K},
- {"atmega32u2", AVR32K, AVR1K, AVR1K},
- {"atmega32u4", AVR32K, 2560UL, AVR1K},
-@@ -245,7 +245,8 @@ avr_device_t avr[] =
- {"atmega169pa", AVR16K, AVR1K, AVR512},
- {"atmega16hva", AVR16K, 768UL, AVR256},
- {"atmega16hva2", AVR16K, AVR1K, AVR256},
-- {"atmega16hvb", AVR16K, AVR1K, AVR512},
-+ {"atmega16hvb", AVR16K, AVR1K, AVR512},
-+ {"atmega16hvbrevb",AVR16K, AVR1K, AVR512},
- {"atmega16m1", AVR16K, AVR1K, AVR512},
- {"atmega16u2", AVR16K, AVR512, AVR512},
- {"atmega16u4", AVR16K, 1280UL, AVR512},
-diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 15:48:20.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 15:48:28.000000000 +0300
-@@ -220,7 +220,9 @@ static struct mcu_type_s mcu_types[] =
- {"atmega16hva",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega16hva2",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega16hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5},
- {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega32hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5},
- {"at90can32" , AVR_ISA_AVR5, bfd_mach_avr5},
- {"at90can64" , AVR_ISA_AVR5, bfd_mach_avr5},
- {"at90pwm216", AVR_ISA_AVR5, bfd_mach_avr5},
-diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 15:48:20.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 15:48:28.000000000 +0300
-@@ -75,9 +75,9 @@ atmega3290p, atmega406, atmega64, atmega
- atmega644pa, atmega645, atmega645a, atmega645p, atmega6450, atmega6450a,
- atmega6450p, atmega649, atmega649a, atmega649p, atmega6490, atmega6490a,
- atmega6490p, atmega64hve, atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb,
--at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4, atmega32c1,
--atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1, atmega16u4,
--atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
-+atmega16hvbrevb, atmega32hvbrevb, at90can32, at90can64, at90pwm216, at90pwm316,
-+atmega16u4, atmega32c1, atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1,
-+atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
-
- Instruction set avr51 is for the enhanced AVR core with exactly 128K program
- memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p,
diff --git a/414-binutils-2.20.1-atmegarfr2_a2.patch b/408-binutils-atmegarfr2_a2.patch
similarity index 60%
rename from 414-binutils-2.20.1-atmegarfr2_a2.patch
rename to 408-binutils-atmegarfr2_a2.patch
index 4fc0b78..0d853e1 100644
--- a/414-binutils-2.20.1-atmegarfr2_a2.patch
+++ b/408-binutils-atmegarfr2_a2.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-06-24 16:23:14.000000000 +0530
-+++ binutils/size.c 2011-06-24 10:48:45.000000000 +0530
+--- binutils/size.c 2011-12-22 12:14:48.000000000 +0530
++++ binutils/size.c 2011-12-22 12:12:39.000000000 +0530
@@ -119,6 +119,9 @@ typedef struct
avr_device_t avr[] =
@@ -32,9 +32,9 @@ diff -Naurp binutils/size.c binutils/size.c
{"at90can64", AVR64K, AVR4K, AVR2K},
{"at90scr100", AVR64K, AVR4K, AVR2K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-06-24 16:23:14.000000000 +0530
-+++ gas/config/tc-avr.c 2011-06-24 16:08:14.000000000 +0530
-@@ -203,6 +203,8 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:14:48.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:12:39.000000000 +0530
+@@ -205,6 +205,8 @@ static struct mcu_type_s mcu_types[] =
{"atmega3290p",AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega3290pa",AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega406", AVR_ISA_AVR5, bfd_mach_avr5},
@@ -43,7 +43,7 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"atmega64", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega640", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega644", AVR_ISA_AVR5, bfd_mach_avr5},
-@@ -250,11 +252,15 @@ static struct mcu_type_s mcu_types[] =
+@@ -253,11 +255,15 @@ static struct mcu_type_s mcu_types[] =
{"atmega1281", AVR_ISA_AVR51, bfd_mach_avr51},
{"atmega1284p",AVR_ISA_AVR51, bfd_mach_avr51},
{"atmega128rfa1",AVR_ISA_AVR51, bfd_mach_avr51},
@@ -57,33 +57,27 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+ {"atmega256rfa2", AVR_ISA_AVR6, bfd_mach_avr6},
+ {"atmega256rfr2", AVR_ISA_AVR6, bfd_mach_avr6},
{"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
- {"atxmega16a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atxmega16a4u",AVR_ISA_XMEGAU, bfd_mach_avrxmega2},
{"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-06-24 16:23:14.000000000 +0530
-+++ gas/doc/c-avr.texi 2011-06-24 16:19:20.000000000 +0530
-@@ -68,22 +68,23 @@ memory space (MCU types: at90pwm161, atm
- atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168,
- atmega168a, atmega168p, atmega169, atmega169p, atmega169pa,
- atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a,
--atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328, atmega328p,
--atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, atmega3290a,
--atmega3290p, atmega3290pa, atmega406, atmega64, atmega640, atmega644, atmega644a, atmega644p,
--atmega644pa, atmega645, atmega645a, atmega645p, atmega6450, atmega6450a,
--atmega6450p, atmega649, atmega649a, atmega649p, atmega6490, atmega6490a,
--atmega6490p, atmega64hve, atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb,
--atmega16hvbrevb, atmega32hvbrevb, at90can32, at90can64, at90pwm216, at90pwm316,
--atmega16u4, atmega32c1, atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1,
-+atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa,
-+atmega328, atmega328p,atmega329, atmega329a, atmega329p, atmega329pa, atmega3290,
-+atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64rfa2, atmega64rfr2,
-+atmega64, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645,
-+atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649,
-+atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega64hve,
-+atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, atmega16hvbrevb,
-+atmega32hvbrevb, at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4,
-+atmega32c1, atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1,
- atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
+--- gas/doc/c-avr.texi 2011-12-22 12:14:48.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:12:39.000000000 +0530
+@@ -70,10 +70,10 @@ atmega168a, atmega168p, atmega169, atmeg
+ atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, atmega325p,
+ atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328,
+ atmega328p, atmega329, atmega329a, atmega329p, atmega329pa, atmega3290,
+-atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64, atmega640,
+-atmega644, atmega644a, atmega644p, atmega644pa, atmega645, atmega645a,
+-atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649, atmega649a,
+-atmega649p, atmega6490, atmega6490a, atmega6490p, atmega16hva, atmega16hva2,
++atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64, atmega64rfa2,
++atmegarfr2, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645,
++atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649,
++atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega16hva, atmega16hva2,
+ atmega16hvb, atmega16hvbrevb, atmega32hvb, atmega32hvbrevb, atmega64hve,
+ at90can32, at90can64, at90pwm161, at90pwm216, at90pwm316, atmega32c1,
+ atmega64c1, atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4,
+@@ -81,10 +81,10 @@ atmega32u6, at90usb646, at90usb647, at94
Instruction set avr51 is for the enhanced AVR core with exactly 128K program
memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p,
diff --git a/409-binutils-2.20.1-atmega32_5_50_90_pa.patch b/409-binutils-2.20.1-atmega32_5_50_90_pa.patch
deleted file mode 100644
index 33b94ee..0000000
--- a/409-binutils-2.20.1-atmega32_5_50_90_pa.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 15:49:06.000000000 +0300
-+++ binutils/size.c 2011-09-05 15:49:15.000000000 +0300
-@@ -195,9 +195,11 @@ avr_device_t avr[] =
- {"atmega325", AVR32K, AVR2K, AVR1K},
- {"atmega325a", AVR32K, AVR2K, AVR1K},
- {"atmega325p", AVR32K, AVR2K, AVR1K},
-+ {"atmega325pa", AVR32K, AVR2K, AVR1K},
- {"atmega3250", AVR32K, AVR2K, AVR1K},
- {"atmega3250a", AVR32K, AVR2K, AVR1K},
- {"atmega3250p", AVR32K, AVR2K, AVR1K},
-+ {"atmega3250pa", AVR32K, AVR2K, AVR1K},
- {"atmega328", AVR32K, AVR2K, AVR1K},
- {"atmega328p", AVR32K, AVR2K, AVR1K},
- {"atmega329", AVR32K, AVR2K, AVR1K},
-@@ -207,6 +209,7 @@ avr_device_t avr[] =
- {"atmega3290", AVR32K, AVR2K, AVR1K},
- {"atmega3290a", AVR32K, AVR2K, AVR1K},
- {"atmega3290p", AVR32K, AVR2K, AVR1K},
-+ {"atmega3290pa", AVR32K, AVR2K, AVR1K},
- {"atmega32hvb", AVR32K, AVR2K, AVR1K},
- {"atmega32hvbrevb",AVR32K, AVR2K, AVR1K},
- {"atmega32c1", AVR32K, AVR2K, AVR1K},
-diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 15:49:06.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 15:49:15.000000000 +0300
-@@ -185,9 +185,11 @@ static struct mcu_type_s mcu_types[] =
- {"atmega325", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega325a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega325p", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega325pa",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3250", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3250a",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3250p",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega3250pa",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega328", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega328p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega329", AVR_ISA_AVR5, bfd_mach_avr5},
-@@ -197,6 +199,7 @@ static struct mcu_type_s mcu_types[] =
- {"atmega3290", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3290a",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3290p",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega3290pa",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega406", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega64", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega640", AVR_ISA_AVR5, bfd_mach_avr5},
-diff -Naurp gas/doc/as.info gas/doc/as.info
---- gas/doc/as.info 2010-03-01 16:49:55.000000000 +0300
-+++ gas/doc/as.info 2011-09-05 15:49:15.000000000 +0300
-@@ -7097,14 +7097,15 @@ File: as.info, Node: AVR Options, Next
- program memory space (MCU types: atmega16, atmega161, atmega162,
- atmega163, atmega164p, atmega165, atmega165p, atmega168,
- atmega168p, atmega169, atmega169p, atmega16c1, atmega32,
-- atmega323, atmega324p, atmega325, atmega325p, atmega3250,
-- atmega3250p, atmega328p, atmega329, atmega329p, atmega3290,
-- atmega3290p, atmega406, atmega64, atmega640, atmega644,
-- atmega644p, atmega644pa, atmega645, atmega6450, atmega649,
-- atmega6490, atmega16hva, atmega16hvb, atmega32hvb, at90can32,
-- at90can64, at90pwm216, at90pwm316, atmega32c1, atmega64c1,
-- atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4,
-- atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
-+ atmega323, atmega324p, atmega325, atmega325p, atmega325pa,
-+ atmega3250, atmega3250p, atmega3250pa, atmega328p, atmega329,
-+ atmega329p, atmega3290, atmega3290p, atmega3290pa, atmega406,
-+ atmega64, atmega640, atmega644, atmega644p, atmega644pa, atmega645,
-+ atmega6450, atmega649, atmega6490, atmega16hva, atmega16hvb,
-+ atmega32hvb, at90can32, at90can64, at90pwm216, at90pwm316,
-+ atmega32c1, atmega64c1, atmega16m1, atmega32m1, atmega64m1,
-+ atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647,
-+ at94k, at90scr100).
-
- Instruction set avr51 is for the enhanced AVR core with exactly
- 128K program memory space (MCU types: atmega128, atmega1280,
-diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 15:49:06.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 15:49:15.000000000 +0300
-@@ -69,9 +69,9 @@ memory space (MCU types: at90pwm161, atm
- atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168,
- atmega168a, atmega168p, atmega169, atmega169p, atmega169pa,
- atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a,
--atmega325p, atmega3250, atmega3250a, atmega3250p, atmega328, atmega328p,
-+atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328, atmega328p,
- atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, atmega3290a,
--atmega3290p, atmega406, atmega64, atmega640, atmega644, atmega644a, atmega644p,
-+atmega3290p, atmega3290pa, atmega406, atmega64, atmega640, atmega644, atmega644a, atmega644p,
- atmega644pa, atmega645, atmega645a, atmega645p, atmega6450, atmega6450a,
- atmega6450p, atmega649, atmega649a, atmega649p, atmega6490, atmega6490a,
- atmega6490p, atmega64hve, atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb,
diff --git a/415-binutils-2.20.1-atmega165pa.patch b/409-binutils-atmega165pa.patch
similarity index 64%
rename from 415-binutils-2.20.1-atmega165pa.patch
rename to 409-binutils-atmega165pa.patch
index 57bdc2d..2993624 100644
--- a/415-binutils-2.20.1-atmega165pa.patch
+++ b/409-binutils-atmega165pa.patch
@@ -1,7 +1,7 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 16:07:24.000000000 +0300
-+++ binutils/size.c 2011-09-05 16:07:29.000000000 +0300
-@@ -254,6 +254,7 @@ avr_device_t avr[] =
+--- binutils/size.c 2011-12-16 15:25:58.000000000 +0530
++++ binutils/size.c 2011-12-16 15:28:02.000000000 +0530
+@@ -253,6 +253,7 @@ avr_device_t avr[] =
{"atmega165a", AVR16K, AVR1K, AVR512},
{"atmega165", AVR16K, AVR1K, AVR512},
{"atmega165p", AVR16K, AVR1K, AVR512},
@@ -10,9 +10,9 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega168a", AVR16K, AVR1K, AVR512},
{"atmega168p", AVR16K, AVR1K, AVR512},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 16:07:24.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 16:07:29.000000000 +0300
-@@ -172,6 +172,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-16 15:25:58.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-16 15:28:02.000000000 +0530
+@@ -174,6 +174,7 @@ static struct mcu_type_s mcu_types[] =
{"atmega165", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega165a", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega165p", AVR_ISA_AVR5, bfd_mach_avr5},
@@ -21,14 +21,14 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"atmega168a", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega168p", AVR_ISA_AVR5, bfd_mach_avr5},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 16:07:24.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 16:07:29.000000000 +0300
-@@ -65,7 +65,7 @@ at90pwm1,at90pwm2, at90pwm2b, at90pwm3,
+--- gas/doc/c-avr.texi 2011-12-16 15:25:58.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-16 15:28:02.000000000 +0530
+@@ -65,7 +65,7 @@ at90pwm1, at90pwm2, at90pwm2b, at90pwm3,
Instruction set avr5 is for the enhanced AVR core with up to 128K program
memory space (MCU types: at90pwm161, atmega16, atmega16a, atmega161, atmega162,
-atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168,
+atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega165pa, atmega168,
- atmega168a, atmega168p, atmega169, atmega169p, atmega169pa,
- atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a,
- atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa,
+ atmega168a, atmega168p, atmega169, atmega169a, atmega169p, atmega169pa,
+ atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, atmega325p,
+ atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328,
diff --git a/416-binutils-2.20.1-atxmega384c3.patch b/410-binutils-atxmega384c3.patch
similarity index 65%
rename from 416-binutils-2.20.1-atxmega384c3.patch
rename to 410-binutils-atxmega384c3.patch
index 422ef75..e91d9f7 100644
--- a/416-binutils-2.20.1-atxmega384c3.patch
+++ b/410-binutils-atxmega384c3.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 16:08:16.000000000 +0300
-+++ binutils/size.c 2011-09-05 16:08:24.000000000 +0300
+--- binutils/size.c 2011-12-22 12:16:07.000000000 +0530
++++ binutils/size.c 2011-12-22 12:16:21.000000000 +0530
@@ -108,6 +108,7 @@ static int return_code = 0;
#define AVR200K 204800UL
#define AVR256K 262144UL
@@ -19,25 +19,25 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega256rfr2", AVR256K, AVR32K, AVR8K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 16:08:16.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 16:08:24.000000000 +0300
-@@ -286,6 +286,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:16:07.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:21:02.000000000 +0530
+@@ -290,6 +290,7 @@ static struct mcu_type_s mcu_types[] =
{"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega256a3bu",AVR_ISA_XMEGA,bfd_mach_avrxmega6},
{"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega384c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
++ {"atxmega384c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
- {"atxmega128a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega7},
+ {"atxmega128a1u", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
{"attiny4", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 16:08:16.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 16:08:24.000000000 +0300
-@@ -104,9 +104,9 @@ atxmega64a1u).
+--- gas/doc/c-avr.texi 2011-12-22 12:16:07.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:16:21.000000000 +0530
+@@ -103,9 +103,9 @@ atxmega64a1u).
Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u,
atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega192d3, atxmega256a3,
--atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3).
-+atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3, atxmega384c3).
+-atxmega256a3u, atxmega256a3b, atxmega256a3bu).
++atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega384c3).
-Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program
+Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program
diff --git a/417-binutils-2.20.1-attiny80.patch b/411-binutils-attiny80.patch
similarity index 56%
rename from 417-binutils-2.20.1-attiny80.patch
rename to 411-binutils-attiny80.patch
index 7fbcdf2..ae80368 100644
--- a/417-binutils-2.20.1-attiny80.patch
+++ b/411-binutils-attiny80.patch
@@ -1,7 +1,7 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 16:10:37.000000000 +0300
-+++ binutils/size.c 2011-09-05 16:10:56.000000000 +0300
-@@ -318,6 +318,7 @@ avr_device_t avr[] =
+--- binutils/size.c 2011-12-16 15:29:27.000000000 +0530
++++ binutils/size.c 2011-12-16 15:32:13.000000000 +0530
+@@ -317,6 +317,7 @@ avr_device_t avr[] =
{"attiny461", AVR4K, AVR256, AVR256},
{"attiny461a", AVR4K, AVR256, AVR256},
{"attiny48", AVR4K, AVR256, AVR64},
@@ -10,9 +10,9 @@ diff -Naurp binutils/size.c binutils/size.c
{"at86rf401", AVR2K, 224UL, AVR128},
{"at90s2313", AVR2K, AVR128, AVR128},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 16:10:37.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 16:10:56.000000000 +0300
-@@ -130,6 +130,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-16 15:29:27.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-16 15:32:13.000000000 +0530
+@@ -132,6 +132,7 @@ static struct mcu_type_s mcu_types[] =
{"attiny43u", AVR_ISA_AVR25, bfd_mach_avr25},
{"attiny48", AVR_ISA_AVR25, bfd_mach_avr25},
{"attiny88", AVR_ISA_AVR25, bfd_mach_avr25},
@@ -21,14 +21,14 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"ata6289", AVR_ISA_AVR25, bfd_mach_avr25},
{"at43usb355", AVR_ISA_AVR3, bfd_mach_avr3},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 16:10:37.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 16:10:56.000000000 +0300
+--- gas/doc/c-avr.texi 2011-12-16 15:29:27.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-16 15:32:13.000000000 +0530
@@ -46,7 +46,7 @@ space plus the MOVW instruction (MCU typ
- attiny2313a, attiny24, attiny24a, attiny4313, attiny43u, attiny44, attiny44a,
- attiny84, attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a,
- attiny461, attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48,
--attiny88, at86rf401, ata6289).
-+attiny88, attiny80, at86rf401, ata6289).
+ attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
+ attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461,
+ attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88,
+-at86rf401, ata6289).
++attiny80, at86rf401, ata6289).
Instruction set avr3 is for the classic AVR core with up to 128K program
memory space (MCU types: at43usb355, at76c711).
diff --git a/418-binutils-2.20.1-atxmega128a4u.patch b/412-binutils-atxmega128a4u.patch
similarity index 60%
rename from 418-binutils-2.20.1-atxmega128a4u.patch
rename to 412-binutils-atxmega128a4u.patch
index 9a01eb6..54f474e 100644
--- a/418-binutils-2.20.1-atxmega128a4u.patch
+++ b/412-binutils-atxmega128a4u.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 16:11:30.000000000 +0300
-+++ binutils/size.c 2011-09-05 16:11:38.000000000 +0300
+--- binutils/size.c 2011-12-22 12:22:14.000000000 +0530
++++ binutils/size.c 2011-12-22 12:22:22.000000000 +0530
@@ -143,6 +143,7 @@ avr_device_t avr[] =
{"atxmega128a1", AVR136K, AVR8K, AVR2K},
@@ -10,20 +10,20 @@ diff -Naurp binutils/size.c binutils/size.c
{"atxmega128a3u", AVR136K, AVR8K, AVR2K},
{"atxmega128b1", AVR136K, AVR8K, AVR2K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 16:11:30.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 16:11:38.000000000 +0300
-@@ -290,6 +290,7 @@ static struct mcu_type_s mcu_types[] =
- {"atxmega384c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+--- gas/config/tc-avr.c 2011-12-22 12:22:14.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:23:13.000000000 +0530
+@@ -294,6 +294,7 @@ static struct mcu_type_s mcu_types[] =
+ {"atxmega384c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
- {"atxmega128a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega7},
-+ {"atxmega128a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega7},
+ {"atxmega128a1u", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
++ {"atxmega128a4u", AVR_ISA_XMEGAU, bfd_mach_avrxmega7},
{"attiny4", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
{"attiny5", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
{"attiny9", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 16:11:30.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 16:11:38.000000000 +0300
-@@ -108,7 +108,7 @@ atxmega256a3u, atxmega256a3b, atxmega256
+--- gas/doc/c-avr.texi 2011-12-22 12:22:14.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:22:22.000000000 +0530
+@@ -107,7 +107,7 @@ atxmega256a3u, atxmega256a3b, atxmega256
Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program
memory space and greater than 64K data space (MCU types: atxmega128a1,
diff --git a/419-binutils-2.20.1-atxmega64d4.patch b/413-binutils-atxmega64d4.patch
similarity index 58%
rename from 419-binutils-2.20.1-atxmega64d4.patch
rename to 413-binutils-atxmega64d4.patch
index 1097767..ea0e162 100644
--- a/419-binutils-2.20.1-atxmega64d4.patch
+++ b/413-binutils-atxmega64d4.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 16:12:22.000000000 +0300
-+++ binutils/size.c 2011-09-05 16:12:30.000000000 +0300
+--- binutils/size.c 2011-12-22 12:27:41.000000000 +0530
++++ binutils/size.c 2011-12-22 12:28:09.000000000 +0530
@@ -165,7 +165,8 @@ avr_device_t avr[] =
{"atxmega64a3", AVR68K, AVR4K, AVR2K},
{"atxmega64a3u", AVR68K, AVR4K, AVR2K},
@@ -12,24 +12,25 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega64rfr2", AVR64K, AVR8K, AVR2K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 16:12:22.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 16:12:30.000000000 +0300
-@@ -273,6 +273,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:27:41.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:28:09.000000000 +0530
+@@ -277,6 +277,7 @@ static struct mcu_type_s mcu_types[] =
{"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
- {"atxmega64a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega4},
{"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64d4", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
{"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
{"atxmega64a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega5},
{"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 16:12:22.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 16:12:30.000000000 +0300
-@@ -95,7 +95,7 @@ memory space and greater than 64K data s
+--- gas/doc/c-avr.texi 2011-12-22 12:27:41.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:28:09.000000000 +0530
+@@ -94,7 +94,8 @@ Instruction set avrxmega3 is for the XME
+ memory space and greater than 64K data space (MCU types: none).
Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
- memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64a3u,
--atxmega64d3).
+-memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64a3u, atxmega64d3).
++memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64a3u,
+atxmega64d3, atxmega64d4).
Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program
diff --git a/420-binutils-2.20.1-atmega164pa_168pa_32a_64a.patch b/414-binutils-atmega164pa_168pa_32a_64a.patch
similarity index 70%
rename from 420-binutils-2.20.1-atmega164pa_168pa_32a_64a.patch
rename to 414-binutils-atmega164pa_168pa_32a_64a.patch
index 75a09f0..f9d7ecb 100644
--- a/420-binutils-2.20.1-atmega164pa_168pa_32a_64a.patch
+++ b/414-binutils-atmega164pa_168pa_32a_64a.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-05 16:13:00.000000000 +0300
-+++ binutils/size.c 2011-09-05 16:13:06.000000000 +0300
+--- binutils/size.c 2011-12-16 15:36:12.000000000 +0530
++++ binutils/size.c 2011-12-16 15:38:01.000000000 +0530
@@ -175,6 +175,7 @@ avr_device_t avr[] =
{"at90usb646", AVR64K, AVR4K, AVR2K},
{"at90usb647", AVR64K, AVR4K, AVR2K},
@@ -9,7 +9,7 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega640", AVR64K, AVR8K, AVR4K},
{"atmega644", AVR64K, AVR4K, AVR2K},
{"atmega644a", AVR64K, AVR4K, AVR2K},
-@@ -207,6 +208,7 @@ avr_device_t avr[] =
+@@ -206,6 +207,7 @@ avr_device_t avr[] =
{"at90can32", AVR32K, AVR2K, AVR1K},
{"at94k", AVR32K, AVR4K, 0UL},
{"atmega32", AVR32K, AVR2K, AVR1K},
@@ -17,7 +17,7 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega323", AVR32K, AVR2K, AVR1K},
{"atmega324a", AVR32K, AVR2K, AVR1K},
{"atmega324p", AVR32K, AVR2K, AVR1K},
-@@ -256,6 +258,7 @@ avr_device_t avr[] =
+@@ -255,6 +257,7 @@ avr_device_t avr[] =
{"atmega164", AVR16K, AVR1K, AVR512},
{"atmega164a", AVR16K, AVR1K, AVR512},
{"atmega164p", AVR16K, AVR1K, AVR512},
@@ -25,7 +25,7 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega165a", AVR16K, AVR1K, AVR512},
{"atmega165", AVR16K, AVR1K, AVR512},
{"atmega165p", AVR16K, AVR1K, AVR512},
-@@ -263,6 +266,7 @@ avr_device_t avr[] =
+@@ -262,6 +265,7 @@ avr_device_t avr[] =
{"atmega168", AVR16K, AVR1K, AVR512},
{"atmega168a", AVR16K, AVR1K, AVR512},
{"atmega168p", AVR16K, AVR1K, AVR512},
@@ -34,9 +34,9 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega169a", AVR16K, AVR1K, AVR512},
{"atmega169p", AVR16K, AVR1K, AVR512},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-05 16:13:00.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-05 16:13:06.000000000 +0300
-@@ -170,6 +170,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-16 15:36:12.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-16 15:38:01.000000000 +0530
+@@ -172,6 +172,7 @@ static struct mcu_type_s mcu_types[] =
{"atmega163", AVR_ISA_M161, bfd_mach_avr5},
{"atmega164a", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega164p", AVR_ISA_AVR5, bfd_mach_avr5},
@@ -44,7 +44,7 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"atmega165", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega165a", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega165p", AVR_ISA_AVR5, bfd_mach_avr5},
-@@ -177,11 +178,13 @@ static struct mcu_type_s mcu_types[] =
+@@ -179,11 +180,13 @@ static struct mcu_type_s mcu_types[] =
{"atmega168", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega168a", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega168p", AVR_ISA_AVR5, bfd_mach_avr5},
@@ -58,7 +58,7 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"atmega323", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega324a", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega324p", AVR_ISA_AVR5, bfd_mach_avr5},
-@@ -208,6 +211,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -210,6 +213,7 @@ static struct mcu_type_s mcu_types[] =
{"atmega64rfa2", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega64rfr2", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega64", AVR_ISA_AVR5, bfd_mach_avr5},
@@ -67,23 +67,22 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"atmega644", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega644a", AVR_ISA_AVR5, bfd_mach_avr5},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-05 16:13:00.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-05 16:13:06.000000000 +0300
-@@ -65,13 +65,13 @@ at90pwm1,at90pwm2, at90pwm2b, at90pwm3,
+--- gas/doc/c-avr.texi 2011-12-16 15:36:12.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-16 15:38:01.000000000 +0530
+@@ -65,12 +65,12 @@ at90pwm1, at90pwm2, at90pwm2b, at90pwm3,
Instruction set avr5 is for the enhanced AVR core with up to 128K program
memory space (MCU types: at90pwm161, atmega16, atmega16a, atmega161, atmega162,
-atmega163, atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega165pa, atmega168,
--atmega168a, atmega168p, atmega169, atmega169p, atmega169pa,
--atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a,
-+atmega163, atmega164a, atmega164p, atmega164pa, atmega165, atmega165a, atmega165p, atmega165pa,
-+atmega168, atmega168a, atmega168p, atmega168pa, atmega169, atmega169p, atmega169pa,
-+atmega32, atmega32a, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a,
- atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa,
- atmega328, atmega328p,atmega329, atmega329a, atmega329p, atmega329pa, atmega3290,
- atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64rfa2, atmega64rfr2,
--atmega64, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645,
-+atmega64, atmega64a, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645,
- atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649,
- atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega64hve,
- atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, atmega16hvbrevb,
+-atmega168a, atmega168p, atmega169, atmega169a, atmega169p, atmega169pa,
+-atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, atmega325p,
++atmega163, atmega164a, atmega164p, atmega164pa, atmega165, atmega165a, atmega165p, atmega165pa, atmega168,
++atmega168a, atmega168p, atmega168pa, atmega169, atmega169a, atmega169p, atmega169pa,
++atmega32, atmega32a, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a, atmega325p,
+ atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328,
+ atmega328p, atmega329, atmega329a, atmega329p, atmega329pa, atmega3290,
+-atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64, atmega64rfa2,
++atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64, atmega64a, atmega64rfa2,
+ atmegarfr2, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645,
+ atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649,
+ atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega16hva, atmega16hva2,
diff --git a/421-binutils-2.20.1-atxmega64_128_b3.patch b/415-binutils-atxmega64_128_b3.patch
similarity index 70%
rename from 421-binutils-2.20.1-atxmega64_128_b3.patch
rename to 415-binutils-atxmega64_128_b3.patch
index 0397c35..93db106 100644
--- a/421-binutils-2.20.1-atxmega64_128_b3.patch
+++ b/415-binutils-atxmega64_128_b3.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-07 14:41:26.000000000 +0300
-+++ binutils/size.c 2011-09-07 14:55:58.000000000 +0300
+--- binutils/size.c 2011-12-22 12:30:35.000000000 +0530
++++ binutils/size.c 2011-12-22 12:30:49.000000000 +0530
@@ -147,6 +147,7 @@ avr_device_t avr[] =
{"atxmega128a3", AVR136K, AVR8K, AVR2K},
{"atxmega128a3u", AVR136K, AVR8K, AVR2K},
@@ -18,27 +18,27 @@ diff -Naurp binutils/size.c binutils/size.c
{"atxmega64d4", AVR68K, AVR4K, AVR2K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-07 14:41:26.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-07 14:55:58.000000000 +0300
-@@ -276,6 +276,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:30:35.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:31:58.000000000 +0530
+@@ -280,6 +280,7 @@ static struct mcu_type_s mcu_types[] =
{"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
- {"atxmega64a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega4},
+ {"atxmega64b3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
{"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
{"atxmega64d4", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
{"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
-@@ -283,6 +284,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -287,6 +288,7 @@ static struct mcu_type_s mcu_types[] =
{"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega128a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega128a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega128b3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega192a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega192a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-07 14:41:26.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-07 14:55:58.000000000 +0300
+--- gas/doc/c-avr.texi 2011-12-22 12:30:35.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:30:49.000000000 +0530
@@ -95,7 +95,7 @@ memory space and greater than 64K data s
Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
@@ -48,14 +48,12 @@ diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program
memory space and greater than 64K data space (MCU types: atxmega64a1,
-@@ -103,8 +103,8 @@ atxmega64a1u).
+@@ -103,7 +103,7 @@ atxmega64a1u).
Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u,
-atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega192d3, atxmega256a3,
--atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3, atxmega384c3).
-+atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3, atxmega192d3,
-+atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3, atxmega384c3).
++atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3, atxmega192d3, atxmega256a3,
+ atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega384c3).
Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program
- memory space and greater than 64K data space (MCU types: atxmega128a1,
diff --git a/422-binutils-2.20.1-atxmega64b1.patch b/416-binutils-atxmega64b1.patch
similarity index 73%
rename from 422-binutils-2.20.1-atxmega64b1.patch
rename to 416-binutils-atxmega64b1.patch
index a38f871..09ee9ec 100644
--- a/422-binutils-2.20.1-atxmega64b1.patch
+++ b/416-binutils-atxmega64b1.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-07 18:04:50.000000000 +0300
-+++ binutils/size.c 2011-09-07 18:11:50.000000000 +0300
+--- binutils/size.c 2011-12-22 12:33:22.000000000 +0530
++++ binutils/size.c 2011-12-22 12:33:37.000000000 +0530
@@ -165,6 +165,7 @@ avr_device_t avr[] =
{"atxmega64a1u", AVR68K, AVR4K, AVR2K},
{"atxmega64a3", AVR68K, AVR4K, AVR2K},
@@ -10,19 +10,19 @@ diff -Naurp binutils/size.c binutils/size.c
{"atxmega64d3", AVR68K, AVR4K, AVR2K},
{"atxmega64d4", AVR68K, AVR4K, AVR2K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-07 18:04:50.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-07 18:10:28.000000000 +0300
-@@ -276,6 +276,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:33:22.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:34:22.000000000 +0530
+@@ -280,6 +280,7 @@ static struct mcu_type_s mcu_types[] =
{"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
- {"atxmega64a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega4},
+ {"atxmega64b1", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
{"atxmega64b3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
{"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
{"atxmega64d4", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-07 18:04:50.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-07 18:12:34.000000000 +0300
+--- gas/doc/c-avr.texi 2011-12-22 12:33:22.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:33:37.000000000 +0530
@@ -95,7 +95,7 @@ memory space and greater than 64K data s
Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
diff --git a/423-binutils-2.20.1-atmega_8a_128a_1284.patch b/417-binutils-atmega_8a_128a_1284.patch
similarity index 77%
rename from 423-binutils-2.20.1-atmega_8a_128a_1284.patch
rename to 417-binutils-atmega_8a_128a_1284.patch
index b69e7f0..6699131 100644
--- a/423-binutils-2.20.1-atmega_8a_128a_1284.patch
+++ b/417-binutils-atmega_8a_128a_1284.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-08 17:12:34.000000000 +0300
-+++ binutils/size.c 2011-09-08 17:19:37.000000000 +0300
+--- binutils/size.c 2011-12-16 15:50:12.000000000 +0530
++++ binutils/size.c 2011-12-16 15:51:32.000000000 +0530
@@ -155,8 +155,10 @@ avr_device_t avr[] =
{"at90usb1286", AVR128K, AVR8K, AVR4K},
{"at90usb1287", AVR128K, AVR8K, AVR4K},
@@ -12,7 +12,7 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega1284p", AVR128K, AVR16K, AVR4K},
{"atmega128rfa1", AVR128K, AVR16K, AVR4K},
{"atmega103", AVR128K, 4000UL, AVR4K},
-@@ -296,6 +298,7 @@ avr_device_t avr[] =
+@@ -295,6 +297,7 @@ avr_device_t avr[] =
{"at90usb82", AVR8K, AVR512, AVR512},
{"ata6289", AVR8K, AVR512, 320UL},
{"atmega8", AVR8K, AVR1K, AVR512},
@@ -21,9 +21,9 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega8535", AVR8K, AVR512, AVR512},
{"atmega88", AVR8K, AVR1K, AVR512},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-08 17:12:34.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-08 17:17:16.000000000 +0300
-@@ -145,6 +145,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-16 15:50:12.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-16 15:51:32.000000000 +0530
+@@ -147,6 +147,7 @@ static struct mcu_type_s mcu_types[] =
{"atmega32u2", AVR_ISA_AVR35, bfd_mach_avr35},
{"attiny1634", AVR_ISA_AVR35, bfd_mach_avr35},
{"atmega8", AVR_ISA_M8, bfd_mach_avr4},
@@ -31,7 +31,7 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"atmega48", AVR_ISA_AVR4, bfd_mach_avr4},
{"atmega48a", AVR_ISA_AVR4, bfd_mach_avr4},
{"atmega48pa", AVR_ISA_AVR4, bfd_mach_avr4},
-@@ -254,8 +255,10 @@ static struct mcu_type_s mcu_types[] =
+@@ -257,8 +258,10 @@ static struct mcu_type_s mcu_types[] =
{"at94k", AVR_ISA_94K, bfd_mach_avr5},
{"m3000", AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega128", AVR_ISA_AVR51, bfd_mach_avr51},
@@ -43,19 +43,19 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"atmega128rfa1",AVR_ISA_AVR51, bfd_mach_avr51},
{"atmega128rfa2",AVR_ISA_AVR51, bfd_mach_avr51},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-08 17:12:34.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-08 17:23:11.000000000 +0300
+--- gas/doc/c-avr.texi 2011-12-16 15:50:12.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-16 15:51:32.000000000 +0530
@@ -59,7 +59,7 @@ instructions (MCU types: attiny167, atti
atmega8u2, atmega16u2, atmega32u2).
Instruction set avr4 is for the enhanced AVR core with up to 8K program
--memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p,atmega8,
-+memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p,atmega8, atmega8a,
+-memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p, atmega8,
++memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p, atmega8, atmega8a
atmega88, atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva,
- at90pwm1,at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81).
+ at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81).
-@@ -80,7 +80,7 @@ atmega32c1, atmega64c1, atmega64m1, atme
- atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
+@@ -80,7 +80,7 @@ atmega64c1, atmega16m1, atmega32m1, atme
+ atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
Instruction set avr51 is for the enhanced AVR core with exactly 128K program
-memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p,
diff --git a/424-binutils-2.20.1-atxmega64a4u.patch b/418-binutils-atxmega64a4u.patch
similarity index 70%
rename from 424-binutils-2.20.1-atxmega64a4u.patch
rename to 418-binutils-atxmega64a4u.patch
index 9e04ba3..8ba4a13 100644
--- a/424-binutils-2.20.1-atxmega64a4u.patch
+++ b/418-binutils-atxmega64a4u.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-12 14:15:53.000000000 +0300
-+++ binutils/size.c 2011-09-12 14:24:31.000000000 +0300
+--- binutils/size.c 2011-12-22 12:36:03.000000000 +0530
++++ binutils/size.c 2011-12-22 12:36:08.000000000 +0530
@@ -167,6 +167,7 @@ avr_device_t avr[] =
{"atxmega64a1u", AVR68K, AVR4K, AVR2K},
{"atxmega64a3", AVR68K, AVR4K, AVR2K},
@@ -10,19 +10,19 @@ diff -Naurp binutils/size.c binutils/size.c
{"atxmega64b3", AVR68K, AVR4K, AVR2K},
{"atxmega64d3", AVR68K, AVR4K, AVR2K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-12 14:15:53.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-12 14:24:31.000000000 +0300
-@@ -279,6 +279,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:36:03.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:36:51.000000000 +0530
+@@ -283,6 +283,7 @@ static struct mcu_type_s mcu_types[] =
{"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
- {"atxmega64a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega4},
-+ {"atxmega64a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega4},
++ {"atxmega64a4u",AVR_ISA_XMEGAU, bfd_mach_avrxmega4},
{"atxmega64b1", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
{"atxmega64b3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
{"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-12 14:15:53.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-12 14:24:31.000000000 +0300
+--- gas/doc/c-avr.texi 2011-12-22 12:36:03.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:36:08.000000000 +0530
@@ -95,7 +95,7 @@ memory space and greater than 64K data s
Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
diff --git a/425-binutils-2.20.1-atxmega128d4.patch b/419-binutils-atxmega128d4.patch
similarity index 59%
rename from 425-binutils-2.20.1-atxmega128d4.patch
rename to 419-binutils-atxmega128d4.patch
index 970be54..2ba7043 100644
--- a/425-binutils-2.20.1-atxmega128d4.patch
+++ b/419-binutils-atxmega128d4.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-15 11:59:56.000000000 +0300
-+++ binutils/size.c 2011-09-15 12:04:20.000000000 +0300
+--- binutils/size.c 2011-12-22 12:38:05.000000000 +0530
++++ binutils/size.c 2011-12-22 12:38:14.000000000 +0530
@@ -149,6 +149,7 @@ avr_device_t avr[] =
{"atxmega128b1", AVR136K, AVR8K, AVR2K},
{"atxmega128b3", AVR136K, AVR8K, AVR2K},
@@ -10,28 +10,25 @@ diff -Naurp binutils/size.c binutils/size.c
{"at43usb320", AVR128K, 608UL, 0UL},
{"at90can128", AVR128K, AVR4K, AVR4K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-15 11:59:56.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-15 12:04:20.000000000 +0300
-@@ -291,6 +291,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:38:05.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:38:14.000000000 +0530
+@@ -295,6 +295,7 @@ static struct mcu_type_s mcu_types[] =
{"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega128b3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega128d4", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega192a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega192a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-15 11:59:56.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-15 12:04:20.000000000 +0300
-@@ -103,8 +103,9 @@ atxmega64a1u).
+--- gas/doc/c-avr.texi 2011-12-22 12:38:05.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:38:14.000000000 +0530
+@@ -103,7 +103,7 @@ atxmega64a1u).
Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u,
--atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3, atxmega192d3,
--atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3, atxmega384c3).
-+atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3,
-+atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3,
-+atxmega384c3).
+-atxmega128d3, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3, atxmega192d3, atxmega256a3,
++atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3, atxmega192d3, atxmega256a3,
+ atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega384c3).
Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program
- memory space and greater than 64K data space (MCU types: atxmega128a1,
diff --git a/426-binutils-2.20.1-atmxt336s.patch b/420-binutils-atmxt336s.patch
similarity index 69%
rename from 426-binutils-2.20.1-atmxt336s.patch
rename to 420-binutils-atmxt336s.patch
index 72c40de..21abb68 100644
--- a/426-binutils-2.20.1-atmxt336s.patch
+++ b/420-binutils-atmxt336s.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-09-15 16:09:26.000000000 +0300
-+++ binutils/size.c 2011-09-15 16:08:10.000000000 +0300
+--- binutils/size.c 2011-12-22 12:39:06.000000000 +0530
++++ binutils/size.c 2011-12-22 12:39:15.000000000 +0530
@@ -95,12 +95,14 @@ static int return_code = 0;
#define AVR2K 2048UL
#define AVR4K 4096UL
@@ -26,25 +26,25 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega406", AVR40K, AVR2K, AVR512},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-09-15 16:09:26.000000000 +0300
-+++ gas/config/tc-avr.c 2011-09-15 16:08:10.000000000 +0300
-@@ -270,6 +270,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:39:06.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:39:15.000000000 +0530
+@@ -273,6 +273,7 @@ static struct mcu_type_s mcu_types[] =
{"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6},
{"atmega256rfa2", AVR_ISA_AVR6, bfd_mach_avr6},
{"atmega256rfr2", AVR_ISA_AVR6, bfd_mach_avr6},
+ {"atmxt336s", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
- {"atxmega16a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atxmega16a4u",AVR_ISA_XMEGAU, bfd_mach_avrxmega2},
{"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-09-15 16:09:26.000000000 +0300
-+++ gas/doc/c-avr.texi 2011-09-15 16:08:10.000000000 +0300
+--- gas/doc/c-avr.texi 2011-12-22 12:39:06.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:39:15.000000000 +0530
@@ -88,7 +88,7 @@ atmega2560, atmega2561, atmega256rfa2, a
Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program
memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u,
--atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1).
-+atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1, atmxt336s).
+-atxmega16d4, atxmega16x1, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1).
++atxmega16d4, atxmega16x1, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1, atmxt336s).
Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program
memory space and greater than 64K data space (MCU types: none).
diff --git a/427-binutils-2.20.1-atxmega16c4_32c4_128c3_256c3.patch b/421-binutils-atxmega16c4_32c4_128c3_256c3.patch
similarity index 59%
rename from 427-binutils-2.20.1-atxmega16c4_32c4_128c3_256c3.patch
rename to 421-binutils-atxmega16c4_32c4_128c3_256c3.patch
index 6c86c7e..da36513 100644
--- a/427-binutils-2.20.1-atxmega16c4_32c4_128c3_256c3.patch
+++ b/421-binutils-atxmega16c4_32c4_128c3_256c3.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-11-02 17:21:35.000000000 +0530
-+++ binutils/size.c 2011-11-02 17:32:40.000000000 +0530
+--- binutils/size.c 2011-12-22 12:40:00.000000000 +0530
++++ binutils/size.c 2011-12-22 12:40:10.000000000 +0530
@@ -131,6 +131,7 @@ avr_device_t avr[] =
{"atxmega256a3u", AVR264K, AVR16K, AVR4K},
{"atxmega256a3b", AVR264K, AVR16K, AVR4K},
@@ -18,14 +18,14 @@ diff -Naurp binutils/size.c binutils/size.c
{"atxmega128d4", AVR136K, AVR8K, AVR2K},
@@ -213,6 +215,7 @@ avr_device_t avr[] =
-
+
{"atxmega32a4", AVR36K, AVR4K, AVR1K},
{"atxmega32a4u", AVR36K, AVR4K, AVR1K},
+ {"atxmega32c4", AVR36K, AVR4K, AVR1K},
{"atxmega32d4", AVR36K, AVR4K, AVR1K},
- {"atxmega32x1", AVR36K, AVR2K, AVR1K},
-@@ -254,6 +257,7 @@ avr_device_t avr[] =
+ {"at90can32", AVR32K, AVR2K, AVR1K},
+@@ -253,6 +256,7 @@ avr_device_t avr[] =
{"atxmega16a4", AVR20K, AVR2K, AVR1K},
{"atxmega16a4u", AVR20K, AVR2K, AVR1K},
@@ -34,58 +34,60 @@ diff -Naurp binutils/size.c binutils/size.c
{"at76c711", AVR16K, AVR2K, 0UL},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-11-02 17:21:35.000000000 +0530
-+++ gas/config/tc-avr.c 2011-11-02 17:25:47.000000000 +0530
-@@ -273,9 +273,11 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2011-12-22 12:40:00.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:44:21.000000000 +0530
+@@ -276,10 +276,12 @@ static struct mcu_type_s mcu_types[] =
{"atmxt336s", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
- {"atxmega16a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-+ {"atxmega16c4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atxmega16a4u",AVR_ISA_XMEGAU, bfd_mach_avrxmega2},
++ {"atxmega16c4", AVR_ISA_XMEGAU, bfd_mach_avrxmega2},
{"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atxmega16x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
- {"atxmega32a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2},
-+ {"atxmega32c4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atxmega32a4u",AVR_ISA_XMEGAU, bfd_mach_avrxmega2},
++ {"atxmega32c4", AVR_ISA_XMEGAU, bfd_mach_avrxmega2},
{"atxmega32d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega32x1", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
-@@ -291,6 +293,7 @@ static struct mcu_type_s mcu_types[] =
- {"atxmega128a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+@@ -295,6 +297,7 @@ static struct mcu_type_s mcu_types[] =
+ {"atxmega128a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega128b3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+ {"atxmega128c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
++ {"atxmega128c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega128d4", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-@@ -300,6 +303,7 @@ static struct mcu_type_s mcu_types[] =
- {"atxmega256a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+@@ -304,6 +307,7 @@ static struct mcu_type_s mcu_types[] =
+ {"atxmega256a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega256a3bu",AVR_ISA_XMEGA,bfd_mach_avrxmega6},
-+ {"atxmega256c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
++ {"atxmega256c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega384c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega384c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-11-02 17:21:35.000000000 +0530
-+++ gas/doc/c-avr.texi 2011-11-02 17:38:30.000000000 +0530
-@@ -88,7 +88,8 @@ atmega2560, atmega2561, atmega256rfa2, a
+--- gas/doc/c-avr.texi 2011-12-22 12:40:00.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:40:10.000000000 +0530
+@@ -87,8 +87,9 @@ Instruction set avr6 is for the enhanced
+ atmega2560, atmega2561, atmega256rfa2, atmega256rfr2).
Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program
- memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u,
--atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1, atmxt336s).
-+atxmega16c4, atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32c4, atxmega32d4,
-+atxmega32x1, atmxt336s).
+-memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u,
+-atxmega16d4, atxmega16x1, atxmega32a4, atxmega32a4u, atxmega32d4, atxmega32x1, atmxt336s).
++memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u, atxmega16c4,
++atxmega16d4, atxmega16x1, atxmega32a4, atxmega32a4u, ,atxmega32c4, atxmega32d4, atxmega32x1,
++atmxt336s).
Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program
memory space and greater than 64K data space (MCU types: none).
-@@ -103,9 +104,9 @@ atxmega64a1u).
+@@ -103,8 +104,9 @@ atxmega64a1u).
Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u,
--atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3,
--atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega192d3,
--atxmega384c3).
-+atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1,
-+atxmega128b3, atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu,
+-atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1, atxmega128b3, atxmega192d3, atxmega256a3,
+-atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega384c3).
++atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1,
++atxmega128b3, atxmega192d3, atxmega256a3, atxmega256a3u, atxmega256a3b, atxmega256a3bu,
+atxmega256c3, atxmega256d3, atxmega384c3).
Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program
diff --git a/428-binutils-2.20.1-atxmega384d3.patch b/422-binutils-atxmega384d3.patch
similarity index 62%
rename from 428-binutils-2.20.1-atxmega384d3.patch
rename to 422-binutils-atxmega384d3.patch
index 969482d..6c0d049 100644
--- a/428-binutils-2.20.1-atxmega384d3.patch
+++ b/422-binutils-atxmega384d3.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-11-08 14:48:07.000000000 +0530
-+++ binutils/size.c 2011-11-08 14:50:07.000000000 +0530
+--- binutils/size.c 2011-12-22 12:45:34.000000000 +0530
++++ binutils/size.c 2011-12-22 12:45:45.000000000 +0530
@@ -110,6 +110,7 @@ static int return_code = 0;
#define AVR200K 204800UL
#define AVR256K 262144UL
@@ -19,23 +19,23 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega256rfa2", AVR256K, AVR32K, AVR8K},
{"atmega256rfr2", AVR256K, AVR32K, AVR8K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-11-08 14:48:07.000000000 +0530
-+++ gas/config/tc-avr.c 2011-11-08 14:50:07.000000000 +0530
-@@ -306,6 +306,7 @@ static struct mcu_type_s mcu_types[] =
- {"atxmega256c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+--- gas/config/tc-avr.c 2011-12-22 12:45:34.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:46:09.000000000 +0530
+@@ -310,6 +310,7 @@ static struct mcu_type_s mcu_types[] =
+ {"atxmega256c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
{"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega384c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega384c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+ {"atxmega384d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
- {"atxmega128a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega7},
- {"atxmega128a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega7},
+ {"atxmega128a1u", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
+ {"atxmega128a4u", AVR_ISA_XMEGAU, bfd_mach_avrxmega7},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-11-08 14:48:07.000000000 +0530
-+++ gas/doc/c-avr.texi 2011-11-08 14:55:04.000000000 +0530
+--- gas/doc/c-avr.texi 2011-12-22 12:45:34.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:45:45.000000000 +0530
@@ -106,7 +106,7 @@ Instruction set avrxmega6 is for the XME
memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u,
- atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1,
- atxmega128b3, atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu,
+ atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1,
+ atxmega128b3, atxmega192d3, atxmega256a3, atxmega256a3u, atxmega256a3b, atxmega256a3bu,
-atxmega256c3, atxmega256d3, atxmega384c3).
+atxmega256c3, atxmega256d3, atxmega384c3, atxmega384d3).
diff --git a/423-binutils-atmega48hvf.patch b/423-binutils-atmega48hvf.patch
new file mode 100644
index 0000000..9328887
--- /dev/null
+++ b/423-binutils-atmega48hvf.patch
@@ -0,0 +1,44 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2011-12-16 16:16:32.000000000 +0530
++++ binutils/size.c 2011-12-16 16:22:02.000000000 +0530
+@@ -102,6 +102,7 @@ static int return_code = 0;
+ #define AVR32K 32768UL
+ #define AVR36K 36864UL
+ #define AVR40K 40960UL
++#define AVR48K 49152UL
+ #define AVR52K 53248UL
+ #define AVR64K 65536UL
+ #define AVR68K 69632UL
+@@ -331,6 +332,7 @@ avr_device_t avr[] =
+ {"at90s4433", AVR4K, AVR128, AVR256},
+ {"at90s4434", AVR4K, 352UL, AVR256},
+ {"atmega48", AVR4K, AVR512, AVR256},
++ {"atmega48hvf", AVR48K, AVR2K, AVR1K},
+ {"atmega48a", AVR4K, AVR512, AVR256},
+ {"atmega48pa", AVR4K, AVR512, AVR256},
+ {"atmega48p", AVR4K, AVR512, AVR256},
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2011-12-16 16:16:32.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-16 16:22:02.000000000 +0530
+@@ -238,6 +238,7 @@ static struct mcu_type_s mcu_types[] =
+ {"atmega16hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5},
+ {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega32hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5},
++ {"atmega48hvf",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega64hve",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"at90can32" , AVR_ISA_AVR5, bfd_mach_avr5},
+ {"at90can64" , AVR_ISA_AVR5, bfd_mach_avr5},
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2011-12-16 16:19:33.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-16 16:22:02.000000000 +0530
+@@ -74,8 +74,8 @@ atmega3290a, atmega3290p, atmega3290pa,
+ atmegarfr2, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645,
+ atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649,
+ atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega16hva, atmega16hva2,
+-atmega16hvb, atmega16hvbrevb, atmega32hvb, atmega32hvbrevb, atmega64hve,
+-at90can32, at90can64, at90pwm161, at90pwm216, at90pwm316, atmega32c1,
++atmega16hvb, atmega16hvbrevb, atmega32hvb, atmega32hvbrevb, atmega48hvf, atmega64hve,
++at90can32, at90can64, at90pwm216, at90pwm316, atmega32c1,
+ atmega64c1, atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4,
+ atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
+
diff --git a/430-binutils-2.20.1-atmega26hvg.patch b/424-binutils-atmega26hvg.patch
similarity index 51%
rename from 430-binutils-2.20.1-atmega26hvg.patch
rename to 424-binutils-atmega26hvg.patch
index e445de0..fa61f9a 100644
--- a/430-binutils-2.20.1-atmega26hvg.patch
+++ b/424-binutils-atmega26hvg.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-12-08 14:07:10.000000000 +0530
-+++ binutils/size.c 2011-12-14 18:26:08.000000000 +0530
+--- binutils/size.c 2011-12-22 12:53:39.000000000 +0530
++++ binutils/size.c 2011-12-22 12:53:45.000000000 +0530
@@ -99,6 +99,7 @@ static int return_code = 0;
#define AVR16K 16384UL
#define AVR20K 20480UL
@@ -9,7 +9,7 @@ diff -Naurp binutils/size.c binutils/size.c
#define AVR32K 32768UL
#define AVR36K 36864UL
#define AVR40K 40960UL
-@@ -257,6 +258,8 @@ avr_device_t avr[] =
+@@ -256,6 +257,8 @@ avr_device_t avr[] =
{"atmega32u4", AVR32K, 2560UL, AVR1K},
{"atmega32u6", AVR32K, 2560UL, AVR1K},
@@ -19,10 +19,10 @@ diff -Naurp binutils/size.c binutils/size.c
{"atxmega16a4", AVR20K, AVR2K, AVR1K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-12-08 14:07:10.000000000 +0530
-+++ gas/config/tc-avr.c 2011-12-08 14:08:31.000000000 +0530
-@@ -235,6 +235,7 @@ static struct mcu_type_s mcu_types[] =
- {"atmega16hva2",AVR_ISA_AVR5, bfd_mach_avr5},
+--- gas/config/tc-avr.c 2011-12-22 12:53:39.000000000 +0530
++++ gas/config/tc-avr.c 2011-12-22 12:53:45.000000000 +0530
+@@ -236,6 +236,7 @@ static struct mcu_type_s mcu_types[] =
+ {"atmega16hva2",AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5},
{"atmega16hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5},
+ {"atmega26hvg",AVR_ISA_AVR5, bfd_mach_avr5},
@@ -30,14 +30,14 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
{"atmega32hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5},
{"atmega48hvf",AVR_ISA_AVR5, bfd_mach_avr5},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-12-08 14:07:10.000000000 +0530
-+++ gas/doc/c-avr.texi 2011-12-08 14:13:40.000000000 +0530
+--- gas/doc/c-avr.texi 2011-12-22 12:53:39.000000000 +0530
++++ gas/doc/c-avr.texi 2011-12-22 12:53:45.000000000 +0530
@@ -74,7 +74,7 @@ atmega3290a, atmega3290p, atmega3290pa,
- atmega64, atmega64a, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645,
- atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649,
- atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega64hve,
--atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, atmega16hvbrevb,
-+atmega16hva, atmega16hva2, atmega16hvb, atmega26hvg, atmega32hvb, atmega16hvbrevb,
- atmega32hvbrevb, atmega48hvf, at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4,
- atmega32c1, atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1,
- atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
+ atmegarfr2, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645,
+ atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649,
+ atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega16hva, atmega16hva2,
+-atmega16hvb, atmega16hvbrevb, atmega32hvb, atmega32hvbrevb, atmega48hvf, atmega64hve,
++atmega16hvb, atmega16hvbrevb, atmega26hvg, atmega32hvb, atmega32hvbrevb, atmega48hvf, atmega64hve,
+ at90can32, at90can64, at90pwm216, at90pwm316, atmega32c1,
+ atmega64c1, atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4,
+ atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
diff --git a/431-binutils-2.20.1-atmxt224_224e.patch b/425-binutils-atmxt224_224e.patch
similarity index 68%
rename from 431-binutils-2.20.1-atmxt224_224e.patch
rename to 425-binutils-atmxt224_224e.patch
index 6952bfa..9c74659 100644
--- a/431-binutils-2.20.1-atmxt224_224e.patch
+++ b/425-binutils-atmxt224_224e.patch
@@ -1,6 +1,6 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2012-01-18 12:59:34.000000000 +0530
-+++ binutils/size.c 2012-01-18 12:58:46.000000000 +0530
+--- binutils/size.c 2012-02-10 20:48:10.000000000 +0530
++++ binutils/size.c 2012-02-10 20:49:19.000000000 +0530
@@ -95,6 +95,7 @@ static int return_code = 0;
#define AVR2K 2048UL
#define AVR4K 4096UL
@@ -19,9 +19,9 @@ diff -Naurp binutils/size.c binutils/size.c
{"atxmega32a4u", AVR36K, AVR4K, AVR1K},
{"atxmega32c4", AVR36K, AVR4K, AVR1K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2012-01-18 12:59:34.000000000 +0530
-+++ gas/config/tc-avr.c 2012-01-18 12:58:46.000000000 +0530
-@@ -272,6 +272,8 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2012-02-10 20:48:10.000000000 +0530
++++ gas/config/tc-avr.c 2012-02-10 20:49:19.000000000 +0530
+@@ -275,6 +275,8 @@ static struct mcu_type_s mcu_types[] =
{"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6},
{"atmega256rfa2", AVR_ISA_AVR6, bfd_mach_avr6},
{"atmega256rfr2", AVR_ISA_AVR6, bfd_mach_avr6},
@@ -29,16 +29,16 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+ {"atmxt224e", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atmxt336s", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
- {"atxmega16a4u",AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atxmega16a4u",AVR_ISA_XMEGAU, bfd_mach_avrxmega2},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2012-01-18 12:59:34.000000000 +0530
-+++ gas/doc/c-avr.texi 2012-01-18 13:02:14.000000000 +0530
+--- gas/doc/c-avr.texi 2012-02-10 20:48:10.000000000 +0530
++++ gas/doc/c-avr.texi 2012-02-10 20:52:41.000000000 +0530
@@ -89,7 +89,7 @@ atmega2560, atmega2561, atmega256rfa2, a
Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program
- memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u,
- atxmega16c4, atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32c4, atxmega32d4,
--atxmega32x1, atmxt336s).
-+atxmega32x1, atmxt224, atmxt224e, atmxt336s).
+ memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u, atxmega16c4,
+ atxmega16d4, atxmega16x1, atxmega32a4, atxmega32a4u, ,atxmega32c4, atxmega32d4, atxmega32x1,
+-atmxt336s).
++atmxt224, atmxt224e, atmxt336s).
Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program
memory space and greater than 64K data space (MCU types: none).
diff --git a/431-binutils-2.20.1-atxmega192c3.patch b/426-binutils-atxmega192c3.patch
similarity index 57%
rename from 431-binutils-2.20.1-atxmega192c3.patch
rename to 426-binutils-atxmega192c3.patch
index 0095732..7cca678 100644
--- a/431-binutils-2.20.1-atxmega192c3.patch
+++ b/426-binutils-atxmega192c3.patch
@@ -1,7 +1,7 @@
diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2012-01-18 19:44:42.000000000 +0530
-+++ binutils/size.c 2012-01-23 13:58:59.000000000 +0530
-@@ -144,6 +144,7 @@ avr_device_t avr[] =
+--- binutils/size.c 2012-02-10 20:56:48.000000000 +0530
++++ binutils/size.c 2012-02-10 20:57:23.000000000 +0530
+@@ -145,6 +145,7 @@ avr_device_t avr[] =
{"atxmega192a3", AVR200K, AVR16K, AVR2K},
{"atxmega192a3u", AVR200K, AVR16K, AVR2K},
@@ -10,25 +10,25 @@ diff -Naurp binutils/size.c binutils/size.c
{"atmega128rfa2", AVR128K, AVR16K, AVR4K},
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2012-01-18 19:44:41.000000000 +0530
-+++ gas/config/tc-avr.c 2012-01-18 18:53:03.000000000 +0530
-@@ -300,6 +300,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c 2012-02-10 20:56:48.000000000 +0530
++++ gas/config/tc-avr.c 2012-02-10 21:01:00.000000000 +0530
+@@ -306,6 +306,7 @@ static struct mcu_type_s mcu_types[] =
{"atxmega128d4", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega192a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega192a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+ {"atxmega192c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
- {"atxmega256a3u",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega256a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2012-01-18 19:44:41.000000000 +0530
-+++ gas/doc/c-avr.texi 2012-01-18 18:59:24.000000000 +0530
+--- gas/doc/c-avr.texi 2012-02-10 20:56:48.000000000 +0530
++++ gas/doc/c-avr.texi 2012-02-10 20:59:05.000000000 +0530
@@ -105,7 +105,7 @@ atxmega64a1u).
Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u,
- atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1,
--atxmega128b3, atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu,
-+atxmega128b3, ,atxmega192c3, atxmega192d3, atxmega256a3,atxmega256a3u, atxmega256a3b, atxmega256a3bu,
+ atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1,
+-atxmega128b3, atxmega192d3, atxmega256a3, atxmega256a3u, atxmega256a3b, atxmega256a3bu,
++atxmega128b3, atxmega192c3, atxmega192d3, atxmega256a3, atxmega256a3u, atxmega256a3b, atxmega256a3bu,
atxmega256c3, atxmega256d3, atxmega384c3, atxmega384d3).
Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program
diff --git a/427-binutils-atmxt112sl.patch b/427-binutils-atmxt112sl.patch
new file mode 100644
index 0000000..ca0dfcd
--- /dev/null
+++ b/427-binutils-atmxt112sl.patch
@@ -0,0 +1,37 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2012-02-10 21:04:14.000000000 +0530
++++ binutils/size.c 2012-02-10 21:04:48.000000000 +0530
+@@ -218,6 +218,8 @@ avr_device_t avr[] =
+
+ {"atmxt336s", AVR52K, AVR14K, 0UL},
+
++ {"atmxt112sl", AVR48K, AVR8K, 0UL},
++
+ {"atmega406", AVR40K, AVR2K, AVR512},
+
+ {"atmxt224", AVR36K, AVR9K, 0UL},
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2012-02-10 21:04:14.000000000 +0530
++++ gas/config/tc-avr.c 2012-02-10 21:04:48.000000000 +0530
+@@ -275,6 +275,7 @@ static struct mcu_type_s mcu_types[] =
+ {"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6},
+ {"atmega256rfa2", AVR_ISA_AVR6, bfd_mach_avr6},
+ {"atmega256rfr2", AVR_ISA_AVR6, bfd_mach_avr6},
++ {"atmxt112sl", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atmxt224", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atmxt224e", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atmxt336s", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2012-02-10 21:04:14.000000000 +0530
++++ gas/doc/c-avr.texi 2012-02-10 21:06:26.000000000 +0530
+@@ -88,8 +88,8 @@ atmega2560, atmega2561, atmega256rfa2, a
+
+ Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program
+ memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u, atxmega16c4,
+-atxmega16d4, atxmega16x1, atxmega32a4, atxmega32a4u, ,atxmega32c4, atxmega32d4, atxmega32x1,
+-atmxt224, atmxt224e, atmxt336s).
++atxmega16d4, atxmega16x1, atxmega32a4, atxmega32a4u, ,atxmega32c4, atxmega32d4,
++atxmega32x1, atmxt224, atmxt224e, atmxt336s, atmxt112sl).
+
+ Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program
+ memory space and greater than 64K data space (MCU types: none).
diff --git a/428-binutils-atxmega64c3.patch b/428-binutils-atxmega64c3.patch
new file mode 100644
index 0000000..18cd1af
--- /dev/null
+++ b/428-binutils-atxmega64c3.patch
@@ -0,0 +1,34 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2012-02-10 21:10:36.000000000 +0530
++++ binutils/size.c 2012-02-10 21:11:04.000000000 +0530
+@@ -182,6 +182,7 @@ avr_device_t avr[] =
+ {"atxmega64a4u", AVR68K, AVR4K, AVR2K},
+ {"atxmega64b1", AVR68K, AVR4K, AVR2K},
+ {"atxmega64b3", AVR68K, AVR4K, AVR2K},
++ {"atxmega64c3", AVR68K, AVR4K, AVR2K},
+ {"atxmega64d3", AVR68K, AVR4K, AVR2K},
+ {"atxmega64d4", AVR68K, AVR4K, AVR2K},
+
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2012-02-10 21:10:36.000000000 +0530
++++ gas/config/tc-avr.c 2012-02-10 21:11:04.000000000 +0530
+@@ -294,6 +294,7 @@ static struct mcu_type_s mcu_types[] =
+ {"atxmega64a4u",AVR_ISA_XMEGAU, bfd_mach_avrxmega4},
+ {"atxmega64b1", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64b3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
++ {"atxmega64c3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64d4", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2012-02-10 21:10:36.000000000 +0530
++++ gas/doc/c-avr.texi 2012-02-10 21:11:04.000000000 +0530
+@@ -96,7 +96,7 @@ memory space and greater than 64K data s
+
+ Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
+ memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64a3u,
+-atxmega64a4u, atxmega64b1, atxmega64b3, atxmega64d3, atxmega64d4).
++atxmega64a4u, atxmega64b1, atxmega64b3, atxmega64c3, atxmega64d3, atxmega64d4).
+
+ Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program
+ memory space and greater than 64K data space (MCU types: atxmega64a1,
diff --git a/429-binutils-2.20.1-atmega48hvf.patch b/429-binutils-2.20.1-atmega48hvf.patch
deleted file mode 100644
index 63bdb44..0000000
--- a/429-binutils-2.20.1-atmega48hvf.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c 2011-11-16 13:02:43.000000000 +0530
-+++ binutils/size.c 2011-11-16 15:28:08.000000000 +0530
-@@ -102,6 +102,7 @@ static int return_code = 0;
- #define AVR32K 32768UL
- #define AVR36K 36864UL
- #define AVR40K 40960UL
-+#define AVR48K 49152UL
- #define AVR52K 53248UL
- #define AVR64K 65536UL
- #define AVR68K 69632UL
-@@ -332,6 +333,7 @@ avr_device_t avr[] =
- {"at90s4433", AVR4K, AVR128, AVR256},
- {"at90s4434", AVR4K, 352UL, AVR256},
- {"atmega48", AVR4K, AVR512, AVR256},
-+ {"atmega48hvf", AVR48K, AVR2K, AVR1K},
- {"atmega48a", AVR4K, AVR512, AVR256},
- {"atmega48pa", AVR4K, AVR512, AVR256},
- {"atmega48p", AVR4K, AVR512, AVR256},
-diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c 2011-11-16 13:02:43.000000000 +0530
-+++ gas/config/tc-avr.c 2011-11-16 14:39:15.000000000 +0530
-@@ -237,6 +237,7 @@ static struct mcu_type_s mcu_types[] =
- {"atmega16hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5},
- {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega32hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5},
-+ {"atmega48hvf",AVR_ISA_AVR5, bfd_mach_avr5},
- {"at90can32" , AVR_ISA_AVR5, bfd_mach_avr5},
- {"at90can64" , AVR_ISA_AVR5, bfd_mach_avr5},
- {"at90pwm216", AVR_ISA_AVR5, bfd_mach_avr5},
-diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi 2011-11-16 13:02:43.000000000 +0530
-+++ gas/doc/c-avr.texi 2011-11-16 15:31:23.000000000 +0530
-@@ -75,7 +75,7 @@ atmega64, atmega64a, atmega640, atmega64
- atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649,
- atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega64hve,
- atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, atmega16hvbrevb,
--atmega32hvbrevb, at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4,
-+atmega32hvbrevb, atmega48hvf, at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4,
- atmega32c1, atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1,
- atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
-
diff --git a/429-binutils-ata6285_6286.patch b/429-binutils-ata6285_6286.patch
new file mode 100644
index 0000000..1bc67ba
--- /dev/null
+++ b/429-binutils-ata6285_6286.patch
@@ -0,0 +1,36 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2012-02-15 13:57:10.000000000 +0530
++++ binutils/size.c 2012-02-16 16:51:58.000000000 +0530
+@@ -319,6 +319,8 @@ avr_device_t avr[] =
+ {"at90s8515", AVR8K, AVR512, AVR512},
+ {"at90s8535", AVR8K, AVR512, AVR512},
+ {"at90usb82", AVR8K, AVR512, AVR512},
++ {"ata6285", AVR8K, AVR512, 320UL},
++ {"ata6286", AVR8K, AVR512, 320UL},
+ {"ata6289", AVR8K, AVR512, 320UL},
+ {"atmega8", AVR8K, AVR1K, AVR512},
+ {"atmega8a", AVR8K, AVR1K, AVR512},
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2012-02-15 13:57:09.000000000 +0530
++++ gas/config/tc-avr.c 2012-02-17 11:06:57.000000000 +0530
+@@ -148,6 +148,8 @@ static struct mcu_type_s mcu_types[] =
+ {"attiny1634", AVR_ISA_AVR35, bfd_mach_avr35},
+ {"atmega8", AVR_ISA_M8, bfd_mach_avr4},
+ {"atmega8a", AVR_ISA_M8, bfd_mach_avr4},
++ {"ata6285", AVR_ISA_AVR4, bfd_mach_avr4},
++ {"ata6286", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"atmega48", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"atmega48a", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"atmega48pa", AVR_ISA_AVR4, bfd_mach_avr4},
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2012-02-15 13:57:09.000000000 +0530
++++ gas/doc/c-avr.texi 2012-02-16 16:51:58.000000000 +0530
+@@ -61,7 +61,7 @@ atmega8u2, atmega16u2, atmega32u2).
+ Instruction set avr4 is for the enhanced AVR core with up to 8K program
+ memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p, atmega8, atmega8a
+ atmega88, atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva,
+-at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81).
++at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, ata6285, ata6286).
+
+ Instruction set avr5 is for the enhanced AVR core with up to 128K program
+ memory space (MCU types: at90pwm161, atmega16, atmega16a, atmega161, atmega162,
diff --git a/430-binutils-attiny828.patch b/430-binutils-attiny828.patch
new file mode 100644
index 0000000..c7d443b
--- /dev/null
+++ b/430-binutils-attiny828.patch
@@ -0,0 +1,34 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2012-02-23 15:24:08.000000000 +0530
++++ binutils/size.c 2012-02-23 15:27:09.000000000 +0530
+@@ -357,6 +357,7 @@ avr_device_t avr[] =
+ {"attiny461a", AVR4K, AVR256, AVR256},
+ {"attiny48", AVR4K, AVR256, AVR64},
+ {"attiny80", AVR8K, AVR512, AVR256},
++ {"attiny828", AVR8K, AVR512, AVR256},
+
+ {"at86rf401", AVR2K, 224UL, AVR128},
+ {"at90s2313", AVR2K, AVR128, AVR128},
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2012-02-23 15:24:08.000000000 +0530
++++ gas/config/tc-avr.c 2012-02-23 15:26:16.000000000 +0530
+@@ -133,6 +133,7 @@ static struct mcu_type_s mcu_types[] =
+ {"attiny48", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny88", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny80", AVR_ISA_AVR25, bfd_mach_avr25},
++ {"attiny828", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"at86rf401", AVR_ISA_RF401, bfd_mach_avr25},
+ {"ata6289", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"at43usb355", AVR_ISA_AVR3, bfd_mach_avr3},
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2012-02-23 15:24:08.000000000 +0530
++++ gas/doc/c-avr.texi 2012-02-23 15:27:30.000000000 +0530
+@@ -46,7 +46,7 @@ space plus the MOVW instruction (MCU typ
+ attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
+ attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461,
+ attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88,
+-attiny80, at86rf401, ata6289).
++attiny80, attiny828, at86rf401, ata6289).
+
+ Instruction set avr3 is for the classic AVR core with up to 128K program
+ memory space (MCU types: at43usb355, at76c711).
diff --git a/431-binutils-ata5790_5790N_5795.patch b/431-binutils-ata5790_5790N_5795.patch
new file mode 100644
index 0000000..794a4c8
--- /dev/null
+++ b/431-binutils-ata5790_5790N_5795.patch
@@ -0,0 +1,47 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2012-02-27 11:45:17.000000000 +0530
++++ binutils/size.c 2012-02-27 11:49:07.000000000 +0530
+@@ -91,6 +91,7 @@ static int return_code = 0;
+ #define AVR128 128UL
+ #define AVR256 256UL
+ #define AVR512 512UL
++#define AVR2112 2112UL
+ #define AVR1K 1024UL
+ #define AVR2K 2048UL
+ #define AVR4K 4096UL
+@@ -193,6 +194,9 @@ avr_device_t avr[] =
+ {"at90scr100", AVR64K, AVR4K, AVR2K},
+ {"at90usb646", AVR64K, AVR4K, AVR2K},
+ {"at90usb647", AVR64K, AVR4K, AVR2K},
++ {"ata5790", AVR16K, AVR512, AVR2112},
++ {"ata5790n", AVR16K, AVR512, AVR2112},
++ {"ata5795", AVR8K, AVR512, AVR2112},
+ {"atmega64", AVR64K, AVR4K, AVR2K},
+ {"atmega64a", AVR64K, AVR4K, AVR2K},
+ {"atmega640", AVR64K, AVR8K, AVR4K},
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2012-02-27 11:45:17.000000000 +0530
++++ gas/config/tc-avr.c 2012-02-27 11:46:30.000000000 +0530
+@@ -169,6 +169,9 @@ static struct mcu_type_s mcu_types[] =
+ {"at90pwm3b", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"at90pwm81", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"at90pwm161", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"ata5790", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"ata5790n", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"ata5795", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega16", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega16a", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega161", AVR_ISA_M161, bfd_mach_avr5},
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2012-02-27 11:45:17.000000000 +0530
++++ gas/doc/c-avr.texi 2012-02-27 11:46:30.000000000 +0530
+@@ -77,7 +77,8 @@ atmega649a, atmega649p, atmega6490, atme
+ atmega16hvb, atmega16hvbrevb, atmega26hvg, atmega32hvb, atmega32hvbrevb, atmega48hvf, atmega64hve,
+ at90can32, at90can64, at90pwm216, at90pwm316, atmega32c1,
+ atmega64c1, atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4,
+-atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
++atmega32u6, at90usb646, at90usb647, at94k, at90scr100,
++ata5790, ata5790n, ata5795).
+
+ Instruction set avr51 is for the enhanced AVR core with exactly 128K program
+ memory space (MCU types: atmega128, atmega128a, atmega1280, atmega1281, atmega1284, atmega1284p,
diff --git a/432-binutils-ata5272_5505.patch b/432-binutils-ata5272_5505.patch
new file mode 100644
index 0000000..015a830
--- /dev/null
+++ b/432-binutils-ata5272_5505.patch
@@ -0,0 +1,55 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c 2012-03-27 20:30:42.000000000 +0530
++++ binutils/size.c 2012-03-29 10:32:25.000000000 +0530
+@@ -194,9 +194,11 @@ avr_device_t avr[] =
+ {"at90scr100", AVR64K, AVR4K, AVR2K},
+ {"at90usb646", AVR64K, AVR4K, AVR2K},
+ {"at90usb647", AVR64K, AVR4K, AVR2K},
++ {"ata5505", AVR16K, AVR512, AVR512},
+ {"ata5790", AVR16K, AVR512, AVR2112},
+ {"ata5790n", AVR16K, AVR512, AVR2112},
+ {"ata5795", AVR8K, AVR512, AVR2112},
++ {"ata5272", AVR8K, AVR512, AVR512},
+ {"atmega64", AVR64K, AVR4K, AVR2K},
+ {"atmega64a", AVR64K, AVR4K, AVR2K},
+ {"atmega640", AVR64K, AVR8K, AVR4K},
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2012-03-27 20:30:42.000000000 +0530
++++ gas/config/tc-avr.c 2012-03-30 13:57:40.000000000 +0530
+@@ -108,6 +108,7 @@ static struct mcu_type_s mcu_types[] =
+ {"at90s8515", AVR_ISA_AVR2, bfd_mach_avr2},
+ {"at90c8534", AVR_ISA_AVR2, bfd_mach_avr2},
+ {"at90s8535", AVR_ISA_AVR2, bfd_mach_avr2},
++ {"ata5272", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny13", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny13a", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny2313", AVR_ISA_AVR25, bfd_mach_avr25},
+@@ -143,6 +144,7 @@ static struct mcu_type_s mcu_types[] =
+ {"attiny167", AVR_ISA_AVR35, bfd_mach_avr35},
+ {"at90usb82", AVR_ISA_AVR35, bfd_mach_avr35},
+ {"at90usb162", AVR_ISA_AVR35, bfd_mach_avr35},
++ {"ata5505", AVR_ISA_AVR35, bfd_mach_avr35},
+ {"atmega8u2", AVR_ISA_AVR35, bfd_mach_avr35},
+ {"atmega16u2", AVR_ISA_AVR35, bfd_mach_avr35},
+ {"atmega32u2", AVR_ISA_AVR35, bfd_mach_avr35},
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi 2012-03-27 20:30:42.000000000 +0530
++++ gas/doc/c-avr.texi 2012-03-30 13:59:41.000000000 +0530
+@@ -46,7 +46,7 @@ space plus the MOVW instruction (MCU typ
+ attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
+ attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461,
+ attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88,
+-attiny80, attiny828, at86rf401, ata6289).
++attiny80, attiny828, at86rf401, ata6289, ata5272).
+
+ Instruction set avr3 is for the classic AVR core with up to 128K program
+ memory space (MCU types: at43usb355, at76c711).
+@@ -56,7 +56,7 @@ memory space (MCU types: atmega103, at43
+
+ Instruction set avr35 is for classic AVR core plus MOVW, CALL, and JMP
+ instructions (MCU types: attiny167, attiny1634, at90usb82, at90usb162,
+-atmega8u2, atmega16u2, atmega32u2).
++atmega8u2, atmega16u2, atmega32u2, ata5505).
+
+ Instruction set avr4 is for the enhanced AVR core with up to 8K program
+ memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p, atmega8, atmega8a
diff --git a/500-binutils-2.20.1-bug13789.patch b/500-binutils-bug13789.patch
similarity index 88%
rename from 500-binutils-2.20.1-bug13789.patch
rename to 500-binutils-bug13789.patch
index c46fb05..29a34f5 100644
--- a/500-binutils-2.20.1-bug13789.patch
+++ b/500-binutils-bug13789.patch
@@ -1,7 +1,7 @@
-diff -rupN bfd/archures.c bfd/archures.c
---- bfd/archures.c 2011-05-11 20:06:37.000000000 -0500
-+++ bfd/archures.c 2011-05-10 13:35:37.000000000 -0500
-@@ -368,6 +368,7 @@ DESCRIPTION
+diff -Naurp bfd/archures.c bfd/archures.c
+--- bfd/archures.c 2011-11-29 15:45:57.000000000 +0530
++++ bfd/archures.c 2011-11-29 17:31:00.000000000 +0530
+@@ -381,6 +381,7 @@ DESCRIPTION
.#define bfd_mach_avr5 5
.#define bfd_mach_avr51 51
.#define bfd_mach_avr6 6
@@ -9,7 +9,7 @@ diff -rupN bfd/archures.c bfd/archures.c
.#define bfd_mach_avrxmega1 101
.#define bfd_mach_avrxmega2 102
.#define bfd_mach_avrxmega3 103
-@@ -375,7 +376,6 @@ DESCRIPTION
+@@ -388,7 +389,6 @@ DESCRIPTION
.#define bfd_mach_avrxmega5 105
.#define bfd_mach_avrxmega6 106
.#define bfd_mach_avrxmega7 107
@@ -17,10 +17,10 @@ diff -rupN bfd/archures.c bfd/archures.c
. bfd_arch_bfin, {* ADI Blackfin *}
.#define bfd_mach_bfin 1
. bfd_arch_cr16, {* National Semiconductor CompactRISC (ie CR16). *}
-diff -rupN bfd/bfd-in2.h bfd/bfd-in2.h
---- bfd/bfd-in2.h 2011-05-11 20:06:39.000000000 -0500
-+++ bfd/bfd-in2.h 2011-05-10 13:35:37.000000000 -0500
-@@ -2042,6 +2042,7 @@ enum bfd_architecture
+diff -Naurp bfd/bfd-in2.h bfd/bfd-in2.h
+--- bfd/bfd-in2.h 2011-11-29 15:45:57.000000000 +0530
++++ bfd/bfd-in2.h 2011-11-29 17:31:00.000000000 +0530
+@@ -2088,6 +2088,7 @@ enum bfd_architecture
#define bfd_mach_avr5 5
#define bfd_mach_avr51 51
#define bfd_mach_avr6 6
@@ -28,7 +28,7 @@ diff -rupN bfd/bfd-in2.h bfd/bfd-in2.h
#define bfd_mach_avrxmega1 101
#define bfd_mach_avrxmega2 102
#define bfd_mach_avrxmega3 103
-@@ -2049,7 +2050,6 @@ enum bfd_architecture
+@@ -2095,7 +2096,6 @@ enum bfd_architecture
#define bfd_mach_avrxmega5 105
#define bfd_mach_avrxmega6 106
#define bfd_mach_avrxmega7 107
@@ -36,9 +36,9 @@ diff -rupN bfd/bfd-in2.h bfd/bfd-in2.h
bfd_arch_bfin, /* ADI Blackfin */
#define bfd_mach_bfin 1
bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */
-diff -rupN bfd/cpu-avr.c bfd/cpu-avr.c
---- bfd/cpu-avr.c 2011-05-11 20:06:41.000000000 -0500
-+++ bfd/cpu-avr.c 2011-05-10 13:35:37.000000000 -0500
+diff -Naurp bfd/cpu-avr.c bfd/cpu-avr.c
+--- bfd/cpu-avr.c 2011-11-29 15:45:57.000000000 +0530
++++ bfd/cpu-avr.c 2011-11-29 17:31:00.000000000 +0530
@@ -135,29 +135,29 @@ static const bfd_arch_info_type arch_inf
/* 3-Byte PC. */
N (22, bfd_mach_avr6, "avr:6", FALSE, & arch_info_struct[10]),
@@ -79,9 +79,9 @@ diff -rupN bfd/cpu-avr.c bfd/cpu-avr.c
};
-diff -rupN include/elf/avr.h include/elf/avr.h
---- include/elf/avr.h 2011-05-11 20:06:42.000000000 -0500
-+++ include/elf/avr.h 2011-05-10 13:35:37.000000000 -0500
+diff -Naurp include/elf/avr.h include/elf/avr.h
+--- include/elf/avr.h 2011-11-29 15:45:58.000000000 +0530
++++ include/elf/avr.h 2011-11-29 17:31:00.000000000 +0530
@@ -40,6 +40,7 @@
#define E_AVR_MACH_AVR5 5
#define E_AVR_MACH_AVR51 51
@@ -98,9 +98,9 @@ diff -rupN include/elf/avr.h include/elf/avr.h
/* Relocations. */
START_RELOC_NUMBERS (elf_avr_reloc_type)
-diff -rupN ld/emulparams/avrtiny10.sh ld/emulparams/avrtiny10.sh
---- ld/emulparams/avrtiny10.sh 2011-05-11 20:06:44.000000000 -0500
-+++ ld/emulparams/avrtiny10.sh 2011-05-10 13:39:44.000000000 -0500
+diff -Naurp ld/emulparams/avrtiny10.sh ld/emulparams/avrtiny10.sh
+--- ld/emulparams/avrtiny10.sh 2011-11-29 15:45:58.000000000 +0530
++++ ld/emulparams/avrtiny10.sh 2011-11-29 17:31:00.000000000 +0530
@@ -1,12 +1,13 @@
-ARCH=avr:201
+ARCH=avr:100
@@ -119,10 +119,10 @@ diff -rupN ld/emulparams/avrtiny10.sh ld/emulparams/avrtiny10.sh
+DATA_ORIGIN=0x0800040
+DATA_LENGTH=0x100
EXTRA_EM_FILE=avrelf
-diff -rupN ld/Makefile.am ld/Makefile.am
---- ld/Makefile.am 2011-05-11 20:06:47.000000000 -0500
-+++ ld/Makefile.am 2011-05-10 13:35:37.000000000 -0500
-@@ -764,7 +764,7 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm
+diff -Naurp ld/Makefile.am ld/Makefile.am
+--- ld/Makefile.am 2011-11-29 15:45:58.000000000 +0530
++++ ld/Makefile.am 2011-11-29 17:31:00.000000000 +0530
+@@ -820,7 +820,7 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm
${GEN_DEPENDS}
${GENSCRIPTS} avrxmega7 "$(tdir_avr2)"
eavrtiny10.c: $(srcdir)/emulparams/avrtiny10.sh \
@@ -131,9 +131,9 @@ diff -rupN ld/Makefile.am ld/Makefile.am
${GEN_DEPENDS}
${GENSCRIPTS} avrtiny10 "$(tdir_avr2)"
ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
-diff -rupN ld/scripttempl/avrtiny10.sc ld/scripttempl/avrtiny10.sc
---- ld/scripttempl/avrtiny10.sc 1969-12-31 18:00:00.000000000 -0600
-+++ ld/scripttempl/avrtiny10.sc 2011-05-10 13:35:37.000000000 -0500
+diff -Naurp ld/scripttempl/avrtiny10.sc ld/scripttempl/avrtiny10.sc
+--- ld/scripttempl/avrtiny10.sc 1970-01-01 05:30:00.000000000 +0530
++++ ld/scripttempl/avrtiny10.sc 2011-11-29 17:31:00.000000000 +0530
@@ -0,0 +1,240 @@
+cat <<EOF
+OUTPUT_FORMAT("${OUTPUT_FORMAT}","${OUTPUT_FORMAT}","${OUTPUT_FORMAT}")
diff --git a/501-binutils-modify-usb-xmega-isa.patch b/501-binutils-modify-usb-xmega-isa.patch
new file mode 100644
index 0000000..bd88d99
--- /dev/null
+++ b/501-binutils-modify-usb-xmega-isa.patch
@@ -0,0 +1,28 @@
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c 2012-03-30 19:35:59.000000000 +0530
++++ gas/config/tc-avr.c 2012-03-30 19:36:31.000000000 +0530
+@@ -306,7 +306,7 @@ static struct mcu_type_s mcu_types[] =
+ {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64d4", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
+- {"atxmega64a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega5},
++ {"atxmega64a1u",AVR_ISA_XMEGAU, bfd_mach_avrxmega5},
+ {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega128a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+ {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+@@ -321,13 +321,13 @@ static struct mcu_type_s mcu_types[] =
+ {"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega256a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+ {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+- {"atxmega256a3bu",AVR_ISA_XMEGA,bfd_mach_avrxmega6},
++ {"atxmega256a3bu",AVR_ISA_XMEGAU,bfd_mach_avrxmega6},
+ {"atxmega256c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+ {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega384c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+ {"atxmega384d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+ {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
+- {"atxmega128a1u", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
++ {"atxmega128a1u", AVR_ISA_XMEGAU, bfd_mach_avrxmega7},
+ {"atxmega128a4u", AVR_ISA_XMEGAU, bfd_mach_avrxmega7},
+ {"attiny4", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
+ {"attiny5", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
diff --git a/502-binutils-add-config-section-tiny.patch b/502-binutils-add-config-section-tiny.patch
new file mode 100644
index 0000000..8e96775
--- /dev/null
+++ b/502-binutils-add-config-section-tiny.patch
@@ -0,0 +1,32 @@
+diff -Naurp ld/scripttempl/avrtiny10.sc ld/scripttempl/avrtiny10.sc
+--- ld/scripttempl/avrtiny10.sc 2012-04-03 11:50:08.000000000 +0530
++++ ld/scripttempl/avrtiny10.sc 2012-04-03 11:52:48.000000000 +0530
+@@ -6,9 +6,13 @@ MEMORY
+ {
+ text (rx) : ORIGIN = $TEXT_ORIGIN, LENGTH = $TEXT_LENGTH
+ data (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH
+- lock (rw!x) : ORIGIN = 0x3F00, LENGTH = 2
+- signature (rw!x) : ORIGIN = 0x3FC0, LENGTH = 4
+-/* REVISIT: fuse(rw!x) : */
++
++ /* Provide offsets for config, lock and signature to match
++ production file format. Ignore offsets in datasheet. */
++
++ config(rw!x) : ORIGIN = 0x820000, LENGTH = 2
++ lock (rw!x) : ORIGIN = 0x830000, LENGTH = 2
++ signature (rw!x) : ORIGIN = 0x840000, LENGTH = 4
+ }
+
+ SECTIONS
+@@ -202,6 +206,11 @@ SECTIONS
+ KEEP(*(.signature*))
+ } ${RELOCATING+ > signature}
+
++ .config ${RELOCATING-0}:
++ {
++ KEEP(*(.config*))
++ } ${RELOCATING+ > config}
++
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
diff --git a/503-binutils-avrtc193-tiny.patch b/503-binutils-avrtc193-tiny.patch
new file mode 100644
index 0000000..7c9661a
--- /dev/null
+++ b/503-binutils-avrtc193-tiny.patch
@@ -0,0 +1,221 @@
+--- bfd/elf32-avr.c 2012-04-19 14:45:03.000000000 +0530
++++ bfd/elf32-avr.c 2012-04-19 12:04:04.000000000 +0530
+@@ -516,6 +516,21 @@ static reloc_howto_type elf_avr_howto_ta
+ 0x000000ff, /* src_mask */
+ 0x000000ff, /* dst_mask */
+ FALSE), /* pcrel_offset */
++ /* 7 bit immediate for LDS/STS in AVR8L (Tiny architecture) */
++ HOWTO (R_AVR_7_LDS16, /* type */
++ 0,
++ 0,
++ 8,
++ FALSE,
++ 0,
++ complain_overflow_bitfield,
++ bfd_elf_generic_reloc,
++ "R_AVR_7_LDS16",
++ FALSE,
++ 0xffff,
++ 0xffff,
++ FALSE),
++
+ };
+
+ /* Map BFD reloc types to AVR ELF reloc types. */
+@@ -554,7 +569,8 @@ static const struct avr_reloc_map avr_re
+ { BFD_RELOC_AVR_LDI, R_AVR_LDI },
+ { BFD_RELOC_AVR_6, R_AVR_6 },
+ { BFD_RELOC_AVR_6_ADIW, R_AVR_6_ADIW },
+- { BFD_RELOC_8, R_AVR_8 }
++ { BFD_RELOC_8, R_AVR_8 },
++ { BFD_RELOC_AVR_7_LDS16, R_AVR_7_LDS16 }
+ };
+
+ /* Meant to be filled one day with the wrap around address for the
+@@ -1085,6 +1101,17 @@ avr_final_link_relocate (reloc_howto_typ
+ bfd_put_16 (input_bfd, (bfd_vma) srel & 0xffff, contents+2);
+ break;
+
++ case R_AVR_7_LDS16:
++ contents += rel->r_offset;
++ srel = (bfd_signed_vma) relocation + rel->r_addend;
++ if ((srel & 0xFFFF) < 0x40 || (srel & 0xFFFF) > 0xbf)
++ return bfd_reloc_outofrange;
++ srel = srel & 0x7f;
++ x = bfd_get_16 (input_bfd, contents);
++ x |= (srel & 0x0f) | ((srel & 0x30) << 5) | ((srel & 0x40) << 2);
++ bfd_put_16 (input_bfd, x, contents);
++ break;
++
+ case R_AVR_16_PM:
+ use_stubs = (!htab->no_stubs);
+ contents += rel->r_offset;
+--- bfd/reloc.c 2011-07-24 19:50:06.000000000 +0530
++++ bfd/reloc.c 2012-04-19 14:40:17.000000000 +0530
+@@ -4314,6 +4314,11 @@ ENUM
+ ENUMDOC
+ This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
+ instructions
++ENUM
++ BFD_RELOC_AVR_7_LDS16
++ENUMDOC
++ This is a 7 bit reloc for the AVR that stores offset for 16bit sts/lds
++ instructions meant for tiny parts
+
+ ENUM
+ BFD_RELOC_RX_NEG8
+--- gas/config/tc-avr.c 2012-04-19 14:45:03.000000000 +0530
++++ gas/config/tc-avr.c 2012-04-19 12:04:04.000000000 +0530
+@@ -870,17 +870,12 @@ avr_operand (struct avr_opcodes_s *opcod
+ op_mask = avr_get_constant (str, 31);
+ str = input_line_pointer;
+ }
+- if (strcmp(avr_mcu->name, "avrtiny10") == 0
+- || strcmp(avr_mcu->name, "attiny10") == 0
+- || strcmp(avr_mcu->name, "attiny4") == 0
+- || strcmp(avr_mcu->name, "attiny5") == 0
+- || strcmp(avr_mcu->name, "attiny9") == 0
+- || strcmp(avr_mcu->name, "attiny20") == 0
+- || strcmp(avr_mcu->name, "attiny40") == 0)
+- {
+- if(op_mask < 16)
+- as_bad (_("register number above 15 required"));
+- }
++
++ if (avr_mcu->mach == bfd_mach_avrtiny10)
++ {
++ if (op_mask < 16 || op_mask > 31)
++ as_bad (_("register not supported"));
++ }
+
+ if (op_mask <= 31)
+ {
+@@ -1020,6 +1015,12 @@ avr_operand (struct avr_opcodes_s *opcod
+ &op_expr, FALSE, BFD_RELOC_16);
+ break;
+
++ case 'j':
++ str = parse_exp (str, &op_expr);
++ fix_new_exp (frag_now, where, opcode->insn_size * 2,
++ &op_expr, FALSE, BFD_RELOC_AVR_7_LDS16);
++ break;
++
+ case 'M':
+ {
+ bfd_reloc_code_real_type r_type;
+@@ -1328,6 +1329,16 @@ md_apply_fix (fixS *fixP, valueT * valP,
+ bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value), where);
+ break;
+
++ case BFD_RELOC_AVR_7_LDS16:
++ if ((value < 0x40) || (value > 0xBF))
++ as_bad_where (fixP->fx_file, fixP->fx_line,
++ _("operand out of range: 0x%lx"), (unsigned long)value);
++ insn |= value & 0xF;
++ insn |= (value & 0x30) << 5;
++ insn |= (value & 0x40) << 2;
++ bfd_putl16 ((bfd_vma) insn, where);
++ break;
++
+ case BFD_RELOC_AVR_6:
+ if ((value > 63) || (value < 0))
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+@@ -1513,7 +1524,18 @@ md_assemble (char *str)
+ if (!op[0])
+ as_bad (_("can't find opcode "));
+
+- opcode = (struct avr_opcodes_s *) hash_find (avr_hash, op);
++ /* To handle Tiny (AVR8L) architecture peculiarities */
++ if (avr_mcu->isa & AVR_ISA_TINY)
++ {
++ if (*op == 'l' && *(op+1) == 'd' && *(op+2) == 's' && !*(op+3))
++ opcode = (struct avr_opcodes_s *) hash_find (avr_hash, "lds16");
++ else if (*op == 's' && *(op+1) == 't' && *(op+2) == 's' && !*(op+3))
++ opcode = (struct avr_opcodes_s *) hash_find (avr_hash, "sts16");
++ else
++ opcode = (struct avr_opcodes_s *) hash_find (avr_hash, op);
++ }
++ else
++ opcode = (struct avr_opcodes_s *) hash_find (avr_hash, op);
+
+ if (opcode == NULL)
+ {
+--- include/elf/avr.h 2012-04-19 14:45:03.000000000 +0530
++++ include/elf/avr.h 2012-04-19 12:04:04.000000000 +0530
+@@ -78,6 +78,7 @@ START_RELOC_NUMBERS (elf_avr_reloc_type)
+ RELOC_NUMBER (R_AVR_LO8_LDI_GS, 24)
+ RELOC_NUMBER (R_AVR_HI8_LDI_GS, 25)
+ RELOC_NUMBER (R_AVR_8, 26)
++ RELOC_NUMBER (R_AVR_7_LDS16, 27)
+ END_RELOC_NUMBERS (R_AVR_max)
+
+ #endif /* _ELF_AVR_H */
+--- include/opcode/avr.h 2012-04-19 14:45:03.000000000 +0530
++++ include/opcode/avr.h 2012-04-19 12:04:04.000000000 +0530
+@@ -22,6 +22,7 @@
+ #define AVR_ISA_LPM 0x0002 /* device has LPM */
+ #define AVR_ISA_LPMX 0x0004 /* device has LPM Rd,Z[+] */
+ #define AVR_ISA_SRAM 0x0008 /* device has SRAM (LD, ST, PUSH, POP, ...) */
++#define AVR_ISA_TINY 0x0010 /* device has AVR8L core specific encodings */
+ #define AVR_ISA_MEGA 0x0020 /* device has >8K program memory (JMP and CALL
+ supported, no 8K wrap on RJMP and RCALL) */
+ #define AVR_ISA_MUL 0x0040 /* device has new core (MUL, FMUL, ...) */
+@@ -72,7 +73,7 @@
+ AVR_ISA_ELPM | AVR_ISA_ELPMX | AVR_ISA_SPM | \
+ AVR_ISA_BRK | AVR_ISA_EIND | AVR_ISA_MOVW)
+
+-#define AVR_ISA_AVRTINY10 (AVR_ISA_1200 | AVR_ISA_BRK | AVR_ISA_SRAM)
++#define AVR_ISA_AVRTINY10 (AVR_ISA_1200 | AVR_ISA_BRK | AVR_ISA_SRAM | AVR_ISA_TINY)
+
+ #define REGISTER_P(x) ((x) == 'r' \
+ || (x) == 'd' \
+@@ -279,6 +280,8 @@ AVR_INSN (fmulsu,"a,a","000000111ddd1rrr
+
+ AVR_INSN (sts, "i,r", "1001001ddddd0000", 2, AVR_ISA_SRAM, 0x9200)
+ AVR_INSN (lds, "r,i", "1001000ddddd0000", 2, AVR_ISA_SRAM, 0x9000)
++AVR_INSN (sts16,"j,d", "10101kkkddddkkkk", 1, AVR_ISA_TINY, 0xA800)
++AVR_INSN (lds16,"d,j", "10100kkkddddkkkk", 1, AVR_ISA_TINY, 0xA000)
+
+ AVR_INSN (xch, "z,r", "1001001rrrrr0100", 1, AVR_ISA_XMEGAU, 0x9204)
+ AVR_INSN (las, "z,r", "1001001rrrrr0101", 1, AVR_ISA_XMEGAU, 0x9205)
+--- opcodes/avr-dis.c 2011-07-01 21:41:27.000000000 +0530
++++ opcodes/avr-dis.c 2012-04-19 12:04:04.000000000 +0530
+@@ -187,7 +187,15 @@ avr_operand (unsigned int insn, unsigned
+ case 'i':
+ sprintf (buf, "0x%04X", insn2);
+ break;
+-
++ case 'j':
++ {
++ unsigned int val = ((insn & 0xf) | ((insn & 0x600) >> 5)
++ | ((insn & 0x100) >> 2));
++ if (val > 0 && !(insn & 0x100))
++ val |= 0x80;
++ sprintf (buf, "0x%02x", val);
++ }
++ break;
+ case 'M':
+ sprintf (buf, "0x%02X", ((insn & 0xf00) >> 4) | (insn & 0xf));
+ sprintf (comment, "%d", ((insn & 0xf00) >> 4) | (insn & 0xf));
+@@ -379,8 +387,19 @@ print_insn_avr (bfd_vma addr, disassembl
+ comment2[0] = 0;
+ }
+
+- (*prin) (stream, "%s", ok ? opcode->name : ".word");
+-
++ if (ok)
++ {
++ /* In order to print 2byte sts/lds properly */
++ if (!strncmp(opcode->name, "sts16", 5))
++ (*prin) (stream, "%s", "sts");
++ else if (!strncmp(opcode->name, "lds16", 5))
++ (*prin) (stream, "%s", "lds");
++ else
++ (*prin) (stream, "%s", opcode->name);
++ }
++ else
++ (*prin) (stream, "%s", ".word");
++
+ if (*op1)
+ (*prin) (stream, "\t%s", op1);
+
diff --git a/crossavr-binutils-new-devices.patch b/crossavr-binutils-new-devices.patch
deleted file mode 100644
index b268955..0000000
--- a/crossavr-binutils-new-devices.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-diff -ruw ggas/config/tc-avr.c gas/config/tc-avr.c
---- ggas/config/tc-avr.c 2009-09-09 13:43:29.000000000 +0530
-+++ gas/config/tc-avr.c 2010-02-12 20:42:30.742688700 +0530
-@@ -133,9 +133,12 @@
- {"atmega32u2", AVR_ISA_AVR35, bfd_mach_avr35},
- {"atmega8", AVR_ISA_M8, bfd_mach_avr4},
- {"atmega48", AVR_ISA_AVR4, bfd_mach_avr4},
-+ {"atmega48a", AVR_ISA_AVR4, bfd_mach_avr4},
- {"atmega48p", AVR_ISA_AVR4, bfd_mach_avr4},
- {"atmega88", AVR_ISA_AVR4, bfd_mach_avr4},
-+ {"atmega88a", AVR_ISA_AVR4, bfd_mach_avr4},
- {"atmega88p", AVR_ISA_AVR4, bfd_mach_avr4},
-+ {"atmega88pa", AVR_ISA_AVR4, bfd_mach_avr4},
- {"atmega8515", AVR_ISA_M8, bfd_mach_avr4},
- {"atmega8535", AVR_ISA_M8, bfd_mach_avr4},
- {"atmega8hva", AVR_ISA_AVR4, bfd_mach_avr4},
-@@ -150,40 +153,63 @@
- {"at90pwm3b", AVR_ISA_AVR4, bfd_mach_avr4},
- {"at90pwm81", AVR_ISA_AVR4, bfd_mach_avr4},
- {"atmega16", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega16a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega161", AVR_ISA_M161, bfd_mach_avr5},
- {"atmega162", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega163", AVR_ISA_M161, bfd_mach_avr5},
-+ {"atmega164a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega164p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega165", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega165p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega168", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega168a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega168p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega169", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega169a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega169p", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega169pa",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega16hva",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega16c1", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega32", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega323", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega324a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega324p", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega324pa",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega325", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega325p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3250", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3250p",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega328", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega328p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega329", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega329p", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega329pa",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3290", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega3290p",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega406", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega64", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega640", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega644", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega644a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega644p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega644pa",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega645", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega645a", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega645p", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega649", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega649p", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega649a", AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega6450", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega6450a",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega6450p",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega6490", AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega6490a",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega6490p",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega64hve",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega16hva",AVR_ISA_AVR5, bfd_mach_avr5},
-+ {"atmega16hva2",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5},
- {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5},
- {"at90can32" , AVR_ISA_AVR5, bfd_mach_avr5},
-diff -ruw ggas/doc/c-avr.texi gas/doc/c-avr.texi
---- ggas/doc/c-avr.texi 2009-09-02 12:54:21.000000000 +0530
-+++ gas/doc/c-avr.texi 2010-02-12 21:31:02.132717100 +0530
-@@ -43,9 +43,10 @@
-
- Instruction set avr25 is for the classic AVR core with up to 8K program memory
- space plus the MOVW instruction (MCU types: attiny13, attiny13a, attiny2313,
--attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
--attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461, attiny861,
--attiny861a, attiny87, attiny43u, attiny48, attiny88, at86rf401, ata6289).
-+attiny2313a, attiny24, attiny24a, attiny4313, attiny43u, attiny44, attiny44a,
-+attiny84, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461,
-+attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88,
-+at86rf401, ata6289).
-
- Instruction set avr3 is for the classic AVR core with up to 128K program
- memory space (MCU types: at43usb355, at76c711).
-@@ -58,20 +59,25 @@
- atmega16u2, atmega32u2).
-
- Instruction set avr4 is for the enhanced AVR core with up to 8K program
--memory space (MCU types: atmega48, atmega48p,atmega8, atmega88, atmega88p,
--atmega8515, atmega8535, atmega8hva, atmega4hvd, atmega8hvd, at90pwm1,
--at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, atmega8m1, atmega8c1).
-+memory space (MCU types: atmega48, atmega48a, atmega48p,atmega8, atmega88,
-+atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva,
-+atmega4hvd, atmega8hvd, at90pwm1,at90pwm2, at90pwm2b, at90pwm3, at90pwm3b,
-+at90pwm81, atmega8m1, atmega8c1).
-
- Instruction set avr5 is for the enhanced AVR core with up to 128K program
--memory space (MCU types: atmega16, atmega161, atmega162, atmega163, atmega164p,
--atmega165, atmega165p, atmega168, atmega168p, atmega169, atmega169p, atmega16c1,
--atmega32, atmega323, atmega324p, atmega325, atmega325p, atmega3250, atmega3250p,
--atmega328p, atmega329, atmega329p, atmega3290, atmega3290p, atmega406, atmega64,
--atmega640, atmega644, atmega644p, atmega644pa, atmega645, atmega6450, atmega649,
--atmega6490, atmega16hva, atmega16hvb, atmega32hvb, at90can32, at90can64,
--at90pwm216, at90pwm316, atmega32c1, atmega64c1, atmega16m1, atmega32m1,
--atmega64m1, atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k,
--at90scr100).
-+memory space (MCU types: atmega16, atmega16a, atmega161, atmega162, atmega163,
-+atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168,
-+atmega168a, atmega168p, atmega169, atmega169p, atmega169pa, atmega16c1,
-+atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325,
-+atmega325p, atmega3250, atmega3250p, atmega328, atmega328p, atmega329,
-+atmega329p, atmega329pa, atmega3290, atmega3290p, atmega406, atmega64,
-+atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645,
-+atmega645a, atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649,
-+atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p, atmega64hve,
-+atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb, at90can32, at90can64,
-+at90pwm216, at90pwm316, atmega16u4, atmega32c1, atmega64c1, atmega64m1,
-+atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4, atmega32u6,
-+at90usb646, at90usb647, at94k, at90scr100).
-
- Instruction set avr51 is for the enhanced AVR core with exactly 128K program
- memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p,
More information about the pld-cvs-commit
mailing list