Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Weddington <eric.weddington@atmel.com>2008-08-09 09:35:13 +0400
committerEric Weddington <eric.weddington@atmel.com>2008-08-09 09:35:13 +0400
commita15b3bdef74efc01440036ab4869854f1bfff7a2 (patch)
tree80095c72a2c146f93e84c144810df965710816cc /include
parent97c16b1b23fdfce8661feccb7cf9359c1fffea35 (diff)
Add AVR architectures avr25, avr31, avr35, and avr51 to match GCC.
bfd/ * archures.c (bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35, bfd_mach_avr51): New. * bfd-in2.h: Regenerate. * cpu-avr.c (arch_info_struct): Add avr25, avr31, avr35, and avr51 architectures. Change comments to match architecture comments in GCC. (compatible): Add test for new AVR architectures. * elf32-avr.c (bfd_elf_avr_final_write_processing): Recognize bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35 and bfd_mach_avr51. (elf32_avr_object_p): Recognize E_AVR_MACH_AVR25, E_AVR_MACH_AVR31, E_AVR_MACH_AVR35 and E_AVR_MACH_AVR51. gas/ * config/tc-avr.c (mcu_types): Add avr25, avr31, avr35, and avr51 architectures. Reorganize list to put mcu types in correct architectures and to order list same as in GCC. Use new ISA definitions in include/opcode/avr.h. * doc/c-avr.texi: Add avr25, avr31, avr35, and avr51 architecture descriptions. Reorganize descriptions to put mcu types in correct architectures and to order lists same as in GCC. include/ * elf/avr.h (E_AVR_MACH_AVR25, E_AVR_MACH_AVR31, E_AVR_MACH_AVR35, E_AVR_MACH_AVR51): Define. (EF_AVR_MACH): Redefine to 0x7F. * opcode/avr.h (AVR_ISA_TINY3, AVR_ISA_ALL, AVR_ISA_USB162): Remove. (AVR_ISA_AVR3): Redefine. (AVR_ISA_AVR1, AVR_ISA_AVR2, AVR_ISA_AVR31, AVR_ISA_AVR35, AVR_ISA_AVR3_ALL, AVR_ISA_AVR4, AVR_ISA_AVR5, AVR_ISA_AVR51, AVR_ISA_AVR6): Define. ld/ * Makefile.am (ALL_EMULATIONS): Add eavr25.o, eavr31.o, eavr35.o, and eavr51.o. Add rules for eavr25.c, eavr31.c, eavr35.c, eavr51.c. * Makefile.in: Regenerate. * configure.tgt (avr-*-*, targ_extra_emuls): Add avr25, avr31, avr35 and avr51. * emulparams/avr25.sh: New file. * emulparams/avr31.sh: New file. * emulparams/avr35.sh: New file. * emulparams/avr51.sh: New file.
Diffstat (limited to 'include')
-rw-r--r--include/ChangeLog11
-rw-r--r--include/elf/avr.h6
-rw-r--r--include/opcode/avr.h26
3 files changed, 34 insertions, 9 deletions
diff --git a/include/ChangeLog b/include/ChangeLog
index bf5901f9e..a1e31a64d 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,14 @@
+2008-08-08 Anatoly Sokolov <aesok@post.ru>
+
+ * elf/avr.h (E_AVR_MACH_AVR25, E_AVR_MACH_AVR31,
+ E_AVR_MACH_AVR35, E_AVR_MACH_AVR51): Define.
+ (EF_AVR_MACH): Redefine to 0x7F.
+ * opcode/avr.h (AVR_ISA_TINY3, AVR_ISA_ALL, AVR_ISA_USB162): Remove.
+ (AVR_ISA_AVR3): Redefine.
+ (AVR_ISA_AVR1, AVR_ISA_AVR2, AVR_ISA_AVR31, AVR_ISA_AVR35,
+ AVR_ISA_AVR3_ALL, AVR_ISA_AVR4, AVR_ISA_AVR5, AVR_ISA_AVR51,
+ AVR_ISA_AVR6): Define.
+
2008-07-12 Jie Zhang <jie.zhang@analog.com>
Revert
diff --git a/include/elf/avr.h b/include/elf/avr.h
index d2ffbe07f..627dc359d 100644
--- a/include/elf/avr.h
+++ b/include/elf/avr.h
@@ -24,7 +24,7 @@
#include "elf/reloc-macros.h"
/* Processor specific flags for the ELF header e_flags field. */
-#define EF_AVR_MACH 0xf
+#define EF_AVR_MACH 0x7F
/* If bit #7 is set, it is assumed that the elf file uses local symbols
as reference for the relocations so that linker relaxation is possible. */
@@ -32,9 +32,13 @@
#define E_AVR_MACH_AVR1 1
#define E_AVR_MACH_AVR2 2
+#define E_AVR_MACH_AVR25 25
#define E_AVR_MACH_AVR3 3
+#define E_AVR_MACH_AVR31 31
+#define E_AVR_MACH_AVR35 35
#define E_AVR_MACH_AVR4 4
#define E_AVR_MACH_AVR5 5
+#define E_AVR_MACH_AVR51 51
#define E_AVR_MACH_AVR6 6
/* Relocations. */
diff --git a/include/opcode/avr.h b/include/opcode/avr.h
index 0093a726a..15a034a15 100644
--- a/include/opcode/avr.h
+++ b/include/opcode/avr.h
@@ -32,29 +32,39 @@
#define AVR_ISA_MOVW 0x1000 /* device has MOVW */
#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)
/* For the attiny26 which is missing LPM Rd,Z+. */
#define AVR_ISA_2xxe (AVR_ISA_2xxx | AVR_ISA_LPMX)
#define AVR_ISA_RF401 (AVR_ISA_2xxx | AVR_ISA_MOVW | 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_TINY3 (AVR_ISA_TINY2 | AVR_ISA_MEGA)
-#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_USB162 (AVR_ISA_M603 | AVR_ISA_MOVW | \
+#define AVR_ISA_M8 (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_MOVW | \
AVR_ISA_LPMX | AVR_ISA_SPM)
-#define AVR_ISA_AVR3 (AVR_ISA_M603 | AVR_ISA_MOVW | \
- AVR_ISA_LPMX | AVR_ISA_SPM | AVR_ISA_ELPM)
+#define AVR_ISA_PWMx (AVR_ISA_M8 | AVR_ISA_BRK)
#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)
-#define AVR_ISA_ALL 0xFFFF
+#define AVR_ISA_AVR1 AVR_ISA_TINY1
+#define AVR_ISA_AVR2 AVR_ISA_2xxx
+#define AVR_ISA_AVR25 AVR_ISA_TINY2
+#define AVR_ISA_AVR3 AVR_ISA_M603
+#define AVR_ISA_AVR31 AVR_ISA_M103
+#define AVR_ISA_AVR35 (AVR_ISA_AVR3 | AVR_ISA_MOVW | \
+ AVR_ISA_LPMX | AVR_ISA_SPM | AVR_ISA_BRK)
+#define AVR_ISA_AVR3_ALL (AVR_ISA_AVR3 | AVR_ISA_AVR31 | AVR_ISA_AVR35)
+#define AVR_ISA_AVR4 AVR_ISA_PWMx
+#define AVR_ISA_AVR5 AVR_ISA_M323
+#define AVR_ISA_AVR51 AVR_ISA_M128
+#define AVR_ISA_AVR6 (AVR_ISA_1200 | AVR_ISA_LPM | AVR_ISA_LPMX | \
+ AVR_ISA_SRAM | AVR_ISA_MEGA | AVR_ISA_MUL | \
+ AVR_ISA_ELPM | AVR_ISA_ELPMX | AVR_ISA_SPM | \
+ AVR_ISA_SPM | AVR_ISA_BRK | AVR_ISA_EIND | \
+ AVR_ISA_MOVW)
#define REGISTER_P(x) ((x) == 'r' \
|| (x) == 'd' \