--- binutils-20060817-1/include/opcode/avr.h.orig 2008-02-06 13:00:17.000000000 +0100 +++ binutils-20060817-1/include/opcode/avr.h 2008-02-06 19:08:16.000000000 +0100 @@ -34,6 +34,8 @@ #define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM) #define AVR_ISA_PWMx (AVR_ISA_M8 | AVR_ISA_BRK) #define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM) +/* Special hack in tc-avr.c attiny26 is missing LPM Rd,Z+ */ +#define AVR_ISA_2xxe (AVR_ISA_2xxx | AVR_ISA_LPMX) #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 | \ --- binutils-20060817-1/gas/config/tc-avr.c.orig 2008-02-06 12:56:18.000000000 +0100 +++ binutils-20060817-1/gas/config/tc-avr.c 2008-02-06 19:05:23.000000000 +0100 @@ -78,7 +78,7 @@ {"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 */ @@ -792,6 +792,10 @@ ++str; op_mask |= 1; } + /* attiny26 can do "lpm" and "lpm r,Z" but no postincrement. */ + if (!avr_opt.all_opcodes && (op_mask & 0x0001) + && !(avr_mcu->isa & AVR_ISA_MOVW)) + as_bad (_("postincrement not supported")); break; case 'b':