diff -cr binutils-2.15/gas/config/tc-avr.c binutils-work/gas/config/tc-avr.c
*** binutils-2.15/gas/config/tc-avr.c	Sat Nov 30 11:39:43 2002
--- binutils-work/gas/config/tc-avr.c	Mon Jul 11 19:40:33 2005
***************
*** 62,68 ****
  static struct mcu_type_s mcu_types[] =
  {
    {"avr1",      AVR_ISA_TINY1,    bfd_mach_avr1},
!   {"avr2",      AVR_ISA_2xxx,     bfd_mach_avr2},
    {"avr3",      AVR_ISA_M103,     bfd_mach_avr3},
    {"avr4",      AVR_ISA_M8,       bfd_mach_avr4},
    {"avr5",      AVR_ISA_ALL,      bfd_mach_avr5},
--- 62,68 ----
  static struct mcu_type_s mcu_types[] =
  {
    {"avr1",      AVR_ISA_TINY1,    bfd_mach_avr1},
!   {"avr2",      AVR_ISA_TINY2,    bfd_mach_avr2},
    {"avr3",      AVR_ISA_M103,     bfd_mach_avr3},
    {"avr4",      AVR_ISA_M8,       bfd_mach_avr4},
    {"avr5",      AVR_ISA_ALL,      bfd_mach_avr5},
***************
*** 85,109 ****
--- 85,116 ----
    {"at90s8535", AVR_ISA_2xxx,     bfd_mach_avr2},
    {"at90c8534", AVR_ISA_2xxx,     bfd_mach_avr2},
    {"at86rf401", AVR_ISA_2xxx,     bfd_mach_avr2},
+   {"attiny13",  AVR_ISA_TINY2,    bfd_mach_avr2},
+   {"attiny2313",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},
+   {"atmega48",  AVR_ISA_M8,       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_M8,       bfd_mach_avr4},
    {"atmega8515",AVR_ISA_M8,       bfd_mach_avr4},
    {"atmega8535",AVR_ISA_M8,       bfd_mach_avr4},
    {"atmega16",  AVR_ISA_M323,     bfd_mach_avr5},
    {"atmega161", AVR_ISA_M161,     bfd_mach_avr5},
    {"atmega162", AVR_ISA_M323,     bfd_mach_avr5},
    {"atmega163", AVR_ISA_M161,     bfd_mach_avr5},
+   {"atmega165", AVR_ISA_M323,     bfd_mach_avr5},
+   {"atmega168", AVR_ISA_M323,     bfd_mach_avr5},
    {"atmega169", AVR_ISA_M323,     bfd_mach_avr5},
    {"atmega32",  AVR_ISA_M323,     bfd_mach_avr5},
    {"atmega323", AVR_ISA_M323,     bfd_mach_avr5},
    {"atmega64",  AVR_ISA_M323,     bfd_mach_avr5},
    {"atmega128", AVR_ISA_M128,     bfd_mach_avr5},
+   {"at90can128",AVR_ISA_M128,     bfd_mach_avr5},
    {"at94k",     AVR_ISA_94K,      bfd_mach_avr5},
    {NULL, 0, 0}
  };
***************
*** 531,537 ****
        /* Warn if the previous opcode was cpse/sbic/sbis/sbrc/sbrs
           (AVR core bug, fixed in the newer devices).  */
  
!       if (!(avr_opt.no_skip_bug || (avr_mcu->isa & AVR_ISA_MUL))
  	  && AVR_SKIP_P (prev))
  	as_warn (_("skipping two-word instruction"));
  
--- 538,545 ----
        /* Warn if the previous opcode was cpse/sbic/sbis/sbrc/sbrs
           (AVR core bug, fixed in the newer devices).  */
  
!       if (!(avr_opt.no_skip_bug ||
!             (avr_mcu->isa & (AVR_ISA_MUL | AVR_ISA_MOVW)))
  	  && AVR_SKIP_P (prev))
  	as_warn (_("skipping two-word instruction"));
  
Only in binutils-work/gas/doc: as.info
diff -cr binutils-2.15/include/opcode/avr.h binutils-work/include/opcode/avr.h
*** binutils-2.15/include/opcode/avr.h	Sat Nov 10 12:40:53 2001
--- binutils-work/include/opcode/avr.h	Sat Jun 11 02:59:37 2005
***************
*** 23,42 ****
  #define AVR_ISA_SRAM  0x0008 /* device has SRAM (LD, ST, PUSH, POP, ...) */
  #define AVR_ISA_MEGA  0x0020 /* device has >8K program memory (JMP and CALL
  				supported, no 8K wrap on RJMP and RCALL) */
