diff options
author | Eric B. Weddington <eric.weddington@atmel.com> | 2011-03-22 18:10:48 +0000 |
---|---|---|
committer | Eric B. Weddington <eric.weddington@atmel.com> | 2011-03-22 18:10:48 +0000 |
commit | 8cc66334fa03f92b70da1a17685a093b6b0850ba (patch) | |
tree | 3c347ee26f7d734336dbf0c44bbffdc0af9ccd7a /ld | |
parent | 3167638f1e8e74e15650adda08449c2e32572552 (diff) | |
download | binutils-8cc66334fa03f92b70da1a17685a093b6b0850ba.tar.gz binutils-8cc66334fa03f92b70da1a17685a093b6b0850ba.tar.bz2 binutils-8cc66334fa03f92b70da1a17685a093b6b0850ba.zip |
/bfd:
2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
* archures.c: Add AVR XMEGA architecture information.
* cpu-avr.c (arch_info_struct): Likewise.
* elf32-avr.c (bfd_elf_avr_final_write_processing): Likewise.
(elf32_avr_object_p): Likewise.
/gas:
2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
* config/tc-avr.c (struct avr_opcodes_s): Add opcode field.
(AVR_INSN): Change definition to match.
(avr_opcodes): Likewise, change to match.
(mcu_types): Add XMEGA architecture names and new XMEGA device names.
(md_show_usage): Add XMEGA architecture names.
(avr_operand): Add 'E' constraint for DES instruction of XMEGA devices.
Add support for SPM Z+ instruction.
* doc/c-avr.texi: Add documentation for XMEGA architectures and
devices.
/include/opcode:
2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
* avr.h (AVR_ISA_SPMX,AVR_ISA_DES,AVR_ISA_M256,AVR_ISA_XMEGA):
New instruction set flags.
(AVR_INSN): Add new instructions for SPM Z+, DES for XMEGA.
/ld:
2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
* Makefile.am (ALL_EMULATION_SOURCES): Add AVR XMEGA architectures.
(eavrxmega?.c): Likewise.
* configure.tgt (targ_extra_emuls): Likewise.
* emulparams/avrxmega1.sh: New file.
* emulparams/avrxmega2.sh: Likewise.
* emulparams/avrxmega3.sh: Likewise.
* emulparams/avrxmega4.sh: Likewise.
* emulparams/avrxmega5.sh: Likewise.
* emulparams/avrxmega6.sh: Likewise.
* emulparams/avrxmega7.sh: Likewise.
* emultempl/avrelf.em (avr_elf_${EMULATION_NAME}_before_allocation):
Add avrxmega6, avrxmega7 to list of architectures for no stubs.
/opcodes:
2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
* avr-dis.c (avr_operand): Add opcode_str parameter. Check for
post-increment to support LPM Z+ instruction. Add support for 'E'
constraint for DES instruction.
(print_insn_avr): Adjust calls to avr_operand. Rename variable.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 15 | ||||
-rw-r--r-- | ld/Makefile.am | 35 | ||||
-rw-r--r-- | ld/configure.tgt | 2 | ||||
-rw-r--r-- | ld/emulparams/avrxmega1.sh | 12 | ||||
-rw-r--r-- | ld/emulparams/avrxmega2.sh | 12 | ||||
-rw-r--r-- | ld/emulparams/avrxmega3.sh | 12 | ||||
-rw-r--r-- | ld/emulparams/avrxmega4.sh | 12 | ||||
-rw-r--r-- | ld/emulparams/avrxmega5.sh | 12 | ||||
-rw-r--r-- | ld/emulparams/avrxmega6.sh | 12 | ||||
-rw-r--r-- | ld/emulparams/avrxmega7.sh | 12 | ||||
-rw-r--r-- | ld/emultempl/avrelf.em | 6 |
11 files changed, 139 insertions, 3 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index e91439b628c..23c6f175e8f 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,18 @@ +2011-03-22 Eric B. Weddington <eric.weddington@atmel.com> + + * Makefile.am (ALL_EMULATION_SOURCES): Add AVR XMEGA architectures. + (eavrxmega?.c): Likewise. + * configure.tgt (targ_extra_emuls): Likewise. + * emulparams/avrxmega1.sh: New file. + * emulparams/avrxmega2.sh: Likewise. + * emulparams/avrxmega3.sh: Likewise. + * emulparams/avrxmega4.sh: Likewise. + * emulparams/avrxmega5.sh: Likewise. + * emulparams/avrxmega6.sh: Likewise. + * emulparams/avrxmega7.sh: Likewise. + * emultempl/avrelf.em (avr_elf_${EMULATION_NAME}_before_allocation): + Add avrxmega6, avrxmega7 to list of architectures for no stubs. + 2011-03-21 Eric B. Weddington <eric.weddington@atmel.com> * scripttempl/avr.sc: Add fuse, lock, and signature memory regions. diff --git a/ld/Makefile.am b/ld/Makefile.am index 75f13a447c4..a9e76f8345e 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -163,6 +163,13 @@ ALL_EMULATION_SOURCES = \ eavr5.c \ eavr51.c \ eavr6.c \ + eavrxmega1.o \ + eavrxmega2.o \ + eavrxmega3.o \ + eavrxmega4.o \ + eavrxmega5.o \ + eavrxmega6.o \ + eavrxmega7.o \ ecoff_i860.c \ ecoff_sparc.c \ ecrisaout.c \ @@ -773,6 +780,34 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(srcdir)/emultempl/avrelf.em \ $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr6 "$(tdir_avr2)" +eavrxmega1.c: $(srcdir)/emulparams/avrxmega1.sh \ + $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avrxmega1 "$(tdir_avr2)" +eavrxmega2.c: $(srcdir)/emulparams/avrxmega2.sh \ + $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avrxmega2 "$(tdir_avr2)" +eavrxmega3.c: $(srcdir)/emulparams/avrxmega3.sh \ + $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avrxmega3 "$(tdir_avr2)" +eavrxmega4.c: $(srcdir)/emulparams/avrxmega4.sh \ + $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avrxmega4 "$(tdir_avr2)" +eavrxmega5.c: $(srcdir)/emulparams/avrxmega5.sh \ + $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avrxmega5 "$(tdir_avr2)" +eavrxmega6.c: $(srcdir)/emulparams/avrxmega6.sh \ + $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avrxmega6 "$(tdir_avr2)" +eavrxmega7.c: $(srcdir)/emulparams/avrxmega7.sh \ + $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avrxmega7 "$(tdir_avr2)" ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS} ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)" diff --git a/ld/configure.tgt b/ld/configure.tgt index 4025837df87..88ebee3c1cd 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -111,7 +111,7 @@ xscale-*-coff) targ_emul=armcoff ;; xscale-*-elf) targ_emul=armelf ;; avr-*-*) targ_emul=avr2 - targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6" + targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7" ;; bfin-*-elf) targ_emul=elf32bfin; targ_extra_emuls="elf32bfinfd" diff --git a/ld/emulparams/avrxmega1.sh b/ld/emulparams/avrxmega1.sh new file mode 100644 index 00000000000..95e8aac22a3 --- /dev/null +++ b/ld/emulparams/avrxmega1.sh @@ -0,0 +1,12 @@ +ARCH=avr:101 +MACHINE= +SCRIPT_NAME=avr +OUTPUT_FORMAT="elf32-avr" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=elf32 + +TEXT_LENGTH=1024K +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf diff --git a/ld/emulparams/avrxmega2.sh b/ld/emulparams/avrxmega2.sh new file mode 100644 index 00000000000..f282a69c990 --- /dev/null +++ b/ld/emulparams/avrxmega2.sh @@ -0,0 +1,12 @@ +ARCH=avr:102 +MACHINE= +SCRIPT_NAME=avr +OUTPUT_FORMAT="elf32-avr" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=elf32 + +TEXT_LENGTH=1024K +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf diff --git a/ld/emulparams/avrxmega3.sh b/ld/emulparams/avrxmega3.sh new file mode 100644 index 00000000000..abaa5b3dbf8 --- /dev/null +++ b/ld/emulparams/avrxmega3.sh @@ -0,0 +1,12 @@ +ARCH=avr:103 +MACHINE= +SCRIPT_NAME=avr +OUTPUT_FORMAT="elf32-avr" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=elf32 + +TEXT_LENGTH=1024K +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf diff --git a/ld/emulparams/avrxmega4.sh b/ld/emulparams/avrxmega4.sh new file mode 100644 index 00000000000..829c8b7d06b --- /dev/null +++ b/ld/emulparams/avrxmega4.sh @@ -0,0 +1,12 @@ +ARCH=avr:104 +MACHINE= +SCRIPT_NAME=avr +OUTPUT_FORMAT="elf32-avr" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=elf32 + +TEXT_LENGTH=1024K +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf diff --git a/ld/emulparams/avrxmega5.sh b/ld/emulparams/avrxmega5.sh new file mode 100644 index 00000000000..0a09aee660f --- /dev/null +++ b/ld/emulparams/avrxmega5.sh @@ -0,0 +1,12 @@ +ARCH=avr:105 +MACHINE= +SCRIPT_NAME=avr +OUTPUT_FORMAT="elf32-avr" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=elf32 + +TEXT_LENGTH=1024K +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf diff --git a/ld/emulparams/avrxmega6.sh b/ld/emulparams/avrxmega6.sh new file mode 100644 index 00000000000..3c3a468998d --- /dev/null +++ b/ld/emulparams/avrxmega6.sh @@ -0,0 +1,12 @@ +ARCH=avr:106 +MACHINE= +SCRIPT_NAME=avr +OUTPUT_FORMAT="elf32-avr" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=elf32 + +TEXT_LENGTH=1024K +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf diff --git a/ld/emulparams/avrxmega7.sh b/ld/emulparams/avrxmega7.sh new file mode 100644 index 00000000000..b84a0ba1dd4 --- /dev/null +++ b/ld/emulparams/avrxmega7.sh @@ -0,0 +1,12 @@ +ARCH=avr:107 +MACHINE= +SCRIPT_NAME=avr +OUTPUT_FORMAT="elf32-avr" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=elf32 + +TEXT_LENGTH=1024K +DATA_ORIGIN=0x802000 +DATA_LENGTH=0xffa0 +EXTRA_EM_FILE=avrelf diff --git a/ld/emultempl/avrelf.em b/ld/emultempl/avrelf.em index 84f163325ed..7f8c05eae76 100644 --- a/ld/emultempl/avrelf.em +++ b/ld/emultempl/avrelf.em @@ -71,8 +71,10 @@ avr_elf_${EMULATION_NAME}_before_allocation (void) gld${EMULATION_NAME}_before_allocation (); - /* We only need stubs for the avr6 family. */ - if (strcmp ("${EMULATION_NAME}","avr6")) + /* We only need stubs for avr6, avrxmega6, and avrxmega7. */ + if (strcmp ("${EMULATION_NAME}","avr6") + && strcmp ("${EMULATION_NAME}","avrxmega6") + && strcmp ("${EMULATION_NAME}","avrxmega7") ) avr_no_stubs = TRUE; avr_elf_set_global_bfd_parameters (); |