Upgrade to binutils 2.20.1.

Completely reorganize the patches for this port.

Patches for new devices are now synchronized with the Atmel AVR tools.
The main difference is the naming scheme, as FreeBSD patches start
with "patch-", while the Atmel AVR Tools patches end up in ".patch".
This commit is contained in:
Joerg Wunsch 2011-12-16 22:39:21 +00:00
parent d5b5f0adea
commit 148819d89b
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=287512
24 changed files with 1479 additions and 362 deletions

View file

@ -6,8 +6,7 @@
#
PORTNAME= binutils
PORTVERSION= 2.20
PORTREVISION= 2
PORTVERSION= 2.20.1
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_SOURCEWARE}
MASTER_SITE_SUBDIR= binutils/releases

View file

@ -1,2 +1,2 @@
SHA256 (binutils-2.20.tar.bz2) = e1df09f0aa3b50154ef93bfefe86d65d01c22cfb44d73299ad95e772133a75b0
SIZE (binutils-2.20.tar.bz2) = 17506655
SHA256 (binutils-2.20.1.tar.bz2) = 228b84722d87e88e7fdd36869e590e649ab523a0800a7d53df906498afe6f6f8
SIZE (binutils-2.20.1.tar.bz2) = 17501436

View file

@ -47,7 +47,7 @@ AVR specific only
static int show_version = 0;
static int show_help = 0;
static int show_totals = 0;
@@ -64,6 +84,238 @@ static bfd_size_type total_textsize;
@@ -64,6 +84,246 @@ static bfd_size_type total_textsize;
/* Program exit status. */
static int return_code = 0;
@ -97,6 +97,7 @@ AVR specific only
+ {"atxmega192d3", AVR200K, AVR16K, AVR2K},
+
+ {"atxmega128a1", AVR136K, AVR8K, AVR2K},
+ {"atxmega128a1u", AVR136K, AVR8K, AVR2K},
+ {"atxmega128a3", AVR136K, AVR8K, AVR2K},
+ {"atxmega128d3", AVR136K, AVR8K, AVR2K},
+
@ -112,6 +113,7 @@ AVR specific only
+ {"atmega103", AVR128K, 4000UL, AVR4K},
+
+ {"atxmega64a1", AVR68K, AVR4K, AVR2K},
+ {"atxmega64a1u", AVR68K, AVR4K, AVR2K},
+ {"atxmega64a3", AVR68K, AVR4K, AVR2K},
+ {"atxmega64d3", AVR68K, AVR4K, AVR2K},
+
@ -140,6 +142,7 @@ AVR specific only
+ {"atmega64c1", AVR64K, AVR4K, AVR2K},
+ {"atmega64hve", AVR64K, AVR4K, AVR1K},
+ {"atmega64m1", AVR64K, AVR4K, AVR2K},
+ {"m3000", AVR64K, AVR4K, 0UL},
+
+ {"atmega406", AVR40K, AVR2K, AVR512},
+
@ -154,15 +157,19 @@ AVR specific only
+ {"atmega324p", AVR32K, AVR2K, AVR1K},
+ {"atmega324pa", AVR32K, AVR2K, AVR1K},
+ {"atmega325", AVR32K, AVR2K, AVR1K},
+ {"atmega325a", AVR32K, AVR2K, AVR1K},
+ {"atmega325p", AVR32K, AVR2K, AVR1K},
+ {"atmega3250", AVR32K, AVR2K, AVR1K},
+ {"atmega3250a", AVR32K, AVR2K, AVR1K},
+ {"atmega3250p", AVR32K, AVR2K, AVR1K},
+ {"atmega328", AVR32K, AVR2K, AVR1K},
+ {"atmega328p", AVR32K, AVR2K, AVR1K},
+ {"atmega329", AVR32K, AVR2K, AVR1K},
+ {"atmega329a", AVR32K, AVR2K, AVR1K},
+ {"atmega329p", AVR32K, AVR2K, AVR1K},
+ {"atmega329pa", AVR32K, AVR2K, AVR1K},
+ {"atmega3290", AVR32K, AVR2K, AVR1K},
+ {"atmega3290a", AVR32K, AVR2K, AVR1K},
+ {"atmega3290p", AVR32K, AVR2K, AVR1K},
+ {"atmega32hvb", AVR32K, AVR2K, AVR1K},
+ {"atmega32c1", AVR32K, AVR2K, AVR1K},
@ -228,6 +235,7 @@ AVR specific only
+ {"atmega8hva", AVR8K, 768UL, AVR256},
+ {"atmega8u2", AVR8K, AVR512, AVR512},
+ {"attiny84", AVR8K, AVR512, AVR512},
+ {"attiny84a", AVR8K, AVR512, AVR512},
+ {"attiny85", AVR8K, AVR512, AVR512},
+ {"attiny861", AVR8K, AVR512, AVR512},
+ {"attiny861a", AVR8K, AVR512, AVR512},
@ -286,7 +294,7 @@ AVR specific only
static char *target = NULL;
/* Forward declarations. */
@@ -79,7 +329,8 @@ usage (FILE *stream, int status)
@@ -79,7 +337,8 @@ usage (FILE *stream, int status)
fprintf (stream, _(" Displays the sizes of sections inside binary files\n"));
fprintf (stream, _(" If no input file(s) are specified, a.out is assumed\n"));
fprintf (stream, _(" The options are:\n\
@ -296,7 +304,7 @@ AVR specific only
-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\
@@ -88,11 +329,7 @@ usage (FILE *stream, int status)
@@ -88,11 +337,7 @@ usage (FILE *stream, int status)
-h --help Display this information\n\
-v --version Display the program's version\n\
\n"),
@ -309,7 +317,7 @@ AVR specific only
);
list_supported_targets (program_name, stream);
if (REPORT_BUGS_TO[0] && status == 0)
@@ -103,6 +351,7 @@ usage (FILE *stream, int status)
@@ -103,6 +359,7 @@ usage (FILE *stream, int status)
#define OPTION_FORMAT (200)
#define OPTION_RADIX (OPTION_FORMAT + 1)
#define OPTION_TARGET (OPTION_RADIX + 1)
@ -317,7 +325,7 @@ AVR specific only
static struct option long_options[] =
{
@@ -110,6 +360,7 @@ static struct option long_options[] =
@@ -110,6 +368,7 @@ static struct option long_options[] =
{"format", required_argument, 0, OPTION_FORMAT},
{"radix", required_argument, 0, OPTION_RADIX},
{"target", required_argument, 0, OPTION_TARGET},
@ -325,7 +333,7 @@ AVR specific only
{"totals", no_argument, &show_totals, 1},
{"version", no_argument, &show_version, 1},
{"help", no_argument, &show_help, 1},
@@ -141,7 +391,7 @@ main (int argc, char **argv)
@@ -141,7 +399,7 @@ main (int argc, char **argv)
bfd_init ();
set_default_bfd_target ();
@ -334,7 +342,7 @@ AVR specific only
(int *) 0)) != EOF)
switch (c)
{
@@ -150,11 +401,15 @@ main (int argc, char **argv)
@@ -150,11 +409,15 @@ main (int argc, char **argv)
{
case 'B':
case 'b':
@ -352,7 +360,7 @@ AVR specific only
break;
default:
non_fatal (_("invalid argument to --format: %s"), optarg);
@@ -162,6 +416,10 @@ main (int argc, char **argv)
@@ -162,6 +424,10 @@ main (int argc, char **argv)
}
break;
@ -363,7 +371,7 @@ AVR specific only
case OPTION_TARGET:
target = optarg;
break;
@@ -190,11 +449,14 @@ main (int argc, char **argv)
@@ -190,11 +457,14 @@ main (int argc, char **argv)
break;
case 'A':
@ -380,7 +388,7 @@ AVR specific only
case 'v':
case 'V':
show_version = 1;
@@ -240,7 +501,7 @@ main (int argc, char **argv)
@@ -240,7 +509,7 @@ main (int argc, char **argv)
for (; optind < argc;)
display_file (argv[optind++]);
@ -389,7 +397,7 @@ AVR specific only
{
bfd_size_type total = total_textsize + total_datasize + total_bsssize;
@@ -599,13 +861,117 @@ print_sysv_format (bfd *file)
@@ -599,13 +869,117 @@ print_sysv_format (bfd *file)
printf ("\n\n");
}

View file

@ -1,6 +1,6 @@
diff -Nruw bfd/Makefile.am bfd/Makefile.am
diff -ruwN bfd/Makefile.am bfd/Makefile.am
--- bfd/Makefile.am 2009-10-16 17:17:44.000000000 +0530
+++ bfd/Makefile.am 2010-02-11 10:59:11.320193800 +0530
+++ bfd/Makefile.am 2010-03-11 12:13:23.069283600 +0530
@@ -228,6 +228,8 @@
coff-apollo.lo \
coff-arm.lo \
@ -19,9 +19,9 @@ diff -Nruw bfd/Makefile.am bfd/Makefile.am
coff-go32.c \
coff-h8300.c \
coff-h8500.c \
diff -Nruw bfd/Makefile.in bfd/Makefile.in
diff -ruwN bfd/Makefile.in bfd/Makefile.in
--- bfd/Makefile.in 2009-10-16 17:17:48.000000000 +0530
+++ bfd/Makefile.in 2010-02-11 11:13:52.698455300 +0530
+++ bfd/Makefile.in 2010-03-11 12:13:23.084906900 +0530
@@ -524,6 +524,8 @@
coff-apollo.lo \
coff-arm.lo \
@ -40,9 +40,9 @@ diff -Nruw bfd/Makefile.in bfd/Makefile.in
coff-go32.c \
coff-h8300.c \
coff-h8500.c \
diff -Nruw bfd/coff-avr.c bfd/coff-avr.c
diff -ruwN 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-02-10 17:35:58.222099600 +0530
+++ bfd/coff-avr.c 2010-03-11 12:13:23.100530200 +0530
@@ -0,0 +1,613 @@
+/* BFD back-end for Atmel AVR COFF files.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2003
@ -657,9 +657,9 @@ diff -Nruw bfd/coff-avr.c bfd/coff-avr.c
+
+ COFF_SWAP_TABLE
+};
diff -Nruw bfd/coff-ext-avr.c bfd/coff-ext-avr.c
diff -ruwN 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-02-10 17:35:58.222099600 +0530
+++ bfd/coff-ext-avr.c 2010-03-11 12:13:23.131776800 +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
@ -1089,9 +1089,9 @@ diff -Nruw bfd/coff-ext-avr.c bfd/coff-ext-avr.c
+
+ COFF_SWAP_TABLE
+};
diff -Nruw bfd/coffcode.h bfd/coffcode.h
diff -ruwN bfd/coffcode.h bfd/coffcode.h
--- bfd/coffcode.h 2009-09-10 17:17:12.000000000 +0530
+++ bfd/coffcode.h 2010-02-10 17:35:58.253349600 +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.
@ -1227,9 +1227,9 @@ diff -Nruw bfd/coffcode.h bfd/coffcode.h
case C_ULABEL: /* Undefined label. */
case C_USTATIC: /* Undefined static. */
#ifndef COFF_WITH_PE
diff -Nruw bfd/coffgen.c bfd/coffgen.c
diff -ruwN bfd/coffgen.c bfd/coffgen.c
--- bfd/coffgen.c 2009-09-10 17:17:12.000000000 +0530
+++ bfd/coffgen.c 2010-02-11 11:20:28.795092600 +0530
+++ bfd/coffgen.c 2010-03-11 12:13:23.163023400 +0530
@@ -699,6 +699,20 @@
if (last_file != NULL)
last_file->n_value = native_index;
@ -1330,9 +1330,9 @@ diff -Nruw bfd/coffgen.c bfd/coffgen.c
new_symbol->native = (combined_entry_type *) bfd_zalloc (abfd, amt);
if (!new_symbol->native)
return NULL;
diff -Nruw bfd/coffswap.h bfd/coffswap.h
diff -ruwN bfd/coffswap.h bfd/coffswap.h
--- bfd/coffswap.h 2009-09-07 13:45:15.000000000 +0530
+++ bfd/coffswap.h 2010-02-11 11:24:25.908936000 +0530
+++ bfd/coffswap.h 2010-03-11 12:13:23.178646700 +0530
@@ -383,7 +383,11 @@
void * ext1,
int type,
@ -1360,9 +1360,9 @@ diff -Nruw bfd/coffswap.h bfd/coffswap.h
}
else
memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN);
diff -Nruw bfd/config.bfd bfd/config.bfd
diff -ruwN bfd/config.bfd bfd/config.bfd
--- bfd/config.bfd 2009-08-06 23:08:00.000000000 +0530
+++ bfd/config.bfd 2010-02-10 17:35:58.300224600 +0530
+++ bfd/config.bfd 2010-03-11 12:13:23.178646700 +0530
@@ -339,6 +339,7 @@
avr-*-*)
@ -1371,9 +1371,9 @@ diff -Nruw bfd/config.bfd bfd/config.bfd
;;
bfin-*-*)
diff -Nruw bfd/configure bfd/configure
diff -ruwN bfd/configure bfd/configure
--- bfd/configure 2009-10-16 17:17:47.000000000 +0530
+++ bfd/configure 2010-02-10 17:35:58.331474600 +0530
+++ bfd/configure 2010-03-11 12:13:23.209893300 +0530
@@ -14782,6 +14782,8 @@
armpe_little_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
armpei_big_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
@ -1383,9 +1383,9 @@ diff -Nruw 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 -Nruw bfd/configure.in bfd/configure.in
diff -ruwN bfd/configure.in bfd/configure.in
--- bfd/configure.in 2009-10-16 17:17:44.000000000 +0530
+++ bfd/configure.in 2010-02-10 17:35:58.331474600 +0530
+++ bfd/configure.in 2010-03-11 12:13:23.209893300 +0530
@@ -670,6 +670,8 @@
armpe_little_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
armpei_big_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
@ -1395,9 +1395,9 @@ diff -Nruw 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 -Nruw bfd/targets.c bfd/targets.c
diff -ruwN bfd/targets.c bfd/targets.c
--- bfd/targets.c 2009-09-10 17:17:13.000000000 +0530
+++ bfd/targets.c 2010-02-10 17:35:58.347099600 +0530
+++ bfd/targets.c 2010-03-11 12:13:23.225516600 +0530
@@ -564,6 +564,8 @@
extern const bfd_target armpe_little_vec;
extern const bfd_target armpei_big_vec;
@ -1416,9 +1416,9 @@ diff -Nruw bfd/targets.c bfd/targets.c
&b_out_vec_big_host,
&b_out_vec_little_host,
#ifdef BFD64
diff -Nruw binutils/Makefile.am binutils/Makefile.am
diff -ruwN binutils/Makefile.am binutils/Makefile.am
--- binutils/Makefile.am 2009-09-09 13:43:23.000000000 +0530
+++ binutils/Makefile.am 2010-02-10 17:35:57.972099600 +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 \
@ -1437,9 +1437,9 @@ diff -Nruw binutils/Makefile.am binutils/Makefile.am
# Code shared by all the binutils.
BULIBS = bucomm.c version.c filemode.c
diff -Nruw binutils/Makefile.in binutils/Makefile.in
diff -ruwN binutils/Makefile.in binutils/Makefile.in
--- binutils/Makefile.in 2009-09-09 13:43:23.000000000 +0530
+++ binutils/Makefile.in 2010-02-10 17:35:57.987724600 +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)
@ -1467,9 +1467,9 @@ diff -Nruw binutils/Makefile.in binutils/Makefile.in
# Code shared by all the binutils.
BULIBS = bucomm.c version.c filemode.c
diff -Nruw binutils/bucomm.c binutils/bucomm.c
diff -ruwN binutils/bucomm.c binutils/bucomm.c
--- binutils/bucomm.c 2009-09-14 17:13:26.000000000 +0530
+++ binutils/bucomm.c 2010-02-10 17:35:58.034599600 +0530
+++ binutils/bucomm.c 2010-03-11 12:13:23.256763200 +0530
@@ -550,6 +550,32 @@
return ret;
}
@ -1503,9 +1503,9 @@ diff -Nruw 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 -Nruw binutils/bucomm.h binutils/bucomm.h
diff -ruwN binutils/bucomm.h binutils/bucomm.h
--- binutils/bucomm.h 2009-09-02 12:52:31.000000000 +0530
+++ binutils/bucomm.h 2010-02-10 17:35:58.050224600 +0530
+++ binutils/bucomm.h 2010-03-11 12:13:23.272386500 +0530
@@ -58,6 +58,8 @@
off_t get_file_size (const char *);
@ -1515,9 +1515,9 @@ diff -Nruw binutils/bucomm.h binutils/bucomm.h
extern char *program_name;
/* filemode.c */
diff -Nruw binutils/budbg.h binutils/budbg.h
diff -ruwN binutils/budbg.h binutils/budbg.h
--- binutils/budbg.h 2009-09-02 12:52:31.000000000 +0530
+++ binutils/budbg.h 2010-02-10 17:35:58.050224600 +0530
+++ binutils/budbg.h 2010-03-11 12:13:23.272386500 +0530
@@ -52,8 +52,11 @@
extern bfd_boolean write_ieee_debugging_info (bfd *, void *);
@ -1531,9 +1531,9 @@ diff -Nruw binutils/budbg.h binutils/budbg.h
+ (bfd *abfd, void *, long *symcountp, asymbol ***);
+
#endif
diff -Nruw binutils/debug.c binutils/debug.c
diff -ruwN binutils/debug.c binutils/debug.c
--- binutils/debug.c 2009-09-14 17:13:26.000000000 +0530
+++ binutils/debug.c 2010-02-11 10:50:38.043866600 +0530
+++ binutils/debug.c 2010-03-11 12:13:23.288009800 +0530
@@ -31,6 +31,7 @@
#include <assert.h>
#include "bfd.h"
@ -1662,9 +1662,9 @@ diff -Nruw binutils/debug.c binutils/debug.c
+ /* Not found, pass the original name on. */
+ return oname;
+}
diff -Nruw binutils/debug.h binutils/debug.h
diff -ruwN binutils/debug.h binutils/debug.h
--- binutils/debug.h 2009-09-14 17:13:26.000000000 +0530
+++ binutils/debug.h 2010-02-10 17:35:58.097099600 +0530
+++ binutils/debug.h 2010-03-11 12:13:23.288009800 +0530
@@ -440,6 +440,12 @@
extern bfd_boolean debug_start_source (void *, const char *);
@ -1678,9 +1678,9 @@ diff -Nruw 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 -Nruw binutils/doc/objcopy.1 binutils/doc/objcopy.1
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-02-11 10:22:09.312500000 +0530
+++ binutils/doc/objcopy.1 2010-03-11 12:13:23.303633100 +0530
@@ -202,6 +202,8 @@
[\fB\-\-readonly\-text\fR]
[\fB\-\-pure\fR]
@ -1714,9 +1714,9 @@ diff -Nruw binutils/doc/objcopy.1 binutils/doc/objcopy.1
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
diff -Nruw binutils/objcopy.c binutils/objcopy.c
diff -ruwN binutils/objcopy.c binutils/objcopy.c
--- binutils/objcopy.c 2009-09-14 17:13:26.000000000 +0530
+++ binutils/objcopy.c 2010-02-11 10:56:56.890302300 +0530
+++ binutils/objcopy.c 2010-03-11 12:13:23.319256400 +0530
@@ -32,6 +32,7 @@
#include "elf-bfd.h"
#include <sys/stat.h>
@ -1817,9 +1817,9 @@ diff -Nruw binutils/objcopy.c binutils/objcopy.c
case OPTION_READONLY_TEXT:
bfd_flags_to_set |= WP_TEXT;
bfd_flags_to_clear &= ~WP_TEXT;
diff -Nruw binutils/rdcoff.c binutils/rdcoff.c
diff -ruwN binutils/rdcoff.c binutils/rdcoff.c
--- binutils/rdcoff.c 2009-09-02 12:52:32.000000000 +0530
+++ binutils/rdcoff.c 2010-02-10 17:35:58.128349600 +0530
+++ binutils/rdcoff.c 2010-03-11 12:13:23.334879700 +0530
@@ -82,6 +82,9 @@
struct coff_slots *slots;
/* Basic types. */
@ -1963,9 +1963,9 @@ diff -Nruw binutils/rdcoff.c binutils/rdcoff.c
if (ISFCN (syment.n_type))
{
fnname = name;
diff -Nruw binutils/wrcoff.c binutils/wrcoff.c
diff -ruwN binutils/wrcoff.c binutils/wrcoff.c
--- binutils/wrcoff.c 1970-01-01 05:30:00.000000000 +0530
+++ binutils/wrcoff.c 2010-02-10 17:35:58.159599600 +0530
+++ binutils/wrcoff.c 2010-03-11 12:13:23.366126300 +0530
@@ -0,0 +1,3410 @@
+/* wrcoff.c -- Generate (AVR) COFF debugging information
+ Copyright 2003 Free Software Foundation, Inc.
@ -5377,9 +5377,9 @@ diff -Nruw binutils/wrcoff.c binutils/wrcoff.c
+
+ return TRUE;
+}
diff -Nruw include/coff/avr.h include/coff/avr.h
diff -ruwN 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-02-10 17:35:58.362724600 +0530
+++ include/coff/avr.h 2010-03-11 12:13:23.381749600 +0530
@@ -0,0 +1,110 @@
+/* coff information for Atmel AVR.
+
@ -5491,9 +5491,9 @@ diff -Nruw include/coff/avr.h include/coff/avr.h
+
+#define RELOC struct external_reloc
+#define RELSZ 10
diff -Nruw include/coff/internal.h include/coff/internal.h
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-02-10 17:35:58.378349600 +0530
+++ include/coff/internal.h 2010-03-11 12:13:23.381749600 +0530
@@ -646,6 +646,8 @@
};

View file

@ -1,6 +1,6 @@
diff -ruw ld/scripttempl/avr.sc ld/scripttempl/avr.sc
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-02-12 20:09:24.070812400 +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

View file

@ -0,0 +1,29 @@
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

View file

@ -1,5 +1,6 @@
--- gas/dwarf2dbg.c.orig 2009-09-14 13:43:26.000000000 +0200
+++ gas/dwarf2dbg.c 2010-03-04 11:13:52.000000000 +0100
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 @@
Note: If you want to change this, you'll have to update the
"standard_opcode_lengths" table that is emitted below in

View file

@ -0,0 +1,12 @@
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"

View file

@ -1,7 +1,30 @@
diff -Nur ../binutils-2.20.orig/bfd/archures.c ./bfd/archures.c
--- ../binutils-2.20.orig/bfd/archures.c 2009-09-10 13:47:11.000000000 +0200
+++ ./bfd/archures.c 2010-03-04 11:34:08.000000000 +0100
@@ -368,6 +368,13 @@
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
@ -15,10 +38,10 @@ diff -Nur ../binutils-2.20.orig/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 -Nur ../binutils-2.20.orig/bfd/bfd-in2.h ./bfd/bfd-in2.h
--- ../binutils-2.20.orig/bfd/bfd-in2.h 2009-09-10 13:47:11.000000000 +0200
+++ ./bfd/bfd-in2.h 2010-03-04 11:34:08.000000000 +0100
@@ -2035,6 +2035,13 @@
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
@ -32,10 +55,10 @@ diff -Nur ../binutils-2.20.orig/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 -Nur ../binutils-2.20.orig/bfd/cpu-avr.c ./bfd/cpu-avr.c
--- ../binutils-2.20.orig/bfd/cpu-avr.c 2009-09-02 09:18:36.000000000 +0200
+++ ./bfd/cpu-avr.c 2010-03-04 11:34:08.000000000 +0100
@@ -133,7 +133,29 @@
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. */
@ -66,10 +89,10 @@ diff -Nur ../binutils-2.20.orig/bfd/cpu-avr.c ./bfd/cpu-avr.c
};
const bfd_arch_info_type bfd_avr_arch =
diff -Nur ../binutils-2.20.orig/bfd/elf32-avr.c ./bfd/elf32-avr.c
--- ../binutils-2.20.orig/bfd/elf32-avr.c 2009-09-02 09:18:36.000000000 +0200
+++ ./bfd/elf32-avr.c 2010-03-04 11:34:08.000000000 +0100
@@ -1328,6 +1328,34 @@
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;
@ -104,7 +127,7 @@ diff -Nur ../binutils-2.20.orig/bfd/elf32-avr.c ./bfd/elf32-avr.c
}
elf_elfheader (abfd)->e_machine = EM_AVR;
@@ -1390,6 +1418,34 @@
@@ -1390,6 +1418,34 @@ elf32_avr_object_p (bfd *abfd)
case E_AVR_MACH_AVR6:
e_set = bfd_mach_avr6;
break;
@ -139,22 +162,16 @@ diff -Nur ../binutils-2.20.orig/bfd/elf32-avr.c ./bfd/elf32-avr.c
}
}
return bfd_default_set_arch_mach (abfd, bfd_arch_avr,
diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
--- ../binutils-2.20.orig/gas/config/tc-avr.c 2010-03-04 11:19:26.000000000 +0100
+++ ./gas/config/tc-avr.c 2010-03-04 11:34:09.000000000 +0100
@@ -27,20 +27,21 @@
struct avr_opcodes_s
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;
- int insn_size; /* In words. */
- int isa;
+ char *name;
+ char *constraints;
char * name;
char * constraints;
+ char *opcode;
+ int insn_size; /* In words. */
+ int isa;
int insn_size; /* In words. */
int isa;
unsigned int bin_opcode;
};
@ -170,7 +187,7 @@ diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
};
const char comment_chars[] = ";";
@@ -79,6 +80,13 @@
@@ -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},
@ -184,14 +201,14 @@ diff -Nur ../binutils-2.20.orig/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},
@@ -241,6 +249,21 @@
@@ -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},
+ {"atxmega32a4", AVR_ISA_XMEGA, bfd_mach_avrxmega3},
+ {"atxmega64a3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64d3", AVR_ISA_XMEGA, bfd_mach_avrxmega4},
+ {"atxmega64a1", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
@ -206,7 +223,7 @@ diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
{NULL, 0, 0}
};
@@ -418,6 +441,11 @@
@@ -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"
@ -218,7 +235,7 @@ diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
" or immediate microcontroller name.\n"));
fprintf (stream,
_(" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
@@ -845,7 +873,12 @@
@@ -820,7 +848,12 @@ avr_operand (struct avr_opcodes_s *opcod
if (*str == '+')
{
++str;
@ -232,7 +249,7 @@ diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
}
/* attiny26 can do "lpm" and "lpm r,Z" but not "lpm r,Z+". */
@@ -962,6 +995,16 @@
@@ -937,6 +970,16 @@ avr_operand (struct avr_opcodes_s *opcod
}
break;
@ -249,10 +266,10 @@ diff -Nur ../binutils-2.20.orig/gas/config/tc-avr.c ./gas/config/tc-avr.c
case '?':
break;
diff -Nur ../binutils-2.20.orig/gas/doc/c-avr.texi ./gas/doc/c-avr.texi
--- ../binutils-2.20.orig/gas/doc/c-avr.texi 2010-03-04 11:19:26.000000000 +0100
+++ ./gas/doc/c-avr.texi 2010-03-04 11:34:09.000000000 +0100
@@ -86,6 +86,27 @@
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).
@ -280,9 +297,9 @@ diff -Nur ../binutils-2.20.orig/gas/doc/c-avr.texi ./gas/doc/c-avr.texi
@cindex @code{-mall-opcodes} command line option, AVR
@item -mall-opcodes
Accept all AVR opcodes, even if not supported by @code{-mmcu}.
diff -Nur ../binutils-2.20.orig/include/elf/avr.h ./include/elf/avr.h
--- ../binutils-2.20.orig/include/elf/avr.h 2008-08-09 07:35:13.000000000 +0200
+++ ./include/elf/avr.h 2010-03-04 11:34:09.000000000 +0100
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
@ -297,9 +314,9 @@ diff -Nur ../binutils-2.20.orig/include/elf/avr.h ./include/elf/avr.h
/* Relocations. */
START_RELOC_NUMBERS (elf_avr_reloc_type)
diff -Nur ../binutils-2.20.orig/include/opcode/avr.h ./include/opcode/avr.h
--- ../binutils-2.20.orig/include/opcode/avr.h 2008-08-09 07:35:13.000000000 +0200
+++ ./include/opcode/avr.h 2010-03-04 11:34:09.000000000 +0100
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) */
@ -326,7 +343,7 @@ diff -Nur ../binutils-2.20.orig/include/opcode/avr.h ./include/opcode/avr.h
? - 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 @@
@@ -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)
@ -336,121 +353,17 @@ diff -Nur ../binutils-2.20.orig/include/opcode/avr.h ./include/opcode/avr.h
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 @@
@@ -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 -Nur ../binutils-2.20.orig/ld/Makefile.am ./ld/Makefile.am
--- ../binutils-2.20.orig/ld/Makefile.am 2009-09-01 22:56:51.000000000 +0200
+++ ./ld/Makefile.am 2010-03-04 11:34:09.000000000 +0100
@@ -148,6 +148,13 @@
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 @@
$(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 -Nur ../binutils-2.20.orig/ld/Makefile.in ./ld/Makefile.in
--- ../binutils-2.20.orig/ld/Makefile.in 2009-09-07 14:10:24.000000000 +0200
+++ ./ld/Makefile.in 2010-03-04 11:34:09.000000000 +0100
@@ -434,6 +434,13 @@
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 \
@@ -2068,6 +2075,34 @@
$(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 -Nur ../binutils-2.20.orig/ld/configure.tgt ./ld/configure.tgt
--- ../binutils-2.20.orig/ld/configure.tgt 2009-08-06 19:38:03.000000000 +0200
+++ ./ld/configure.tgt 2010-03-04 11:34:09.000000000 +0100
@@ -110,7 +110,7 @@
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
@ -459,9 +372,9 @@ diff -Nur ../binutils-2.20.orig/ld/configure.tgt ./ld/configure.tgt
;;
bfin-*-elf) targ_emul=elf32bfin;
targ_extra_emuls="elf32bfinfd"
diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega1.sh ./ld/emulparams/avrxmega1.sh
--- ../binutils-2.20.orig/ld/emulparams/avrxmega1.sh 1970-01-01 01:00:00.000000000 +0100
+++ ./ld/emulparams/avrxmega1.sh 2010-03-04 11:34:09.000000000 +0100
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=
@ -475,9 +388,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega1.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega2.sh ./ld/emulparams/avrxmega2.sh
--- ../binutils-2.20.orig/ld/emulparams/avrxmega2.sh 1970-01-01 01:00:00.000000000 +0100
+++ ./ld/emulparams/avrxmega2.sh 2010-03-04 11:34:09.000000000 +0100
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=
@ -491,9 +404,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega2.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega3.sh ./ld/emulparams/avrxmega3.sh
--- ../binutils-2.20.orig/ld/emulparams/avrxmega3.sh 1970-01-01 01:00:00.000000000 +0100
+++ ./ld/emulparams/avrxmega3.sh 2010-03-04 11:34:09.000000000 +0100
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=
@ -507,9 +420,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega3.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega4.sh ./ld/emulparams/avrxmega4.sh
--- ../binutils-2.20.orig/ld/emulparams/avrxmega4.sh 1970-01-01 01:00:00.000000000 +0100
+++ ./ld/emulparams/avrxmega4.sh 2010-03-04 11:34:09.000000000 +0100
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=
@ -523,9 +436,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega4.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega5.sh ./ld/emulparams/avrxmega5.sh
--- ../binutils-2.20.orig/ld/emulparams/avrxmega5.sh 1970-01-01 01:00:00.000000000 +0100
+++ ./ld/emulparams/avrxmega5.sh 2010-03-04 11:34:09.000000000 +0100
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=
@ -539,9 +452,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega5.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega6.sh ./ld/emulparams/avrxmega6.sh
--- ../binutils-2.20.orig/ld/emulparams/avrxmega6.sh 1970-01-01 01:00:00.000000000 +0100
+++ ./ld/emulparams/avrxmega6.sh 2010-03-04 11:34:09.000000000 +0100
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=
@ -555,9 +468,9 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega6.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega7.sh ./ld/emulparams/avrxmega7.sh
--- ../binutils-2.20.orig/ld/emulparams/avrxmega7.sh 1970-01-01 01:00:00.000000000 +0100
+++ ./ld/emulparams/avrxmega7.sh 2010-03-04 11:34:09.000000000 +0100
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=
@ -571,10 +484,10 @@ diff -Nur ../binutils-2.20.orig/ld/emulparams/avrxmega7.sh ./ld/emulparams/avrxm
+DATA_ORIGIN=0x802000
+DATA_LENGTH=0xffa0
+EXTRA_EM_FILE=avrelf
diff -Nur ../binutils-2.20.orig/ld/emultempl/avrelf.em ./ld/emultempl/avrelf.em
--- ../binutils-2.20.orig/ld/emultempl/avrelf.em 2009-09-02 09:25:35.000000000 +0200
+++ ./ld/emultempl/avrelf.em 2010-03-04 11:34:09.000000000 +0100
@@ -71,8 +71,10 @@
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 ();
@ -587,10 +500,114 @@ diff -Nur ../binutils-2.20.orig/ld/emultempl/avrelf.em ./ld/emultempl/avrelf.em
avr_no_stubs = TRUE;
avr_elf_set_global_bfd_parameters ();
diff -Nur ../binutils-2.20.orig/opcodes/avr-dis.c ./opcodes/avr-dis.c
--- ../binutils-2.20.orig/opcodes/avr-dis.c 2008-11-06 13:03:24.000000000 +0100
+++ ./opcodes/avr-dis.c 2010-03-04 11:34:09.000000000 +0100
@@ -50,7 +50,7 @@
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,
@ -599,12 +616,11 @@ diff -Nur ../binutils-2.20.orig/opcodes/avr-dis.c ./opcodes/avr-dis.c
{
int ok = 1;
*sym = 0;
@@ -118,8 +118,18 @@
@@ -118,8 +118,18 @@ avr_operand (unsigned int insn, unsigned
case 'z':
*buf++ = 'Z';
- if (insn & 0x1)
- *buf++ = '+';
+
+ /* Check for post-increment. */
+ char *s;
@ -612,7 +628,7 @@ diff -Nur ../binutils-2.20.orig/opcodes/avr-dis.c ./opcodes/avr-dis.c
+ {
+ if (*s == '+')
+ {
+ *buf++ = '+';
*buf++ = '+';
+ break;
+ }
+ }
@ -620,18 +636,18 @@ diff -Nur ../binutils-2.20.orig/opcodes/avr-dis.c ./opcodes/avr-dis.c
*buf = '\0';
if (AVR_UNDEF_P (insn))
sprintf (comment, _("undefined"));
@@ -226,6 +236,10 @@
sprintf (comment, "%d", x);
@@ -227,6 +237,10 @@ avr_operand (unsigned int insn, unsigned
}
break;
+
+ case 'E':
+ sprintf (buf, "%d", (insn >> 4) & 15);
+ break;
+
case '?':
*buf = '\0';
@@ -331,7 +345,8 @@
break;
@@ -331,7 +345,8 @@ print_insn_avr (bfd_vma addr, disassembl
if (opcode->name)
{
@ -641,7 +657,7 @@ diff -Nur ../binutils-2.20.orig/opcodes/avr-dis.c ./opcodes/avr-dis.c
insn2 = 0;
ok = 1;
@@ -342,14 +357,14 @@
@@ -342,14 +357,14 @@ print_insn_avr (bfd_vma addr, disassembl
cmd_len = 4;
}

View file

@ -1,7 +1,64 @@
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 @@
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},
@ -14,7 +71,14 @@ diff -ruw ggas/config/tc-avr.c gas/config/tc-avr.c
{"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 @@
- {"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},
@ -25,6 +89,7 @@ diff -ruw ggas/config/tc-avr.c gas/config/tc-avr.c
+ {"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},
@ -32,27 +97,28 @@ diff -ruw ggas/config/tc-avr.c gas/config/tc-avr.c
{"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},
+ {"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},
+ {"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},
+ {"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},
@ -74,14 +140,32 @@ diff -ruw ggas/config/tc-avr.c gas/config/tc-avr.c
+ {"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},
+ {"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 @@
@@ -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,
@ -89,13 +173,18 @@ diff -ruw ggas/doc/c-avr.texi gas/doc/c-avr.texi
-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).
+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).
@@ -58,20 +59,25 @@
@@ -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
@ -104,8 +193,8 @@ diff -ruw ggas/doc/c-avr.texi gas/doc/c-avr.texi
-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).
+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,
@ -119,17 +208,22 @@ diff -ruw ggas/doc/c-avr.texi gas/doc/c-avr.texi
-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).
+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).

View file

@ -0,0 +1,218 @@
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
.#define bfd_mach_avrxmega5 105
.#define bfd_mach_avrxmega6 106
.#define bfd_mach_avrxmega7 107
+.#define bfd_mach_avrtiny10 201
. 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 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
#define bfd_mach_avrxmega5 105
#define bfd_mach_avrxmega6 106
#define bfd_mach_avrxmega7 107
+#define bfd_mach_avrtiny10 201
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 2011-06-07 11:55:03.000000000 -0500
+++ bfd/cpu-avr.c 2011-06-07 11:56:48.000000000 -0500
@@ -154,7 +154,10 @@ static const bfd_arch_info_type arch_inf
N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]),
/* Xmega 7 */
- N (24, bfd_mach_avrxmega7, "avr:107", FALSE, NULL)
+ N (24, bfd_mach_avrxmega7, "avr:107", FALSE, & arch_info_struct[17]),
+
+ /* attiny 10 */
+ N (16, bfd_mach_avrtiny10, "avr:201", FALSE, NULL)
};
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
case bfd_mach_avrxmega7:
val = E_AVR_MACH_XMEGA7;
break;
+
+ case bfd_mach_avrtiny10:
+ val = E_AVR_MACH_AVRTINY10;
+ break;
}
elf_elfheader (abfd)->e_machine = EM_AVR;
@@ -1446,6 +1450,10 @@ elf32_avr_object_p (bfd *abfd)
case E_AVR_MACH_XMEGA7:
e_set = bfd_mach_avrxmega7;
break;
+
+ case E_AVR_MACH_AVRTINY10:
+ e_set = bfd_mach_avrtiny10;
+ 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: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[] =
{"avrxmega5", AVR_ISA_XMEGA, bfd_mach_avrxmega5},
{"avrxmega6", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"avrxmega7", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
+ {"avrtiny10", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
{"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},
{"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
{"atxmega128a1", 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},
+ {"attiny10", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
+ {"attiny20", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
+ {"attiny40", AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
{NULL, 0, 0}
};
@@ -443,6 +450,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
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 (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
@@ -47,6 +47,7 @@
#define E_AVR_MACH_XMEGA5 105
#define E_AVR_MACH_XMEGA6 106
#define E_AVR_MACH_XMEGA7 107
+#define E_AVR_MACH_AVRTINY10 201
/* 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 @@
AVR_ISA_ELPM | AVR_ISA_ELPMX | AVR_ISA_SPM | \
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 REGISTER_P(x) ((x) == 'r' \
|| (x) == 'd' \
|| (x) == 'w' \
@@ -159,8 +159,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)
-AVR_INSN (icall,"", "1001010100001001", 1, AVR_ISA_2xxx, 0x9509)
-AVR_INSN (ijmp, "", "1001010000001001", 1, AVR_ISA_2xxx, 0x9409)
+AVR_INSN (icall,"", "1001010100001001", 1, AVR_ISA_SRAM, 0x9509)
+AVR_INSN (ijmp, "", "1001010000001001", 1, AVR_ISA_SRAM, 0x9409)
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
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)
-AVR_INSN (pop, "r", "1001000rrrrr1111", 1, AVR_ISA_2xxx, 0x900f)
-AVR_INSN (push, "r", "1001001rrrrr1111", 1, AVR_ISA_2xxx, 0x920f)
+AVR_INSN (pop, "r", "1001000rrrrr1111", 1, AVR_ISA_SRAM, 0x900f)
+AVR_INSN (push, "r", "1001001rrrrr1111", 1, AVR_ISA_SRAM, 0x920f)
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
AVR_INSN (fmuls,"a,a", "000000111ddd0rrr", 1, AVR_ISA_MUL, 0x0380)
AVR_INSN (fmulsu,"a,a","000000111ddd1rrr", 1, AVR_ISA_MUL, 0x0388)
-AVR_INSN (sts, "i,r", "1001001ddddd0000", 2, AVR_ISA_2xxx, 0x9200)
-AVR_INSN (lds, "r,i", "1001000ddddd0000", 2, AVR_ISA_2xxx, 0x9000)
+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. */
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
;;
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"
;;
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
@@ -0,0 +1,12 @@
+ARCH=avr:201
+MACHINE=
+SCRIPT_NAME=avr
+OUTPUT_FORMAT="elf32-avr"
+MAXPAGESIZE=1
+EMBEDDED=yes
+TEMPLATE_NAME=elf32
+
+TEXT_LENGTH=4K
+DATA_ORIGIN=0x800040
+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
$(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
${GEN_DEPENDS}
${GENSCRIPTS} avrxmega7 "$(tdir_avr2)"
+eavrtiny10.c: $(srcdir)/emulparams/avrtiny10.sh \
+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+ ${GEN_DEPENDS}
+ ${GENSCRIPTS} avrtiny10 "$(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)"

View file

@ -0,0 +1,42 @@
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

View file

@ -0,0 +1,30 @@
diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
--- gas/config/tc-avr.c 2011-06-07 12:03:38.000000000 -0500
+++ gas/config/tc-avr.c 2011-06-07 12:03:51.000000000 -0500
@@ -249,8 +249,10 @@ static struct mcu_type_s mcu_types[] =
{"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6},
{"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
{"atxmega16d4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+ {"atxmega16x1", 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-06-07 12:03:38.000000000 -0500
+++ gas/doc/c-avr.texi 2011-06-07 12:03:51.000000000 -0500
@@ -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).
+atxmega16x1, 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).

View file

@ -0,0 +1,36 @@
diff -Naurp binutils/size.c binutils/size.c
--- binutils/size.c 2011-06-07 11:47:11.000000000 -0500
+++ binutils/size.c 2011-06-07 12:23:39.000000000 -0500
@@ -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-06-07 12:05:36.000000000 -0500
+++ gas/config/tc-avr.c 2011-06-07 12:23:39.000000000 -0500
@@ -258,6 +258,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-06-07 12:05:36.000000000 -0500
+++ gas/doc/c-avr.texi 2011-06-07 12:23:39.000000000 -0500
@@ -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,

View file

@ -0,0 +1,34 @@
diff -Naurp binutils/size.c binutils/size.c
--- binutils/size.c 2011-06-07 12:31:12.000000000 -0500
+++ binutils/size.c 2011-06-07 12:31:23.000000000 -0500
@@ -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-06-07 12:31:12.000000000 -0500
+++ gas/config/tc-avr.c 2011-06-07 12:31:23.000000000 -0500
@@ -264,6 +264,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-06-07 12:31:12.000000000 -0500
+++ gas/doc/c-avr.texi 2011-06-07 12:31:23.000000000 -0500
@@ -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,

View file

@ -0,0 +1,73 @@
diff -rupw binutils/size.c binutils/size.c
--- binutils/size.c 2011-01-10 13:22:40.000000000 -0600
+++ binutils/size.c 2011-01-05 19:15:32.000000000 -0600
@@ -220,6 +220,7 @@ avr_device_t avr[] =
{"atxmega16d4", AVR20K, AVR2K, AVR1K},
{"at76c711", AVR16K, AVR2K, 0UL},
+ {"at90pwm161", AVR16K, AVR1K, AVR512},
{"at90pwm216", AVR16K, AVR1K, AVR512},
{"at90pwm316", AVR16K, AVR1K, AVR512},
{"at90usb162", AVR16K, AVR512, AVR512},
diff -rupw gas/config/tc-avr.c gas/config/tc-avr.c
--- gas/config/tc-avr.c 2011-01-10 13:22:40.000000000 -0600
+++ gas/config/tc-avr.c 2011-01-05 19:09:23.000000000 -0600
@@ -159,6 +159,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},
+ {"at90pwm161", 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 -rupw gas/doc/c-avr.texi gas/doc/c-avr.texi
--- gas/doc/c-avr.texi 2011-01-10 13:22:40.000000000 -0600
+++ gas/doc/c-avr.texi 2011-01-05 19:10:26.000000000 -0600
@@ -65,8 +65,8 @@ at90pwm1,at90pwm2, at90pwm2b, at90pwm3,
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,
+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,
diff -rupw ld/Makefile.in ld/Makefile.in
--- ld/Makefile.in 2011-01-10 13:22:05.000000000 -0600
+++ ld/Makefile.in 2011-01-06 11:18:12.000000000 -0600
@@ -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:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr5.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr51.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavr6.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrtiny10.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega3.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega4.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega5.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega6.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eavrxmega7.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecoff_i860.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecoff_sparc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecrisaout.Po@am__quote@
@@ -2104,6 +2113,10 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm
$(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
${GEN_DEPENDS}
${GENSCRIPTS} avrxmega7 "$(tdir_avr2)"
+eavrtiny10.c: $(srcdir)/emulparams/avrtiny10.sh \
+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+ ${GEN_DEPENDS}
+ ${GENSCRIPTS} avrtiny10 "$(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)"

View file

@ -0,0 +1,52 @@
diff -Naur binutils/size.c binutils/size.c
--- binutils/size.c 2011-01-19 13:46:48.000000000 -0600
+++ binutils/size.c 2011-01-19 13:50:05.000000000 -0600
@@ -207,8 +207,8 @@
{"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},
@@ -244,7 +244,8 @@
{"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 -Naur gas/config/tc-avr.c gas/config/tc-avr.c
--- gas/config/tc-avr.c 2011-01-19 13:46:48.000000000 -0600
+++ gas/config/tc-avr.c 2011-01-19 13:51:06.000000000 -0600
@@ -220,7 +220,9 @@
{"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 -Naur gas/doc/c-avr.texi gas/doc/c-avr.texi
--- gas/doc/c-avr.texi 2011-01-19 13:46:48.000000000 -0600
+++ gas/doc/c-avr.texi 2011-01-19 13:52:30.000000000 -0600
@@ -75,9 +75,9 @@
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,

View file

@ -0,0 +1,88 @@
diff -Naurp binutils/size.c binutils/size.c
--- binutils/size.c 2011-02-17 11:55:20.000000000 -0600
+++ binutils/size.c 2011-02-16 15:37:59.000000000 -0600
@@ -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,6 +208,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-02-17 11:55:20.000000000 -0600
+++ gas/config/tc-avr.c 2011-02-16 15:22:24.000000000 -0600
@@ -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 07:49:55.000000000 -0600
+++ gas/doc/as.info 2011-02-17 11:59:53.000000000 -0600
@@ -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-02-17 11:55:20.000000000 -0600
+++ gas/doc/c-avr.texi 2011-02-16 15:42:20.000000000 -0600
@@ -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,

View file

@ -0,0 +1,36 @@
diff -Naurp binutils/size.c binutils/size.c
--- binutils/size.c 2011-06-07 12:36:56.000000000 -0500
+++ binutils/size.c 2011-06-07 12:37:08.000000000 -0500
@@ -250,6 +250,7 @@ avr_device_t avr[] =
{"atmega16hvb", AVR16K, AVR1K, AVR512},
{"atmega16hvbrevb",AVR16K, AVR1K, AVR512},
{"atmega16m1", AVR16K, AVR1K, AVR512},
+ {"attiny1634", AVR16K, AVR1K, AVR256},
{"atmega16u2", AVR16K, AVR512, AVR512},
{"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-06-07 12:36:56.000000000 -0500
+++ gas/config/tc-avr.c 2011-06-07 12:37:08.000000000 -0500
@@ -142,6 +142,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},
+ {"attiny1634", 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},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
--- gas/doc/c-avr.texi 2011-06-07 12:36:56.000000000 -0500
+++ gas/doc/c-avr.texi 2011-06-07 12:37:08.000000000 -0500
@@ -55,8 +55,8 @@ 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, at90usb82, at90usb162, atmega8u2,
-atmega16u2, atmega32u2).
+instructions (MCU types: attiny167, attiny1634, at90usb82, at90usb162,
+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,

View file

@ -0,0 +1,39 @@
diff -Naurp binutils/size.c binutils/size.c
--- binutils/size.c 2011-06-07 12:38:50.000000000 -0500
+++ binutils/size.c 2011-06-07 12:39:18.000000000 -0500
@@ -288,6 +288,7 @@ avr_device_t avr[] =
{"at90s4434", AVR4K, 352UL, AVR256},
{"atmega48", AVR4K, AVR512, AVR256},
{"atmega48a", AVR4K, AVR512, AVR256},
+ {"atmega48pa", AVR4K, AVR512, AVR256},
{"atmega48p", AVR4K, AVR512, AVR256},
{"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-06-07 12:38:50.000000000 -0500
+++ gas/config/tc-avr.c 2011-06-07 12:39:18.000000000 -0500
@@ -146,6 +146,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},
+ {"atmega48pa", 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},
diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
--- gas/doc/c-avr.texi 2011-06-07 12:38:50.000000000 -0500
+++ gas/doc/c-avr.texi 2011-06-07 12:39:18.000000000 -0500
@@ -59,10 +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,
+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: at90pwm161, atmega16, atmega16a, atmega161, atmega162,

View file

@ -0,0 +1,377 @@
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
.#define bfd_mach_avr5 5
.#define bfd_mach_avr51 51
.#define bfd_mach_avr6 6
+.#define bfd_mach_avrtiny10 100
.#define bfd_mach_avrxmega1 101
.#define bfd_mach_avrxmega2 102
.#define bfd_mach_avrxmega3 103
@@ -375,7 +376,6 @@ DESCRIPTION
.#define bfd_mach_avrxmega5 105
.#define bfd_mach_avrxmega6 106
.#define bfd_mach_avrxmega7 107
-.#define bfd_mach_avrtiny10 201
. 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
#define bfd_mach_avr5 5
#define bfd_mach_avr51 51
#define bfd_mach_avr6 6
+#define bfd_mach_avrtiny10 100
#define bfd_mach_avrxmega1 101
#define bfd_mach_avrxmega2 102
#define bfd_mach_avrxmega3 103
@@ -2049,7 +2050,6 @@ enum bfd_architecture
#define bfd_mach_avrxmega5 105
#define bfd_mach_avrxmega6 106
#define bfd_mach_avrxmega7 107
-#define bfd_mach_avrtiny10 201
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
@@ -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]),
+ /* attiny 10 */
+ N (16, bfd_mach_avrtiny10, "avr:100", FALSE, & arch_info_struct[11]),
+
/* Xmega 1 */
- N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[11]),
+ N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[12]),
/* Xmega 2 */
- N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[12]),
+ N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[13]),
/* Xmega 3 */
- N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[13]),
+ N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[14]),
/* Xmega 4 */
- N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[14]),
+ N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[15]),
/* Xmega 5 */
- N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[15]),
+ N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[16]),
/* Xmega 6 */
- N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]),
+ N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[17]),
/* Xmega 7 */
- N (24, bfd_mach_avrxmega7, "avr:107", FALSE, & arch_info_struct[17]),
-
- /* attiny 10 */
- N (16, bfd_mach_avrtiny10, "avr:201", FALSE, NULL)
+ N (24, bfd_mach_avrxmega7, "avr:107", FALSE, NULL)
};
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
@@ -40,6 +40,7 @@
#define E_AVR_MACH_AVR5 5
#define E_AVR_MACH_AVR51 51
#define E_AVR_MACH_AVR6 6
+#define E_AVR_MACH_AVRTINY10 100
#define E_AVR_MACH_XMEGA1 101
#define E_AVR_MACH_XMEGA2 102
#define E_AVR_MACH_XMEGA3 103
@@ -47,7 +48,6 @@
#define E_AVR_MACH_XMEGA5 105
#define E_AVR_MACH_XMEGA6 106
#define E_AVR_MACH_XMEGA7 107
-#define E_AVR_MACH_AVRTINY10 201
/* 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
@@ -1,12 +1,13 @@
-ARCH=avr:201
+ARCH=avr:100
MACHINE=
-SCRIPT_NAME=avr
+SCRIPT_NAME=avrtiny10
OUTPUT_FORMAT="elf32-avr"
MAXPAGESIZE=1
EMBEDDED=yes
TEMPLATE_NAME=elf32
+TEXT_ORIGIN=0x0
TEXT_LENGTH=4K
-DATA_ORIGIN=0x800040
-DATA_LENGTH=0x140
+DATA_ORIGIN=0x0800040
+DATA_LENGTH=0x1F
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
${GEN_DEPENDS}
${GENSCRIPTS} avrxmega7 "$(tdir_avr2)"
eavrtiny10.c: $(srcdir)/emulparams/avrtiny10.sh \
- $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+ $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avrtiny10.sc \
${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
@@ -0,0 +1,240 @@
+cat <<EOF
+OUTPUT_FORMAT("${OUTPUT_FORMAT}","${OUTPUT_FORMAT}","${OUTPUT_FORMAT}")
+OUTPUT_ARCH(${ARCH})
+
+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) : */
+}
+
+SECTIONS
+{
+ /* Read-only sections, merged into text segment: */
+ ${TEXT_DYNAMIC+${DYNAMIC}}
+ .hash ${RELOCATING-0} : { *(.hash) }
+ .dynsym ${RELOCATING-0} : { *(.dynsym) }
+ .dynstr ${RELOCATING-0} : { *(.dynstr) }
+ .gnu.version ${RELOCATING-0} : { *(.gnu.version) }
+ .gnu.version_d ${RELOCATING-0} : { *(.gnu.version_d) }
+ .gnu.version_r ${RELOCATING-0} : { *(.gnu.version_r) }
+
+ .rel.init ${RELOCATING-0} : { *(.rel.init) }
+ .rela.init ${RELOCATING-0} : { *(.rela.init) }
+ .rel.text ${RELOCATING-0} :
+ {
+ *(.rel.text)
+ ${RELOCATING+*(.rel.text.*)}
+ ${RELOCATING+*(.rel.gnu.linkonce.t*)}
+ }
+ .rela.text ${RELOCATING-0} :
+ {
+ *(.rela.text)
+ ${RELOCATING+*(.rela.text.*)}
+ ${RELOCATING+*(.rela.gnu.linkonce.t*)}
+ }
+ .rel.fini ${RELOCATING-0} : { *(.rel.fini) }
+ .rela.fini ${RELOCATING-0} : { *(.rela.fini) }
+ .rel.rodata ${RELOCATING-0} :
+ {
+ *(.rel.rodata)
+ ${RELOCATING+*(.rel.rodata.*)}
+ ${RELOCATING+*(.rel.gnu.linkonce.r*)}
+ }
+ .rela.rodata ${RELOCATING-0} :
+ {
+ *(.rela.rodata)
+ ${RELOCATING+*(.rela.rodata.*)}
+ ${RELOCATING+*(.rela.gnu.linkonce.r*)}
+ }
+ .rel.data ${RELOCATING-0} :
+ {
+ *(.rel.data)
+ ${RELOCATING+*(.rel.data.*)}
+ ${RELOCATING+*(.rel.gnu.linkonce.d*)}
+ }
+ .rela.data ${RELOCATING-0} :
+ {
+ *(.rela.data)
+ ${RELOCATING+*(.rela.data.*)}
+ ${RELOCATING+*(.rela.gnu.linkonce.d*)}
+ }
+ .rel.ctors ${RELOCATING-0} : { *(.rel.ctors) }
+ .rela.ctors ${RELOCATING-0} : { *(.rela.ctors) }
+ .rel.dtors ${RELOCATING-0} : { *(.rel.dtors) }
+ .rela.dtors ${RELOCATING-0} : { *(.rela.dtors) }
+ .rel.got ${RELOCATING-0} : { *(.rel.got) }
+ .rela.got ${RELOCATING-0} : { *(.rela.got) }
+ .rel.bss ${RELOCATING-0} : { *(.rel.bss) }
+ .rela.bss ${RELOCATING-0} : { *(.rela.bss) }
+ .rel.plt ${RELOCATING-0} : { *(.rel.plt) }
+ .rela.plt ${RELOCATING-0} : { *(.rela.plt) }
+
+ /* Internal text space or external memory. */
+ .text ${RELOCATING-0} : ${RELOCATING+ AT (0x0)}
+ {
+ *(.vectors)
+ KEEP(*(.vectors))
+
+ /* For data that needs to reside in the lower 64k of progmem. */
+ *(.progmem.gcc*)
+ *(.progmem*)
+ ${RELOCATING+. = ALIGN(2);}
+
+ ${CONSTRUCTING+ __trampolines_start = . ; }
+ /* The jump trampolines for the 16-bit limited relocs will reside here. */
+ *(.trampolines)
+ *(.trampolines*)
+ ${CONSTRUCTING+ __trampolines_end = . ; }
+
+ /* For future tablejump instruction arrays for 3 byte pc devices.
+ We don't relax jump/call instructions within these sections. */
+ *(.jumptables)
+ *(.jumptables*)
+
+ /* For code that needs to reside in the lower 128k progmem. */
+ *(.lowtext)
+ *(.lowtext*)
+
+ ${CONSTRUCTING+ __ctors_start = . ; }
+ ${CONSTRUCTING+ *(.ctors) }
+ ${CONSTRUCTING+ __ctors_end = . ; }
+ ${CONSTRUCTING+ __dtors_start = . ; }
+ ${CONSTRUCTING+ *(.dtors) }
+ ${CONSTRUCTING+ __dtors_end = . ; }
+ KEEP(SORT(*)(.ctors))
+ KEEP(SORT(*)(.dtors))
+
+ /* From this point on, we don't bother about wether the insns are
+ below or above the 16 bits boundary. */
+ *(.init0) /* Start here after reset. */
+ KEEP (*(.init0))
+ *(.init1)
+ KEEP (*(.init1))
+ *(.init2) /* Clear __zero_reg__, set up stack pointer. */
+ KEEP (*(.init2))
+ *(.init3)
+ KEEP (*(.init3))
+ *(.init4) /* Initialize data and BSS. */
+ KEEP (*(.init4))
+ *(.init5)
+ KEEP (*(.init5))
+ *(.init6) /* C++ constructors. */
+ KEEP (*(.init6))
+ *(.init7)
+ KEEP (*(.init7))
+ *(.init8)
+ KEEP (*(.init8))
+ *(.init9) /* Call main(). */
+ KEEP (*(.init9))
+ *(.text)
+ ${RELOCATING+. = ALIGN(2);}
+ *(.text.*)
+ ${RELOCATING+. = ALIGN(2);}
+ *(.fini9) /* _exit() starts here. */
+ KEEP (*(.fini9))
+ *(.fini8)
+ KEEP (*(.fini8))
+ *(.fini7)
+ KEEP (*(.fini7))
+ *(.fini6) /* C++ destructors. */
+ KEEP (*(.fini6))
+ *(.fini5)
+ KEEP (*(.fini5))
+ *(.fini4)
+ KEEP (*(.fini4))
+ *(.fini3)
+ KEEP (*(.fini3))
+ *(.fini2)
+ KEEP (*(.fini2))
+ *(.fini1)
+ KEEP (*(.fini1))
+ *(.fini0) /* Infinite loop after program termination. */
+ KEEP (*(.fini0))
+ ${RELOCATING+ _etext = . ; }
+ } ${RELOCATING+ > text}
+
+ .data ${RELOCATING-0} : ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text))}
+ {
+ ${RELOCATING+ PROVIDE (__data_start = .) ; }
+ *(.data)
+ *(.data*)
+ *(.rodata) /* We need to include .rodata here if gcc is used */
+ *(.rodata*) /* with -fdata-sections. */
+ *(.gnu.linkonce.d*)
+ ${RELOCATING+. = ALIGN(2);}
+ ${RELOCATING+ _edata = . ; }
+ ${RELOCATING+ PROVIDE (__data_end = .) ; }
+ } ${RELOCATING+ > data}
+
+ .bss ${RELOCATING-0} :${RELOCATING+ AT (ADDR (.bss))}
+ {
+ ${RELOCATING+ PROVIDE (__bss_start = .) ; }
+ *(.bss)
+ *(.bss*)
+ *(COMMON)
+ ${RELOCATING+ PROVIDE (__bss_end = .) ; }
+ } ${RELOCATING+ > data}
+
+ ${RELOCATING+ __data_load_start = LOADADDR(.data); }
+ ${RELOCATING+ __data_load_end = __data_load_start + SIZEOF(.data); }
+
+ /* Global data not cleared after reset. */
+ .noinit ${RELOCATING-0}:
+ {
+ ${RELOCATING+ PROVIDE (__noinit_start = .) ; }
+ *(.noinit*)
+ ${RELOCATING+ PROVIDE (__noinit_end = .) ; }
+ ${RELOCATING+ _end = . ; }
+ ${RELOCATING+ PROVIDE (__heap_start = .) ; }
+ } ${RELOCATING+ > data}
+
+ .lock ${RELOCATING-0}:
+ {
+ KEEP(*(.lock*))
+ } ${RELOCATING+ > lock}
+
+ .signature ${RELOCATING-0}:
+ {
+ KEEP(*(.signature*))
+ } ${RELOCATING+ > signature}
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+
+ /* DWARF debug sections.
+ Symbols in the DWARF debugging sections are relative to the beginning
+ of the section so we begin them at 0. */
+
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+
+ /* DWARF 2 */
+ .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+}
+EOF
+

