* config/tc-ppc.h (struct _ppc_fix_extra): New.
[deliverable/binutils-gdb.git] / gas / config / tc-avr.c
index 461f11d5c69d3c583a51f32c642a566abe8cf9ad..678160dbd378b8b76d9e199d59089cf2db60f7bb 100644 (file)
@@ -1,6 +1,6 @@
 /* tc-avr.c -- Assembler code for the ATMEL AVR
 
-   Copyright 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007
+   Copyright 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008
    Free Software Foundation, Inc.
    Contributed by Denis Chertykov <denisc@overta.ru>
 
@@ -63,7 +63,7 @@ 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},
+  {"avr3",       AVR_ISA_AVR3,    bfd_mach_avr3},
   {"avr4",       AVR_ISA_M8,      bfd_mach_avr4},
   {"avr5",       AVR_ISA_ALL,     bfd_mach_avr5},
   {"avr6",       AVR_ISA_ALL,     bfd_mach_avr6},
@@ -77,14 +77,14 @@ static struct mcu_type_s mcu_types[] =
   {"at90s2333",  AVR_ISA_2xxx,    bfd_mach_avr2}, /* XXX -> 4433 */
   {"at90s2343",  AVR_ISA_2xxx,    bfd_mach_avr2},
   {"attiny22",   AVR_ISA_2xxx,    bfd_mach_avr2}, /* XXX -> 2343 */
-  {"attiny26",   AVR_ISA_2xxx,    bfd_mach_avr2},
+  {"attiny26",   AVR_ISA_2xxe,    bfd_mach_avr2},
   {"at90s4433",  AVR_ISA_2xxx,    bfd_mach_avr2},
   {"at90s4414",  AVR_ISA_2xxx,    bfd_mach_avr2}, /* XXX -> 8515 */
   {"at90s4434",  AVR_ISA_2xxx,    bfd_mach_avr2}, /* XXX -> 8535 */
   {"at90s8515",  AVR_ISA_2xxx,    bfd_mach_avr2},
   {"at90s8535",  AVR_ISA_2xxx,    bfd_mach_avr2},
   {"at90c8534",  AVR_ISA_2xxx,    bfd_mach_avr2},
-  {"at86rf401",  AVR_ISA_2xxx,    bfd_mach_avr2},
+  {"at86rf401",  AVR_ISA_RF401,   bfd_mach_avr2},
   {"attiny13",   AVR_ISA_TINY2,   bfd_mach_avr2},
   {"attiny2313", AVR_ISA_TINY2,   bfd_mach_avr2},
   {"attiny261",  AVR_ISA_TINY2,   bfd_mach_avr2},
@@ -103,6 +103,8 @@ static struct mcu_type_s mcu_types[] =
   {"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},
@@ -159,8 +161,6 @@ static struct mcu_type_s mcu_types[] =
   {"at90can128", AVR_ISA_M128,    bfd_mach_avr5},
   {"at90pwm216", AVR_ISA_M323,    bfd_mach_avr5},
   {"at90pwm316", AVR_ISA_M323,    bfd_mach_avr5},
-  {"at90usb82",  AVR_ISA_M323,    bfd_mach_avr5},
-  {"at90usb162", 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},
@@ -765,6 +765,12 @@ avr_operand (struct avr_opcodes_s *opcode,
          ++str;
          op_mask |= 1;
        }
+
+      /* attiny26 can do "lpm" and "lpm r,Z" but not "lpm r,Z+".  */
+      if (!avr_opt.all_opcodes
+         && (op_mask & 0x0001)
+         && !(avr_mcu->isa & AVR_ISA_MOVW))
+       as_bad (_("postincrement not supported"));
       break;
 
     case 'b':
This page took 0.024341 seconds and 4 git commands to generate.