! #define AVR_ISA_MUL   0x0040 /* device has new core (MUL, MOVW, ...) */
  #define AVR_ISA_ELPM  0x0080 /* device has >64K program memory (ELPM) */
  #define AVR_ISA_ELPMX 0x0100 /* device has ELPM Rd,Z[+] */
  #define AVR_ISA_SPM   0x0200 /* device can program itself */
  #define AVR_ISA_BRK   0x0400 /* device has BREAK (on-chip debug) */
  #define AVR_ISA_EIND  0x0800 /* device has >128K program memory (none yet) */
  
  #define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
  #define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
! #define AVR_ISA_M8   (AVR_ISA_2xxx | AVR_ISA_MUL | 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_M161 (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_LPMX | AVR_ISA_SPM)
! #define AVR_ISA_94K  (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_LPMX)
  #define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK)
  #define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX)
  
--- 23,47 ----
  #define AVR_ISA_SRAM  0x0008 /* device has SRAM (LD, ST, PUSH, POP, ...) */
  #define AVR_ISA_MEGA  0x0020 /* device has >8K program memory (JMP and CALL
  				supported, no 8K wrap on RJMP and RCALL) */
! #define AVR_ISA_MUL   0x0040 /* device has new core (MUL, FMUL, ...) */
  #define AVR_ISA_ELPM  0x0080 /* device has >64K program memory (ELPM) */
  #define AVR_ISA_ELPMX 0x0100 /* device has ELPM Rd,Z[+] */
  #define AVR_ISA_SPM   0x0200 /* device can program itself */
  #define AVR_ISA_BRK   0x0400 /* device has BREAK (on-chip debug) */
  #define AVR_ISA_EIND  0x0800 /* device has >128K program memory (none yet) */
+ #define AVR_ISA_MOVW  0x1000 /* device has MOVW */
  
  #define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
  #define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
! #define AVR_ISA_TINY2 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX | \
!                        AVR_ISA_SPM | AVR_ISA_BRK)
! #define AVR_ISA_M8   (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_MOVW | \
!                       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_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)
  #define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK)
  #define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX)
  
***************
*** 236,242 ****
  AVR_INSN (swap, "r",   "1001010rrrrr0010", 1, AVR_ISA_1200, 0x9402)
  
     /* Known to be decoded as `nop' by the old core.  */
! AVR_INSN (movw, "v,v", "00000001ddddrrrr", 1, AVR_ISA_MUL,  0x0100)
  AVR_INSN (muls, "d,d", "00000010ddddrrrr", 1, AVR_ISA_MUL,  0x0200)
  AVR_INSN (mulsu,"a,a", "000000110ddd0rrr", 1, AVR_ISA_MUL,  0x0300)
  AVR_INSN (fmul, "a,a", "000000110ddd1rrr", 1, AVR_ISA_MUL,  0x0308)
--- 241,247 ----
  AVR_INSN (swap, "r",   "1001010rrrrr0010", 1, AVR_ISA_1200, 0x9402)
  
     /* Known to be decoded as `nop' by the old core.  */
! AVR_INSN (movw, "v,v", "00000001ddddrrrr", 1, AVR_ISA_MOVW, 0x0100)
  AVR_INSN (muls, "d,d", "00000010ddddrrrr", 1, AVR_ISA_MUL,  0x0200)
  AVR_INSN (mulsu,"a,a", "000000110ddd0rrr", 1, AVR_ISA_MUL,  0x0300)
  AVR_INSN (fmul, "a,a", "000000110ddd1rrr", 1, AVR_ISA_MUL,  0x0308)
