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.
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -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.  */ | ||||
|   | ||||
| @@ -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'		\ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user