View file

@ -1,50 +0,0 @@
--- etc/Makefile.in~ 2009-07-31 00:44:48.000000000 +0200
+++ etc/Makefile.in 2010-03-03 17:13:29.000000000 +0100
@@ -64,7 +64,8 @@
HTMLFILES = standards.html configure.html
all: info
-install: install-info
+#install: install-info
+install:
uninstall:
--- libiberty/Makefile.in~ 2009-08-23 21:03:58.000000000 +0200
+++ libiberty/Makefile.in 2010-03-03 17:14:00.000000000 +0100
@@ -321,7 +321,8 @@
@MAINT@ echo stamp > stamp-functions
INSTALL_DEST = @INSTALL_DEST@
-install: install_to_$(INSTALL_DEST) install-subdir
+#install: install_to_$(INSTALL_DEST) install-subdir
+install:
# This is tricky. Even though CC in the Makefile contains
# multilib-specific flags, it's overridden by FLAGS_TO_PASS from the
--- bfd/Makefile.in~ 2009-10-16 13:47:48.000000000 +0200
+++ bfd/Makefile.in 2010-03-03 17:19:17.000000000 +0100
@@ -1673,8 +1673,9 @@
for dir in "$(DESTDIR)$(bfdlibdir)" "$(DESTDIR)$(bfdincludedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
-install: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) install-recursive
+#install: $(BUILT_SOURCES)
+# $(MAKE) $(AM_MAKEFLAGS) install-recursive
+install:
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
--- opcodes/Makefile.in~ 2009-09-07 14:08:03.000000000 +0200
+++ opcodes/Makefile.in 2010-03-03 17:19:43.000000000 +0100
@@ -1051,7 +1051,8 @@
for dir in "$(DESTDIR)$(bfdlibdir)" "$(DESTDIR)$(bfdincludedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
-install: install-recursive
+#install: install-recursive
+install:
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive

View file

@ -1,10 +0,0 @@
diff -ru binutils-2.19.1.orig/gas/config/tc-avr.h binutils-2.19.1/gas/config/tc-avr.h
--- gas/config/tc-avr.h Tue Jul 3 14:01:04 2007
+++ gas/config/tc-avr.h Thu Apr 16 20:46:54 2009
@@ -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

View file

@ -7,14 +7,7 @@ generate AVR (extended) COFF files to be used on Atmel AVR Studio and
VMLAB. Note that this patch has known issues, see
http://www.sax.de/~joerg/README.coff-avr-patch
In addition to the stock binutils-2.18 distribution, support for the
following AVR devices has been added by a private patch:
ATtiny43U, ATtiny48/88, ATtiny167
AT90PWM2B/PWM3B, AT90PWM216/PWM316
ATmega32C1, ATmega32M1, ATmega32U4
ATmega48P/88P/168P/328P
ATmega32HVB, ATmega1284P
ATxmega64A1, ATxmega128A1
The support for additional devices has been synchronize with the
latest public Atmel AVR Tools package.
WWW: http://www.sourceware.org/binutils/