diff options
author | Nick Clifton <nickc@redhat.com> | 2012-11-09 17:36:19 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2012-11-09 17:36:19 +0000 |
commit | de863c74750924a0c3e8fae251c49c69e3ddff36 (patch) | |
tree | 25a418f3ef70622c4e6665cc85f10b6f1d86045e /bfd/cpu-v850_rh850.c | |
parent | 708e2187a341e9eee46669dbb8c4d6603be5cf40 (diff) | |
download | binutils-gdb-de863c74750924a0c3e8fae251c49c69e3ddff36.tar.gz |
2012-11-09 Nick Clifton <nickc@redhat.com>
* Makefile.am (ALL_MACHINES): Add cpu-v850-rh850.lo.
(ALL_MACHINES_CFILES): Add cpu-v850-rh850.c.
* archures.c (bfd_arch_info): Add bfd_v850_rh850_arch.
* config.bfd: Likewise.
* configure.in: Add bfd_elf32_v850_rh850_vec.
* cpu-v850.c: Update printed description.
* cpu-v850_rh850.c: New file.
* elf32-v850.c (v850_elf_check_relocs): Add support for RH850 ABI
relocs.
(v850_elf_perform_relocation): Likewise.
(v850_elf_final_link_relocate): Likewise.
(v850_elf_relocate_section): Likewise.
(v850_elf_relax_section): Likewise.
(v800_elf_howto_table): New.
(v850_elf_object_p): Add support for RH850 ABI values.
(v850_elf_final_write_processing): Likewise.
(v850_elf_merge_private_bfd_data): Likewise.
(v850_elf_print_private_bfd_data): Likewise.
(v800_elf_reloc_map): New.
(v800_elf_reloc_type_lookup): New.
(v800_elf_reloc_name_lookup): New.
(v800_elf_info_to_howto): New.
(bfd_elf32_v850_rh850_vec): New.
(bfd_arch_v850_rh850): New.
* targets.c (_bfd_targets): Add bfd_elf32_v850_rh850_vec.
* Makefile.in: Regenerate.
* bfd-in2.h: Regenerate.
* configure: Regenerate.
* readelf.c (get_machine_flags): Add support for E_FLAG_RX_ABI.
(guess_is_rela): Add EM_V800.
(dump_relocations): Likewise.
(get_machine_name): Update EM_V800.
(get_machine_flags): Add support for RH850 ABI flags.
(is_32bit_abs_reloc): Add support for RH850 ABI reloc.
* config/tc-v850.c (v850_target_arch): New.
(v850_target_format): New.
(set_machine): Use v850_target_arch.
(md_begin): Likewise.
(md_show_usage): Document new switches.
(md_parse_option): Add -mgcc-abi, -mrh850-abi, -m8byte-align and
-m4byte-align.
* config/tc-v850.c (TARGET_ARCH) Use v850_target_arch.
(TARGET_FORMAT): Use v850_target_format.
* doc/c-v850.texi: Document new options.
* v850.h: Add RH850 ABI values.
* Makefile.am: (ALL_EMULATION_SOURCES): Add ev850_rh850.c.
* Makefile.in: Regenerate.
* configure.tgt (v850*-*-*): Make v850_rh850 the default
emulation. Add vanilla v850 as an extra emulation.
* emulparams/v850_rh850.sh: New file.
* scripttempl/v850_rh850.sc: New file.
* configure.in: Add bfd_v850_rh850_arch.
* configure: Regenerate.
* disassemble.c (disassembler): Likewise.
Diffstat (limited to 'bfd/cpu-v850_rh850.c')
-rw-r--r-- | bfd/cpu-v850_rh850.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/bfd/cpu-v850_rh850.c b/bfd/cpu-v850_rh850.c new file mode 100644 index 00000000000..06abdc7f2da --- /dev/null +++ b/bfd/cpu-v850_rh850.c @@ -0,0 +1,39 @@ +/* BFD support for the NEC V850 processor with the RH850 ABI. + Copyright 2012 Free Software Foundation, Inc. + + This file is part of BFD, the Binary File Descriptor library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#include "sysdep.h" +#include "bfd.h" +#include "libbfd.h" +#include "safe-ctype.h" + +#define R(number, print, default, next) \ +{ 32, 32, 8, bfd_arch_v850_rh850, number, "v850", print, 2, default, \ + bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next } + +static const bfd_arch_info_type arch_info_struct[] = +{ + R (bfd_mach_v850e2v3, "v850e2v3", FALSE, & arch_info_struct[1]), + R (bfd_mach_v850e2, "v850e2", FALSE, & arch_info_struct[2]), + R (bfd_mach_v850e1, "v850e1", FALSE, & arch_info_struct[3]), + R (bfd_mach_v850e, "v850e", FALSE, NULL) +}; + +const bfd_arch_info_type bfd_v850_rh850_arch = + R (bfd_mach_v850, "v850-rh850", TRUE, & arch_info_struct[0]); |