aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2008-02-14 13:04:29 +0000
committerNick Clifton <nickc@redhat.com>2008-02-14 13:04:29 +0000
commitd669d37f8d626f00e8b815527f35017e93a0c00b (patch)
treec29baa1d0a40d1cffa1fd8441131cf6d60045829 /gas
parentab1579fdafda42ee5c832f3c878b2093c1d72942 (diff)
downloadgdb-d669d37f8d626f00e8b815527f35017e93a0c00b.zip
gdb-d669d37f8d626f00e8b815527f35017e93a0c00b.tar.gz
gdb-d669d37f8d626f00e8b815527f35017e93a0c00b.tar.bz2
PR gas/2626
* avr.h (AVR_ISA_2xxe): Define. * config/tc-avr.c (mcu_types): Change the ISA tyoe of the attiny26 to AVR_ISA_2xxe. (avr_operand): Disallow post-increment addressing in the lpm instruction for the attiny26.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/config/tc-avr.c10
2 files changed, 16 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index cd82737..38ae551 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2008-02-14 Hakan Ardo <hakan@debian.org>
+
+ PR gas/2626
+ * config/tc-avr.c (mcu_types): Change the ISA tyoe of the attiny26
+ to AVR_ISA_2xxe.
+ (avr_operand): Disallow post-increment addressing in the lpm
+ instruction for the attiny26.
+
2008-02-13 Jan Beulich <jbeulich@novell.com>
* config/tc-i386.c (parse_real_register): Don't return 'FLAT'
diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c
index 1e6f7e6..678160d 100644
--- a/gas/config/tc-avr.c
+++ b/gas/config/tc-avr.c
@@ -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>
@@ -77,7 +77,7 @@ 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 */
@@ -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':