diff options
author | Michael Eager <eager@eagercon.com> | 2012-11-09 16:25:12 +0000 |
---|---|---|
committer | Michael Eager <eager@eagercon.com> | 2012-11-09 16:25:12 +0000 |
commit | f23200ada9c9f078722cd78ae3fd595c65b8b83a (patch) | |
tree | aed0fac44abd1b4b96d34ad07f66dcc4d6f29d6d /gas | |
parent | 0570af4ff1efdff03b836fccbdbdc4b8a68ba53d (diff) | |
download | ppe42-binutils-f23200ada9c9f078722cd78ae3fd595c65b8b83a.tar.gz ppe42-binutils-f23200ada9c9f078722cd78ae3fd595c65b8b83a.zip |
Add microblazeel target support to bfd, gas and ld.
binutils/bfd/Changelog
2012-11-09 Edgar E. Iglesias <edgar.iglesias@gmail.com>
* config.bfd: Add microblazeel-*-*
* configure.in: Likewise.
* configure: Regenerate.
* elf32-microblaze.c (microblaze_elf_relocate_section):
Add endian awareness.
(microblaze_elf_merge_private_bfd_data): New.
(microblaze_bfd_write_imm_value_32): New.
(microblaze_bfd_write_imm_value_64): New.
(microblaze_elf_relax_section): Add endian awareness.
(microblaze_elf_add_symbol_hook): Define TARGET_LITTLE_NAME,
TARGET_LITTLE_SYM and bfd_elf32_bfd_merge_private_bfd_data.
* targets.c: Add bfd target bfd_elf32_microblazeel_vec.
binutils/gas/Changelog
2012-11-09 Edgar E. Iglesias <edgar.iglesias@gmail.com>
* tc-microblaze.c (md_longopts): Define OPTION_EB and
OPTION_EL for target.
(md_parse_option): Likewise.
* tc-microblaze.h: Set elf32-microblazeel if not
target_big_endian for TARGET_FORMAT.
* configure.tgt: Add microblazeel and set endian per target.
binutils/gas/testsuite/Changelog
2012-11-09 David Holsgrove <david.holsgrove@xilinx.com>
* gas/microblaze/endian.exp: New file - endian
testcase for microblaze / microblazeel.
* gas/microblaze/endian.s: Likewise.
* gas/microblaze/endian_be.d: Likewise.
* gas/microblaze/endian_le.d: Likewise.
* gas/microblaze/endian_le_elf.d: Likewise.
* gas/microblaze/reloc_sym.d: Update to accept targets
other than elf32-microblaze.
* gas/microblaze/special_reg.d: Likewise.
binutils/ld/Changelog
2012-11-09 Edgar E. Iglesias <edgar.iglesias@gmail.com>
* Makefile.am: Add eelf32microblazeel.c and eelf32mbel_linux.c.
* Makefile.in: Regenerated.
* configure.tgt: Add microblazeel and set endian per target.
* emulparams/elf32mb_linux.sh: Add OUTPUT_FORMAT.
* emulparams/elf32microblaze.sh: Likewise.
* emulparams/elf32mbel_linux.sh: New file.
* emulparams/elf32microblazeel.sh: Likewise.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 10 | ||||
-rw-r--r-- | gas/config/tc-microblaze.c | 11 | ||||
-rw-r--r-- | gas/config/tc-microblaze.h | 4 | ||||
-rw-r--r-- | gas/configure.tgt | 3 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/microblaze/reloc_sym.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/microblaze/special_reg.d | 7 |
7 files changed, 39 insertions, 9 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index a029fbe643..ddf1a1ed7a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,13 @@ +2012-11-09 David Holsgrove <david.holsgrove@xilinx.com> + + * gas/microblaze/endian.exp: New file - endian testcase for microblaze / microblazeel. + * gas/microblaze/endian.s: Likewise. + * gas/microblaze/endian_be.d: Likewise. + * gas/microblaze/endian_le.d: Likewise. + * gas/microblaze/endian_le_elf.d: Likewise. + * gas/microblaze/reloc_sym.d: Update to accept targets other than elf32-microblaze. + * gas/microblaze/special_reg.d: Likewise. + 2012-11-09 H.J. Lu <hongjiu.lu@intel.com> * config/atof-ieee.c (gen_to_words): Remove trailing redundant diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c index de0efda7c5..04dfa1ef98 100644 --- a/gas/config/tc-microblaze.c +++ b/gas/config/tc-microblaze.c @@ -35,6 +35,9 @@ #define streq(a,b) (strcmp (a, b) == 0) #endif +#define OPTION_EB (OPTION_MD_BASE + 0) +#define OPTION_EL (OPTION_MD_BASE + 1) + void microblaze_generate_symbol (char *sym); static bfd_boolean check_spl_reg (unsigned *); @@ -1707,6 +1710,8 @@ const char * md_shortopts = ""; struct option md_longopts[] = { + {"EB", no_argument, NULL, OPTION_EB}, + {"EL", no_argument, NULL, OPTION_EL}, { NULL, no_argument, NULL, 0} }; @@ -2304,6 +2309,12 @@ md_parse_option (int c, char * arg ATTRIBUTE_UNUSED) { switch (c) { + case OPTION_EB: + target_big_endian = 1; + break; + case OPTION_EL: + target_big_endian = 0; + break; default: return 0; } diff --git a/gas/config/tc-microblaze.h b/gas/config/tc-microblaze.h index db8d22773e..0651040038 100644 --- a/gas/config/tc-microblaze.h +++ b/gas/config/tc-microblaze.h @@ -23,8 +23,10 @@ #define TC_MICROBLAZE 1 #define TARGET_ARCH bfd_arch_microblaze +#ifndef TARGET_BYTES_BIG_ENDIAN /* Used to initialise target_big_endian. */ #define TARGET_BYTES_BIG_ENDIAN 1 +#endif #define IGNORE_NONSTANDARD_ESCAPES @@ -75,7 +77,7 @@ extern const struct relax_type md_relax_table[]; #ifdef OBJ_ELF -#define TARGET_FORMAT (target_big_endian ? "elf32-microblaze" : "elf32-microblaze-little") +#define TARGET_FORMAT (target_big_endian ? "elf32-microblaze" : "elf32-microblazeel") #define ELF_TC_SPECIAL_SECTIONS \ { ".sdata", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE }, \ diff --git a/gas/configure.tgt b/gas/configure.tgt index ff4cb3f47d..774031ec4d 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -57,7 +57,8 @@ case ${cpu} in m6811|m6812|m68hc12) cpu_type=m68hc11 ;; m683??) cpu_type=m68k ;; mep) cpu_type=mep endian=little ;; - microblaze*) cpu_type=microblaze ;; + microblazeel*) cpu_type=microblaze endian=little;; + microblaze*) cpu_type=microblaze endian=big;; mips*el) cpu_type=mips endian=little ;; mips*) cpu_type=mips endian=big ;; mt) cpu_type=mt endian=big ;; diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index b007717ae5..7797e19ab0 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2012-11-09 David Holsgrove <david.holsgrove@xilinx.com> + + * gas/microblaze/endian.exp: New file - endian testcase for microblaze / microblazeel. + * gas/microblaze/endian.s: Likewise. + * gas/microblaze/endian_be.d: Likewise. + * gas/microblaze/endian_le.d: Likewise. + * gas/microblaze/endian_le_elf.d: Likewise. + * gas/microblaze/reloc_sym.d: Update to accept targets other than elf32-microblaze. + * gas/microblaze/special_reg.d: Likewise. + 2012-11-08 Maciej W. Rozycki <macro@codesourcery.com> * gas/mips/lui.d: New test. diff --git a/gas/testsuite/gas/microblaze/reloc_sym.d b/gas/testsuite/gas/microblaze/reloc_sym.d index 212d0bb35b..571ffe1bba 100644 --- a/gas/testsuite/gas/microblaze/reloc_sym.d +++ b/gas/testsuite/gas/microblaze/reloc_sym.d @@ -1,6 +1,5 @@ -reloc_sym.x: file format elf32-microblaze - +.*: +file format .* Disassembly of section .text: diff --git a/gas/testsuite/gas/microblaze/special_reg.d b/gas/testsuite/gas/microblaze/special_reg.d index aad0131899..c2041fdcdb 100644 --- a/gas/testsuite/gas/microblaze/special_reg.d +++ b/gas/testsuite/gas/microblaze/special_reg.d @@ -1,10 +1,7 @@ #as: -#objdump: -ds +#objdump: -d -.*: file format .* - -Contents of section .text: - 0000 9409d000 6c00d000 001ff800 ....l....... +.*: +file format .* Disassembly of section .text: |