--- binutils/gas/config/tc-avr.c.orig	Mon Aug  6 21:59:55 2007
+++ binutils/gas/config/tc-avr.c	Wed Dec 19 12:08:45 2007
@@ -63,7 +63,7 @@
 {
   {"avr1",       AVR_ISA_TINY1,   bfd_mach_avr1},
   {"avr2",       AVR_ISA_TINY2,   bfd_mach_avr2},
-  {"avr3",       AVR_ISA_M103,    bfd_mach_avr3},
+  {"avr3",       AVR_ISA_USB162,  bfd_mach_avr3},
   {"avr4",       AVR_ISA_M8,      bfd_mach_avr4},
   {"avr5",       AVR_ISA_ALL,     bfd_mach_avr5},
   {"avr6",       AVR_ISA_ALL,     bfd_mach_avr6},
@@ -97,22 +97,31 @@
   {"attiny25",   AVR_ISA_TINY2,   bfd_mach_avr2},
   {"attiny45",   AVR_ISA_TINY2,   bfd_mach_avr2},
   {"attiny85",   AVR_ISA_TINY2,   bfd_mach_avr2},
+  {"attiny43u",  AVR_ISA_TINY2,   bfd_mach_avr2},
+  {"attiny48",   AVR_ISA_TINY2,   bfd_mach_avr2},
+  {"attiny88",   AVR_ISA_TINY2,   bfd_mach_avr2},
   {"atmega603",  AVR_ISA_M603,    bfd_mach_avr3}, /* XXX -> m103 */
   {"atmega103",  AVR_ISA_M103,    bfd_mach_avr3},
   {"at43usb320", AVR_ISA_M103,    bfd_mach_avr3},
   {"at43usb355", AVR_ISA_M603,    bfd_mach_avr3},
   {"at76c711",   AVR_ISA_M603,    bfd_mach_avr3},
+  {"at90usb82",  AVR_ISA_USB162,  bfd_mach_avr3},
+  {"at90usb162", AVR_ISA_USB162,  bfd_mach_avr3},
   {"atmega48",   AVR_ISA_PWMx,    bfd_mach_avr4},
+  {"atmega48p",  AVR_ISA_PWMx,    bfd_mach_avr4},
   {"atmega8",    AVR_ISA_M8,      bfd_mach_avr4},
   {"atmega83",   AVR_ISA_M8,      bfd_mach_avr4}, /* XXX -> m8535 */
   {"atmega85",   AVR_ISA_M8,      bfd_mach_avr4}, /* XXX -> m8 */
   {"atmega88",   AVR_ISA_PWMx,    bfd_mach_avr4},
+  {"atmega88p",  AVR_ISA_PWMx,    bfd_mach_avr4},
   {"atmega8515", AVR_ISA_M8,      bfd_mach_avr4},
   {"atmega8535", AVR_ISA_M8,      bfd_mach_avr4},
   {"atmega8hva", AVR_ISA_PWMx,    bfd_mach_avr4},
   {"at90pwm1",   AVR_ISA_PWMx,    bfd_mach_avr4},
   {"at90pwm2",   AVR_ISA_PWMx,    bfd_mach_avr4},
+  {"at90pwm2b",  AVR_ISA_PWMx,    bfd_mach_avr4},
   {"at90pwm3",   AVR_ISA_PWMx,    bfd_mach_avr4},
+  {"at90pwm3b",  AVR_ISA_PWMx,    bfd_mach_avr4},
   {"atmega16",   AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega161",  AVR_ISA_M161,    bfd_mach_avr5},
   {"atmega162",  AVR_ISA_M323,    bfd_mach_avr5},
@@ -121,6 +130,7 @@
   {"atmega165",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega165p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega168",  AVR_ISA_M323,    bfd_mach_avr5},
+  {"atmega168p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega169",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega169p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega32",   AVR_ISA_M323,    bfd_mach_avr5},
@@ -128,12 +138,14 @@
   {"atmega324p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega325",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega325p", AVR_ISA_M323,    bfd_mach_avr5},
+  {"atmega328p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega329",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega329p", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega3250", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega3250p",AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega3290", AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega3290p",AVR_ISA_M323,    bfd_mach_avr5},
+  {"atmega32hvb",AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega406",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega64",   AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega640",  AVR_ISA_M323,    bfd_mach_avr5},
@@ -142,6 +154,7 @@
   {"atmega128",  AVR_ISA_M128,    bfd_mach_avr5},
   {"atmega1280", AVR_ISA_M128,    bfd_mach_avr5},
   {"atmega1281", AVR_ISA_M128,    bfd_mach_avr5},
+  {"atmega1284p",AVR_ISA_M128,    bfd_mach_avr5},
   {"atmega645",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega649",  AVR_ISA_M323,    bfd_mach_avr5},
   {"atmega6450", AVR_ISA_M323,    bfd_mach_avr5},
@@ -150,8 +163,8 @@
   {"at90can32" , AVR_ISA_M323,    bfd_mach_avr5},
   {"at90can64" , AVR_ISA_M323,    bfd_mach_avr5},
   {"at90can128", AVR_ISA_M128,    bfd_mach_avr5},
-  {"at90usb82",  AVR_ISA_M323,    bfd_mach_avr5},
-  {"at90usb162", AVR_ISA_M323,    bfd_mach_avr5},
+  {"at90pwm216", AVR_ISA_M323,    bfd_mach_avr5},
+  {"at90pwm316", AVR_ISA_M323,    bfd_mach_avr5},
   {"at90usb646", AVR_ISA_M323,    bfd_mach_avr5},
   {"at90usb647", AVR_ISA_M323,    bfd_mach_avr5},
   {"at90usb1286",AVR_ISA_M128,    bfd_mach_avr5},
--- binutils/gas/doc/c-avr.texi.orig	Mon Aug  6 22:00:08 2007
+++ binutils/gas/doc/c-avr.texi	Wed Dec 19 12:07:54 2007
@@ -41,24 +41,26 @@
 attiny26, at90s2333, at90s2343, at90s4414, at90s4433, at90s4434,
 at90s8515, at90c8534, at90s8535, at86rf401, attiny13, attiny2313,
 attiny261, attiny461, attiny861, attiny24, attiny44, attiny84, attiny25,
-attiny45, attiny85).
+attiny45, attiny85, attiny43u, attiny48, attiny88).
 
 Instruction set avr3 is for the classic AVR core with up to 128K program
 memory space (MCU types: atmega103, atmega603, at43usb320, at43usb355,
-at76c711).
+at76c711, at90usb82, at90usb162).
 
-Instruction set avr4 is for the enhanced AVR core with up to 8K program
-memory space (MCU types: atmega48, atmega8, atmega83, atmega85, atmega88,
-atmega8515, atmega8535, atmega8hva, at90pwm1, at90pwm2, at90pwm3).
+Instruction set avr4 is for the enhanced AVR core with up to 8K
+program memory space (MCU types: atmega48, atmega48p, atmega8,
+atmega83, atmega85, atmega88, atmega88p, atmega8515, atmega8535,
+atmega8hva, at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b).
 
-Instruction set avr5 is for the enhanced AVR core with up to 128K program
-memory space (MCU types: atmega16, atmega161, atmega162, atmega163,
-atmega164p, atmega165, atmega165p, atmega168, atmega169, atmega169p, 
-atmega32, atmega323, atmega324p, atmega325, atmega325p, atmega329, 
-atmega329p, atmega3250, atmega3250p, atmega3290, atmega3290p, atmega406, 
-atmega64, atmega640, atmega644, atmega644p, atmega128, atmega1280, 
-atmega1281, atmega645, atmega649, atmega6450, atmega6490, atmega16hva, 
-at90can32, at90can64, at90can128, at90usb82, at90usb162, at90usb646, 
+Instruction set avr5 is for the enhanced AVR core with up to 128K
+program memory space (MCU types: atmega16, atmega161, atmega162,
+atmega163, atmega164p, atmega165, atmega165p, atmega168, atmega168p,
+atmega169, atmega169p, atmega32, atmega32hvb, atmega323, atmega324p, atmega325,
+atmega325p, atmega328p, atmega329, atmega329p, atmega3250,
+atmega3250p, atmega3290, atmega3290p, atmega406, atmega64, atmega640,
+atmega644, atmega644p, atmega128, atmega1280, atmega1281, atmega1284p, atmega645,
+atmega649, atmega6450, atmega6490, atmega16hva, at90can32, at90can64,
+at90can128, at90pwm216, at90pwm316, at90usb646,
 at90usb647, at90usb1286, at90usb1287, at94k).
 
 Instruction set avr6 is for the enhanced AVR core with 256K program
--- binutils/include/opcode/avr.h.orig	Fri Apr  7 17:18:08 2006
+++ binutils/include/opcode/avr.h	Wed Dec 19 12:10:04 2007
@@ -40,6 +40,8 @@
                        AVR_ISA_LPMX | AVR_ISA_SPM)
 #define AVR_ISA_M603  (AVR_ISA_2xxx | AVR_ISA_MEGA)
 #define AVR_ISA_M103  (AVR_ISA_M603 | AVR_ISA_ELPM)
+#define AVR_ISA_USB162 (AVR_ISA_M603 | AVR_ISA_MOVW | \
+			AVR_ISA_LPMX | AVR_ISA_SPM)
 #define AVR_ISA_M161  (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | \
                        AVR_ISA_LPMX | AVR_ISA_SPM)
 #define AVR_ISA_94K   (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | AVR_ISA_LPMX)
