summaryrefslogtreecommitdiff
path: root/bfd/cpu-v850_rh850.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2012-11-09 17:36:19 +0000
committerNick Clifton <nickc@redhat.com>2012-11-09 17:36:19 +0000
commitde863c74750924a0c3e8fae251c49c69e3ddff36 (patch)
tree25a418f3ef70622c4e6665cc85f10b6f1d86045e /bfd/cpu-v850_rh850.c
parent708e2187a341e9eee46669dbb8c4d6603be5cf40 (diff)
downloadbinutils-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.c39
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]);