binutils-gdb/bfd/elfxx-ia64.c

766 lines
26 KiB
C
Raw Normal View History

2000-04-22 04:22:24 +08:00
/* IA-64 support for 64-bit ELF
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010, 2011 Free Software Foundation, Inc.
2000-04-22 04:22:24 +08:00
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of BFD, the Binary File Descriptor library.
2000-04-22 04:22:24 +08:00
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.
2000-04-22 04:22:24 +08:00
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.
2000-04-22 04:22:24 +08:00
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. */
2000-04-22 04:22:24 +08:00
#include "sysdep.h"
#include "bfd.h"
2000-04-22 04:22:24 +08:00
#include "libbfd.h"
#include "elf-bfd.h"
#include "opcode/ia64.h"
#include "elf/ia64.h"
#include "objalloc.h"
#include "hashtab.h"
#include "bfd_stdint.h"
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
#include "elfxx-ia64.h"
/* THE RULES for all the stuff the linker creates --
GOT Entries created in response to LTOFF or LTOFF_FPTR
relocations. Dynamic relocs created for dynamic
symbols in an application; REL relocs for locals
in a shared library.
FPTR The canonical function descriptor. Created for local
symbols in applications. Descriptors for dynamic symbols
and local symbols in shared libraries are created by
ld.so. Thus there are no dynamic relocs against these
objects. The FPTR relocs for such _are_ passed through
to the dynamic relocation tables.
FULL_PLT Created for a PCREL21B relocation against a dynamic symbol.
Requires the creation of a PLTOFF entry. This does not
require any dynamic relocations.
PLTOFF Created by PLTOFF relocations. For local symbols, this
is an alternate function descriptor, and in shared libraries
requires two REL relocations. Note that this cannot be
transformed into an FPTR relocation, since it must be in
range of the GP. For dynamic symbols, this is a function
descriptor for a MIN_PLT entry, and requires one IPLT reloc.
MIN_PLT Created by PLTOFF entries against dynamic symbols. This
does not require dynamic relocations. */
2000-04-22 04:22:24 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
/* ia64-specific relocation. */
2000-04-22 04:22:24 +08:00
#define NELEMS(a) ((int) (sizeof (a) / sizeof ((a)[0])))
/* Perform a relocation. Not much to do here as all the hard work is
done in elfNN_ia64_final_link_relocate. */
2000-04-22 04:22:24 +08:00
static bfd_reloc_status_type
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
ia64_elf_reloc (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc,
asymbol *sym ATTRIBUTE_UNUSED,
PTR data ATTRIBUTE_UNUSED, asection *input_section,
bfd *output_bfd, char **error_message)
2000-04-22 04:22:24 +08:00
{
if (output_bfd)
{
reloc->address += input_section->output_offset;
return bfd_reloc_ok;
}
if (input_section->flags & SEC_DEBUGGING)
return bfd_reloc_continue;
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
*error_message = "Unsupported call to ia64_elf_reloc";
2000-04-22 04:22:24 +08:00
return bfd_reloc_notsupported;
}
#define IA64_HOWTO(TYPE, NAME, SIZE, PCREL, IN) \
HOWTO (TYPE, 0, SIZE, 0, PCREL, 0, complain_overflow_signed, \
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
ia64_elf_reloc, NAME, FALSE, 0, -1, IN)
2000-04-22 04:22:24 +08:00
/* This table has to be sorted according to increasing number of the
TYPE field. */
static reloc_howto_type ia64_howto_table[] =
{
IA64_HOWTO (R_IA64_NONE, "NONE", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_IMM14, "IMM14", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_IMM22, "IMM22", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_IMM64, "IMM64", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_DIR32MSB, "DIR32MSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_DIR32LSB, "DIR32LSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_DIR64MSB, "DIR64MSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_DIR64LSB, "DIR64LSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_GPREL22, "GPREL22", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_GPREL64I, "GPREL64I", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_GPREL32MSB, "GPREL32MSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_GPREL32LSB, "GPREL32LSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_GPREL64MSB, "GPREL64MSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_GPREL64LSB, "GPREL64LSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTOFF22, "LTOFF22", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTOFF64I, "LTOFF64I", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_PLTOFF22, "PLTOFF22", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_PLTOFF64I, "PLTOFF64I", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_PLTOFF64MSB, "PLTOFF64MSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_PLTOFF64LSB, "PLTOFF64LSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_FPTR64I, "FPTR64I", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_FPTR32MSB, "FPTR32MSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_FPTR32LSB, "FPTR32LSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_FPTR64MSB, "FPTR64MSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_FPTR64LSB, "FPTR64LSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_PCREL60B, "PCREL60B", 0, TRUE, TRUE),
IA64_HOWTO (R_IA64_PCREL21B, "PCREL21B", 0, TRUE, TRUE),
IA64_HOWTO (R_IA64_PCREL21M, "PCREL21M", 0, TRUE, TRUE),
IA64_HOWTO (R_IA64_PCREL21F, "PCREL21F", 0, TRUE, TRUE),
IA64_HOWTO (R_IA64_PCREL32MSB, "PCREL32MSB", 2, TRUE, TRUE),
IA64_HOWTO (R_IA64_PCREL32LSB, "PCREL32LSB", 2, TRUE, TRUE),
IA64_HOWTO (R_IA64_PCREL64MSB, "PCREL64MSB", 4, TRUE, TRUE),
IA64_HOWTO (R_IA64_PCREL64LSB, "PCREL64LSB", 4, TRUE, TRUE),
IA64_HOWTO (R_IA64_LTOFF_FPTR22, "LTOFF_FPTR22", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTOFF_FPTR64I, "LTOFF_FPTR64I", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTOFF_FPTR32MSB, "LTOFF_FPTR32MSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTOFF_FPTR32LSB, "LTOFF_FPTR32LSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTOFF_FPTR64MSB, "LTOFF_FPTR64MSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTOFF_FPTR64LSB, "LTOFF_FPTR64LSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_SEGREL32MSB, "SEGREL32MSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_SEGREL32LSB, "SEGREL32LSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_SEGREL64MSB, "SEGREL64MSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_SEGREL64LSB, "SEGREL64LSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_SECREL32MSB, "SECREL32MSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_SECREL32LSB, "SECREL32LSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_SECREL64MSB, "SECREL64MSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_SECREL64LSB, "SECREL64LSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_REL32MSB, "REL32MSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_REL32LSB, "REL32LSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_REL64MSB, "REL64MSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_REL64LSB, "REL64LSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTV32MSB, "LTV32MSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTV32LSB, "LTV32LSB", 2, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTV64MSB, "LTV64MSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTV64LSB, "LTV64LSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_PCREL21BI, "PCREL21BI", 0, TRUE, TRUE),
IA64_HOWTO (R_IA64_PCREL22, "PCREL22", 0, TRUE, TRUE),
IA64_HOWTO (R_IA64_PCREL64I, "PCREL64I", 0, TRUE, TRUE),
IA64_HOWTO (R_IA64_IPLTMSB, "IPLTMSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_IPLTLSB, "IPLTLSB", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_COPY, "COPY", 4, FALSE, TRUE),
IA64_HOWTO (R_IA64_LTOFF22X, "LTOFF22X", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_LDXMOV, "LDXMOV", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_TPREL14, "TPREL14", 0, FALSE, FALSE),
IA64_HOWTO (R_IA64_TPREL22, "TPREL22", 0, FALSE, FALSE),
IA64_HOWTO (R_IA64_TPREL64I, "TPREL64I", 0, FALSE, FALSE),
IA64_HOWTO (R_IA64_TPREL64MSB, "TPREL64MSB", 4, FALSE, FALSE),
IA64_HOWTO (R_IA64_TPREL64LSB, "TPREL64LSB", 4, FALSE, FALSE),
IA64_HOWTO (R_IA64_LTOFF_TPREL22, "LTOFF_TPREL22", 0, FALSE, FALSE),
IA64_HOWTO (R_IA64_DTPMOD64MSB, "DTPMOD64MSB", 4, FALSE, FALSE),
IA64_HOWTO (R_IA64_DTPMOD64LSB, "DTPMOD64LSB", 4, FALSE, FALSE),
IA64_HOWTO (R_IA64_LTOFF_DTPMOD22, "LTOFF_DTPMOD22", 0, FALSE, FALSE),
IA64_HOWTO (R_IA64_DTPREL14, "DTPREL14", 0, FALSE, FALSE),
IA64_HOWTO (R_IA64_DTPREL22, "DTPREL22", 0, FALSE, FALSE),
IA64_HOWTO (R_IA64_DTPREL64I, "DTPREL64I", 0, FALSE, FALSE),
IA64_HOWTO (R_IA64_DTPREL32MSB, "DTPREL32MSB", 2, FALSE, FALSE),
IA64_HOWTO (R_IA64_DTPREL32LSB, "DTPREL32LSB", 2, FALSE, FALSE),
IA64_HOWTO (R_IA64_DTPREL64MSB, "DTPREL64MSB", 4, FALSE, FALSE),
IA64_HOWTO (R_IA64_DTPREL64LSB, "DTPREL64LSB", 4, FALSE, FALSE),
IA64_HOWTO (R_IA64_LTOFF_DTPREL22, "LTOFF_DTPREL22", 0, FALSE, FALSE),
2000-04-22 04:22:24 +08:00
};
static unsigned char elf_code_to_howto_index[R_IA64_MAX_RELOC_CODE + 1];
/* Given a BFD reloc type, return the matching HOWTO structure. */
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
reloc_howto_type *
ia64_elf_lookup_howto (unsigned int rtype)
2000-04-22 04:22:24 +08:00
{
static int inited = 0;
int i;
if (!inited)
{
inited = 1;
memset (elf_code_to_howto_index, 0xff, sizeof (elf_code_to_howto_index));
for (i = 0; i < NELEMS (ia64_howto_table); ++i)
elf_code_to_howto_index[ia64_howto_table[i].type] = i;
}
if (rtype > R_IA64_MAX_RELOC_CODE)
return 0;
2000-04-22 04:22:24 +08:00
i = elf_code_to_howto_index[rtype];
if (i >= NELEMS (ia64_howto_table))
return 0;
return ia64_howto_table + i;
}
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
reloc_howto_type*
ia64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
bfd_reloc_code_real_type bfd_code)
2000-04-22 04:22:24 +08:00
{
unsigned int rtype;
switch (bfd_code)
{
case BFD_RELOC_NONE: rtype = R_IA64_NONE; break;
case BFD_RELOC_IA64_IMM14: rtype = R_IA64_IMM14; break;
case BFD_RELOC_IA64_IMM22: rtype = R_IA64_IMM22; break;
case BFD_RELOC_IA64_IMM64: rtype = R_IA64_IMM64; break;
case BFD_RELOC_IA64_DIR32MSB: rtype = R_IA64_DIR32MSB; break;
case BFD_RELOC_IA64_DIR32LSB: rtype = R_IA64_DIR32LSB; break;
case BFD_RELOC_IA64_DIR64MSB: rtype = R_IA64_DIR64MSB; break;
case BFD_RELOC_IA64_DIR64LSB: rtype = R_IA64_DIR64LSB; break;
case BFD_RELOC_IA64_GPREL22: rtype = R_IA64_GPREL22; break;
case BFD_RELOC_IA64_GPREL64I: rtype = R_IA64_GPREL64I; break;
case BFD_RELOC_IA64_GPREL32MSB: rtype = R_IA64_GPREL32MSB; break;
case BFD_RELOC_IA64_GPREL32LSB: rtype = R_IA64_GPREL32LSB; break;
case BFD_RELOC_IA64_GPREL64MSB: rtype = R_IA64_GPREL64MSB; break;
case BFD_RELOC_IA64_GPREL64LSB: rtype = R_IA64_GPREL64LSB; break;
case BFD_RELOC_IA64_LTOFF22: rtype = R_IA64_LTOFF22; break;
case BFD_RELOC_IA64_LTOFF64I: rtype = R_IA64_LTOFF64I; break;
case BFD_RELOC_IA64_PLTOFF22: rtype = R_IA64_PLTOFF22; break;
case BFD_RELOC_IA64_PLTOFF64I: rtype = R_IA64_PLTOFF64I; break;
case BFD_RELOC_IA64_PLTOFF64MSB: rtype = R_IA64_PLTOFF64MSB; break;
case BFD_RELOC_IA64_PLTOFF64LSB: rtype = R_IA64_PLTOFF64LSB; break;
case BFD_RELOC_IA64_FPTR64I: rtype = R_IA64_FPTR64I; break;
case BFD_RELOC_IA64_FPTR32MSB: rtype = R_IA64_FPTR32MSB; break;
case BFD_RELOC_IA64_FPTR32LSB: rtype = R_IA64_FPTR32LSB; break;
case BFD_RELOC_IA64_FPTR64MSB: rtype = R_IA64_FPTR64MSB; break;
case BFD_RELOC_IA64_FPTR64LSB: rtype = R_IA64_FPTR64LSB; break;
case BFD_RELOC_IA64_PCREL21B: rtype = R_IA64_PCREL21B; break;
case BFD_RELOC_IA64_PCREL21BI: rtype = R_IA64_PCREL21BI; break;
2000-04-22 04:22:24 +08:00
case BFD_RELOC_IA64_PCREL21M: rtype = R_IA64_PCREL21M; break;
case BFD_RELOC_IA64_PCREL21F: rtype = R_IA64_PCREL21F; break;
case BFD_RELOC_IA64_PCREL22: rtype = R_IA64_PCREL22; break;
case BFD_RELOC_IA64_PCREL60B: rtype = R_IA64_PCREL60B; break;
case BFD_RELOC_IA64_PCREL64I: rtype = R_IA64_PCREL64I; break;
2000-04-22 04:22:24 +08:00
case BFD_RELOC_IA64_PCREL32MSB: rtype = R_IA64_PCREL32MSB; break;
case BFD_RELOC_IA64_PCREL32LSB: rtype = R_IA64_PCREL32LSB; break;
case BFD_RELOC_IA64_PCREL64MSB: rtype = R_IA64_PCREL64MSB; break;
case BFD_RELOC_IA64_PCREL64LSB: rtype = R_IA64_PCREL64LSB; break;
case BFD_RELOC_IA64_LTOFF_FPTR22: rtype = R_IA64_LTOFF_FPTR22; break;
case BFD_RELOC_IA64_LTOFF_FPTR64I: rtype = R_IA64_LTOFF_FPTR64I; break;
case BFD_RELOC_IA64_LTOFF_FPTR32MSB: rtype = R_IA64_LTOFF_FPTR32MSB; break;
case BFD_RELOC_IA64_LTOFF_FPTR32LSB: rtype = R_IA64_LTOFF_FPTR32LSB; break;
2000-04-22 04:22:24 +08:00
case BFD_RELOC_IA64_LTOFF_FPTR64MSB: rtype = R_IA64_LTOFF_FPTR64MSB; break;
case BFD_RELOC_IA64_LTOFF_FPTR64LSB: rtype = R_IA64_LTOFF_FPTR64LSB; break;
case BFD_RELOC_IA64_SEGREL32MSB: rtype = R_IA64_SEGREL32MSB; break;
case BFD_RELOC_IA64_SEGREL32LSB: rtype = R_IA64_SEGREL32LSB; break;
case BFD_RELOC_IA64_SEGREL64MSB: rtype = R_IA64_SEGREL64MSB; break;
case BFD_RELOC_IA64_SEGREL64LSB: rtype = R_IA64_SEGREL64LSB; break;
case BFD_RELOC_IA64_SECREL32MSB: rtype = R_IA64_SECREL32MSB; break;
case BFD_RELOC_IA64_SECREL32LSB: rtype = R_IA64_SECREL32LSB; break;
case BFD_RELOC_IA64_SECREL64MSB: rtype = R_IA64_SECREL64MSB; break;
case BFD_RELOC_IA64_SECREL64LSB: rtype = R_IA64_SECREL64LSB; break;
case BFD_RELOC_IA64_REL32MSB: rtype = R_IA64_REL32MSB; break;
case BFD_RELOC_IA64_REL32LSB: rtype = R_IA64_REL32LSB; break;
case BFD_RELOC_IA64_REL64MSB: rtype = R_IA64_REL64MSB; break;
case BFD_RELOC_IA64_REL64LSB: rtype = R_IA64_REL64LSB; break;
case BFD_RELOC_IA64_LTV32MSB: rtype = R_IA64_LTV32MSB; break;
case BFD_RELOC_IA64_LTV32LSB: rtype = R_IA64_LTV32LSB; break;
case BFD_RELOC_IA64_LTV64MSB: rtype = R_IA64_LTV64MSB; break;
case BFD_RELOC_IA64_LTV64LSB: rtype = R_IA64_LTV64LSB; break;
case BFD_RELOC_IA64_IPLTMSB: rtype = R_IA64_IPLTMSB; break;
case BFD_RELOC_IA64_IPLTLSB: rtype = R_IA64_IPLTLSB; break;
case BFD_RELOC_IA64_COPY: rtype = R_IA64_COPY; break;
case BFD_RELOC_IA64_LTOFF22X: rtype = R_IA64_LTOFF22X; break;
case BFD_RELOC_IA64_LDXMOV: rtype = R_IA64_LDXMOV; break;
* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_THREAD_LOCAL for symbols from SHF_TLS section. (_bfd_elf_print_private_bfd_data): Add PT_TLS. (elf_fake_sections): Set SHF_TLS for SEC_THREAD_LOCAL sections. (map_sections_to_segments): Build PT_TLS segment if necessary. (assign_file_positions_for_segments): Likewise. (get_program_header_size): Account for PT_TLS segment. (swap_out_syms): Set type of BSF_THREAD_LOCAL symbols and symbols from SEC_THREAD_LOCAL sections to STT_TLS. * reloc.c: Add 386 and IA-64 TLS relocs. * section.c (SEC_THREAD_LOCAL): Define. (SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS): Remove. * elflink.h (elf_link_add_object_symbols): Support .tcommon. (size_dynamic_sections): If DF_STATIC_TLS, set DF_FLAGS unconditionally. (struct elf_final_link_info): Add first_tls_sec. (elf_bfd_final_link): Set first_tls_sec. Compute elf_hash_table (info)->tls_segment. (elf_link_output_extsym): Handle STT_TLS symbols. (elf_link_input_bfd): Likewise. * syms.c (BSF_THREAD_LOCAL): Define. * bfd-in2.h: Rebuilt. * libbfd.h: Rebuilt. * elf32-i386.c (elf_i386_tls_transition, dtpoff_base, tpoff, elf_i386_mkobject, elf_i386_object_p): New functions. (elf_howto_table): Add TLS relocs. (elf_i386_reloc_type_lookup): Support TLS relocs. (elf_i386_info_to_howto_rel): Likewise. (struct elf_i386_link_hash_entry): Add tls_type. (struct elf_i386_obj_tdata): New. (elf_i386_hash_entry, elf_i386_tdata, elf_i386_local_got_tls_type): New macros. (struct elf_i386_link_hash_table): Add tls_ldm_got. (link_hash_newfunc): Clear tls_type. (elf_i386_check_relocs): Support TLS relocs. (elf_i386_gc_sweep_hook): Likewise. (allocate_dynrelocs): Likewise. (elf_i386_size_dynamic_sections): Likewise. (elf_i386_relocate_section): Likewise. (elf_i386_finish_dynamic_symbol): Likewise. (bfd_elf32_mkobject, elf_backend_object_p): Define. * elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add tprel_offset, dtpmod_offset, dtprel_offset, tprel_done, dtpmod_done, dtprel_done, want_tprel, want_dtpmod, want_dtprel. (elfNN_ia64_tprel_base, elfNN_ia64_dtprel_base): New functions. (ia64_howto_table): Add TLS relocs, rename R_IA64_LTOFF_TP22 to R_IA64_LTOFF_TPREL22. (elf_code_to_howto_index): Add TLS relocs. (elfNN_ia64_check_relocs): Support TLS relocs. (allocate_global_data_got): Account for TLS .got data. (allocate_dynrel_entries): Account for TLS dynamic relocations. (elfNN_ia64_install_value): Supprt TLS relocs. (set_got_entry): Support TLS relocs. (elfNN_ia64_relocate_section): Likewise. * config/obj-elf.c (elf_common): Renamed from obj_elf_common. (obj_elf_common): Call elf_common. (obj_elf_tls_common): New function. (elf_pseudo_tab): Support .tls_common. (special_sections): Add .tdata and .tbss. (obj_elf_change_section): Set SEC_THREAD_LOCAL for SHF_TLS sections. (obj_elf_parse_section_letters): Support T in section flags (SHF_TLS). (obj_elf_parse_section_letters): Include T in error message. * config/tc-ppc.c (ppc_section_letter): Likewise. * config/tc-alpha.c (alpha_elf_section_letter): Likewise. (tc_gen_reloc): Handle SEC_THREAD_LOCAL the same way as SEC_MERGE. * config/tc-sparc.c (md_apply_fix3): Likewise. * config/tc-i386.c (tc_i386_fix_adjustable): Add TLS relocs. Define them if not BFD_ASSEMBLER. (lex_got): Support @TLSGD, @TLSLDM, @GOTTPOFF, @TPOFF, @DTPOFF and @NTPOFF. (md_apply_fix3): Add TLS relocs. * config/tc-ia64.c (enum reloc_func): Add FUNC_DTP_MODULE, FUNC_DTP_RELATIVE, FUNC_TP_RELATIVE, FUNC_LT_DTP_MODULE, FUNC_LT_DTP_RELATIVE, FUNC_LT_TP_RELATIVE. (pseudo_func): Support @dtpmod(), @dtprel() and @tprel(). (ia64_elf_section_letter): Include T in error message. (md_begin): Support TLS operators. (md_operand): Likewise. (ia64_gen_real_reloc_type): Support TLS relocs. * testsuite/gas/i386/tlspic.s: New file. * testsuite/gas/i386/tlsd.s: New file. * testsuite/gas/i386/tlsnopic.s: New file. * testsuite/gas/i386/tlsd.d: New file. * testsuite/gas/i386/tlsnopic.d: New file. * testsuite/gas/i386/tlspic.d: New file. * testsuite/gas/i386/i386.exp: Add tlsd, tlsnopic and tlspic tests. * testsuite/gas/ia64/tls.s: New file. * testsuite/gas/ia64/tls.d: New file. * testsuite/gas/ia64/ia64.exp: Add tls test. * write.c (adjust_reloc_syms): Don't change symbols in SEC_THREAD_LOCAL sections to STT_SECTION + addend. * elf/common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define. * elf/ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22. * elf/i386.h: Add TLS relocs. * scripttempl/elf.sc: Add .rel{,a}.t{bss,data}, .tdata and .tbss. * ldlang.c (lang_add_section): Set SEC_THREAD_LOCAL for output section if necessary. Handle .tbss. (lang_size_sections): Clear _raw_size for .tbss section (it allocates space in PT_TLS segment only). * ldwrite.c (build_link_order): Build link order for .tbss too. * readelf.c (get_segment_type): Add PT_TLS. (get_elf_section_flags): Add SHF_TLS. (get_dynamic_flags): Optimize. Add DF_STATIC_TLS. (process_dynamic_segment): Use puts instead of printf. (get_symbol_type): Support STT_TLS. * objdump.c (dump_section_header): Remove SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS. Add SEC_THREAD_LOCAL.
2002-05-23 21:12:53 +08:00
case BFD_RELOC_IA64_TPREL14: rtype = R_IA64_TPREL14; break;
2000-04-22 04:22:24 +08:00
case BFD_RELOC_IA64_TPREL22: rtype = R_IA64_TPREL22; break;
* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_THREAD_LOCAL for symbols from SHF_TLS section. (_bfd_elf_print_private_bfd_data): Add PT_TLS. (elf_fake_sections): Set SHF_TLS for SEC_THREAD_LOCAL sections. (map_sections_to_segments): Build PT_TLS segment if necessary. (assign_file_positions_for_segments): Likewise. (get_program_header_size): Account for PT_TLS segment. (swap_out_syms): Set type of BSF_THREAD_LOCAL symbols and symbols from SEC_THREAD_LOCAL sections to STT_TLS. * reloc.c: Add 386 and IA-64 TLS relocs. * section.c (SEC_THREAD_LOCAL): Define. (SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS): Remove. * elflink.h (elf_link_add_object_symbols): Support .tcommon. (size_dynamic_sections): If DF_STATIC_TLS, set DF_FLAGS unconditionally. (struct elf_final_link_info): Add first_tls_sec. (elf_bfd_final_link): Set first_tls_sec. Compute elf_hash_table (info)->tls_segment. (elf_link_output_extsym): Handle STT_TLS symbols. (elf_link_input_bfd): Likewise. * syms.c (BSF_THREAD_LOCAL): Define. * bfd-in2.h: Rebuilt. * libbfd.h: Rebuilt. * elf32-i386.c (elf_i386_tls_transition, dtpoff_base, tpoff, elf_i386_mkobject, elf_i386_object_p): New functions. (elf_howto_table): Add TLS relocs. (elf_i386_reloc_type_lookup): Support TLS relocs. (elf_i386_info_to_howto_rel): Likewise. (struct elf_i386_link_hash_entry): Add tls_type. (struct elf_i386_obj_tdata): New. (elf_i386_hash_entry, elf_i386_tdata, elf_i386_local_got_tls_type): New macros. (struct elf_i386_link_hash_table): Add tls_ldm_got. (link_hash_newfunc): Clear tls_type. (elf_i386_check_relocs): Support TLS relocs. (elf_i386_gc_sweep_hook): Likewise. (allocate_dynrelocs): Likewise. (elf_i386_size_dynamic_sections): Likewise. (elf_i386_relocate_section): Likewise. (elf_i386_finish_dynamic_symbol): Likewise. (bfd_elf32_mkobject, elf_backend_object_p): Define. * elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add tprel_offset, dtpmod_offset, dtprel_offset, tprel_done, dtpmod_done, dtprel_done, want_tprel, want_dtpmod, want_dtprel. (elfNN_ia64_tprel_base, elfNN_ia64_dtprel_base): New functions. (ia64_howto_table): Add TLS relocs, rename R_IA64_LTOFF_TP22 to R_IA64_LTOFF_TPREL22. (elf_code_to_howto_index): Add TLS relocs. (elfNN_ia64_check_relocs): Support TLS relocs. (allocate_global_data_got): Account for TLS .got data. (allocate_dynrel_entries): Account for TLS dynamic relocations. (elfNN_ia64_install_value): Supprt TLS relocs. (set_got_entry): Support TLS relocs. (elfNN_ia64_relocate_section): Likewise. * config/obj-elf.c (elf_common): Renamed from obj_elf_common. (obj_elf_common): Call elf_common. (obj_elf_tls_common): New function. (elf_pseudo_tab): Support .tls_common. (special_sections): Add .tdata and .tbss. (obj_elf_change_section): Set SEC_THREAD_LOCAL for SHF_TLS sections. (obj_elf_parse_section_letters): Support T in section flags (SHF_TLS). (obj_elf_parse_section_letters): Include T in error message. * config/tc-ppc.c (ppc_section_letter): Likewise. * config/tc-alpha.c (alpha_elf_section_letter): Likewise. (tc_gen_reloc): Handle SEC_THREAD_LOCAL the same way as SEC_MERGE. * config/tc-sparc.c (md_apply_fix3): Likewise. * config/tc-i386.c (tc_i386_fix_adjustable): Add TLS relocs. Define them if not BFD_ASSEMBLER. (lex_got): Support @TLSGD, @TLSLDM, @GOTTPOFF, @TPOFF, @DTPOFF and @NTPOFF. (md_apply_fix3): Add TLS relocs. * config/tc-ia64.c (enum reloc_func): Add FUNC_DTP_MODULE, FUNC_DTP_RELATIVE, FUNC_TP_RELATIVE, FUNC_LT_DTP_MODULE, FUNC_LT_DTP_RELATIVE, FUNC_LT_TP_RELATIVE. (pseudo_func): Support @dtpmod(), @dtprel() and @tprel(). (ia64_elf_section_letter): Include T in error message. (md_begin): Support TLS operators. (md_operand): Likewise. (ia64_gen_real_reloc_type): Support TLS relocs. * testsuite/gas/i386/tlspic.s: New file. * testsuite/gas/i386/tlsd.s: New file. * testsuite/gas/i386/tlsnopic.s: New file. * testsuite/gas/i386/tlsd.d: New file. * testsuite/gas/i386/tlsnopic.d: New file. * testsuite/gas/i386/tlspic.d: New file. * testsuite/gas/i386/i386.exp: Add tlsd, tlsnopic and tlspic tests. * testsuite/gas/ia64/tls.s: New file. * testsuite/gas/ia64/tls.d: New file. * testsuite/gas/ia64/ia64.exp: Add tls test. * write.c (adjust_reloc_syms): Don't change symbols in SEC_THREAD_LOCAL sections to STT_SECTION + addend. * elf/common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define. * elf/ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22. * elf/i386.h: Add TLS relocs. * scripttempl/elf.sc: Add .rel{,a}.t{bss,data}, .tdata and .tbss. * ldlang.c (lang_add_section): Set SEC_THREAD_LOCAL for output section if necessary. Handle .tbss. (lang_size_sections): Clear _raw_size for .tbss section (it allocates space in PT_TLS segment only). * ldwrite.c (build_link_order): Build link order for .tbss too. * readelf.c (get_segment_type): Add PT_TLS. (get_elf_section_flags): Add SHF_TLS. (get_dynamic_flags): Optimize. Add DF_STATIC_TLS. (process_dynamic_segment): Use puts instead of printf. (get_symbol_type): Support STT_TLS. * objdump.c (dump_section_header): Remove SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS. Add SEC_THREAD_LOCAL.
2002-05-23 21:12:53 +08:00
case BFD_RELOC_IA64_TPREL64I: rtype = R_IA64_TPREL64I; break;
2000-04-22 04:22:24 +08:00
case BFD_RELOC_IA64_TPREL64MSB: rtype = R_IA64_TPREL64MSB; break;
case BFD_RELOC_IA64_TPREL64LSB: rtype = R_IA64_TPREL64LSB; break;
* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_THREAD_LOCAL for symbols from SHF_TLS section. (_bfd_elf_print_private_bfd_data): Add PT_TLS. (elf_fake_sections): Set SHF_TLS for SEC_THREAD_LOCAL sections. (map_sections_to_segments): Build PT_TLS segment if necessary. (assign_file_positions_for_segments): Likewise. (get_program_header_size): Account for PT_TLS segment. (swap_out_syms): Set type of BSF_THREAD_LOCAL symbols and symbols from SEC_THREAD_LOCAL sections to STT_TLS. * reloc.c: Add 386 and IA-64 TLS relocs. * section.c (SEC_THREAD_LOCAL): Define. (SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS): Remove. * elflink.h (elf_link_add_object_symbols): Support .tcommon. (size_dynamic_sections): If DF_STATIC_TLS, set DF_FLAGS unconditionally. (struct elf_final_link_info): Add first_tls_sec. (elf_bfd_final_link): Set first_tls_sec. Compute elf_hash_table (info)->tls_segment. (elf_link_output_extsym): Handle STT_TLS symbols. (elf_link_input_bfd): Likewise. * syms.c (BSF_THREAD_LOCAL): Define. * bfd-in2.h: Rebuilt. * libbfd.h: Rebuilt. * elf32-i386.c (elf_i386_tls_transition, dtpoff_base, tpoff, elf_i386_mkobject, elf_i386_object_p): New functions. (elf_howto_table): Add TLS relocs. (elf_i386_reloc_type_lookup): Support TLS relocs. (elf_i386_info_to_howto_rel): Likewise. (struct elf_i386_link_hash_entry): Add tls_type. (struct elf_i386_obj_tdata): New. (elf_i386_hash_entry, elf_i386_tdata, elf_i386_local_got_tls_type): New macros. (struct elf_i386_link_hash_table): Add tls_ldm_got. (link_hash_newfunc): Clear tls_type. (elf_i386_check_relocs): Support TLS relocs. (elf_i386_gc_sweep_hook): Likewise. (allocate_dynrelocs): Likewise. (elf_i386_size_dynamic_sections): Likewise. (elf_i386_relocate_section): Likewise. (elf_i386_finish_dynamic_symbol): Likewise. (bfd_elf32_mkobject, elf_backend_object_p): Define. * elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add tprel_offset, dtpmod_offset, dtprel_offset, tprel_done, dtpmod_done, dtprel_done, want_tprel, want_dtpmod, want_dtprel. (elfNN_ia64_tprel_base, elfNN_ia64_dtprel_base): New functions. (ia64_howto_table): Add TLS relocs, rename R_IA64_LTOFF_TP22 to R_IA64_LTOFF_TPREL22. (elf_code_to_howto_index): Add TLS relocs. (elfNN_ia64_check_relocs): Support TLS relocs. (allocate_global_data_got): Account for TLS .got data. (allocate_dynrel_entries): Account for TLS dynamic relocations. (elfNN_ia64_install_value): Supprt TLS relocs. (set_got_entry): Support TLS relocs. (elfNN_ia64_relocate_section): Likewise. * config/obj-elf.c (elf_common): Renamed from obj_elf_common. (obj_elf_common): Call elf_common. (obj_elf_tls_common): New function. (elf_pseudo_tab): Support .tls_common. (special_sections): Add .tdata and .tbss. (obj_elf_change_section): Set SEC_THREAD_LOCAL for SHF_TLS sections. (obj_elf_parse_section_letters): Support T in section flags (SHF_TLS). (obj_elf_parse_section_letters): Include T in error message. * config/tc-ppc.c (ppc_section_letter): Likewise. * config/tc-alpha.c (alpha_elf_section_letter): Likewise. (tc_gen_reloc): Handle SEC_THREAD_LOCAL the same way as SEC_MERGE. * config/tc-sparc.c (md_apply_fix3): Likewise. * config/tc-i386.c (tc_i386_fix_adjustable): Add TLS relocs. Define them if not BFD_ASSEMBLER. (lex_got): Support @TLSGD, @TLSLDM, @GOTTPOFF, @TPOFF, @DTPOFF and @NTPOFF. (md_apply_fix3): Add TLS relocs. * config/tc-ia64.c (enum reloc_func): Add FUNC_DTP_MODULE, FUNC_DTP_RELATIVE, FUNC_TP_RELATIVE, FUNC_LT_DTP_MODULE, FUNC_LT_DTP_RELATIVE, FUNC_LT_TP_RELATIVE. (pseudo_func): Support @dtpmod(), @dtprel() and @tprel(). (ia64_elf_section_letter): Include T in error message. (md_begin): Support TLS operators. (md_operand): Likewise. (ia64_gen_real_reloc_type): Support TLS relocs. * testsuite/gas/i386/tlspic.s: New file. * testsuite/gas/i386/tlsd.s: New file. * testsuite/gas/i386/tlsnopic.s: New file. * testsuite/gas/i386/tlsd.d: New file. * testsuite/gas/i386/tlsnopic.d: New file. * testsuite/gas/i386/tlspic.d: New file. * testsuite/gas/i386/i386.exp: Add tlsd, tlsnopic and tlspic tests. * testsuite/gas/ia64/tls.s: New file. * testsuite/gas/ia64/tls.d: New file. * testsuite/gas/ia64/ia64.exp: Add tls test. * write.c (adjust_reloc_syms): Don't change symbols in SEC_THREAD_LOCAL sections to STT_SECTION + addend. * elf/common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define. * elf/ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22. * elf/i386.h: Add TLS relocs. * scripttempl/elf.sc: Add .rel{,a}.t{bss,data}, .tdata and .tbss. * ldlang.c (lang_add_section): Set SEC_THREAD_LOCAL for output section if necessary. Handle .tbss. (lang_size_sections): Clear _raw_size for .tbss section (it allocates space in PT_TLS segment only). * ldwrite.c (build_link_order): Build link order for .tbss too. * readelf.c (get_segment_type): Add PT_TLS. (get_elf_section_flags): Add SHF_TLS. (get_dynamic_flags): Optimize. Add DF_STATIC_TLS. (process_dynamic_segment): Use puts instead of printf. (get_symbol_type): Support STT_TLS. * objdump.c (dump_section_header): Remove SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS. Add SEC_THREAD_LOCAL.
2002-05-23 21:12:53 +08:00
case BFD_RELOC_IA64_LTOFF_TPREL22: rtype = R_IA64_LTOFF_TPREL22; break;
case BFD_RELOC_IA64_DTPMOD64MSB: rtype = R_IA64_DTPMOD64MSB; break;
case BFD_RELOC_IA64_DTPMOD64LSB: rtype = R_IA64_DTPMOD64LSB; break;
case BFD_RELOC_IA64_LTOFF_DTPMOD22: rtype = R_IA64_LTOFF_DTPMOD22; break;
case BFD_RELOC_IA64_DTPREL14: rtype = R_IA64_DTPREL14; break;
case BFD_RELOC_IA64_DTPREL22: rtype = R_IA64_DTPREL22; break;
case BFD_RELOC_IA64_DTPREL64I: rtype = R_IA64_DTPREL64I; break;
case BFD_RELOC_IA64_DTPREL32MSB: rtype = R_IA64_DTPREL32MSB; break;
case BFD_RELOC_IA64_DTPREL32LSB: rtype = R_IA64_DTPREL32LSB; break;
case BFD_RELOC_IA64_DTPREL64MSB: rtype = R_IA64_DTPREL64MSB; break;
case BFD_RELOC_IA64_DTPREL64LSB: rtype = R_IA64_DTPREL64LSB; break;
case BFD_RELOC_IA64_LTOFF_DTPREL22: rtype = R_IA64_LTOFF_DTPREL22; break;
2000-04-22 04:22:24 +08:00
default: return 0;
}
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
return ia64_elf_lookup_howto (rtype);
2000-04-22 04:22:24 +08:00
}
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
reloc_howto_type *
ia64_elf_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
const char *r_name)
* aout-adobe.c (aout_32_bfd_reloc_name_lookup): Define. * aout-arm.c (MY_bfd_reloc_name_lookup): Define. (MY (bfd_reloc_name_lookup)): New function. * aout-ns32k.c (MY (bfd_reloc_name_lookup)): New function. * aout-target.h (NAME (aout, reloc_name_lookup)): Declare. (MY_bfd_reloc_name_lookup): Define. * aout-tic30.c (tic30_aout_reloc_name_lookup): New function. (MY_bfd_reloc_name_lookup): Define. * aoutx.h (NAME (aout, reloc_type_lookup)): Don't declare. (NAME (aout, reloc_name_lookup)): New function. * bout.c (b_out_bfd_reloc_name_lookup): New function. * coff-alpha.c (alpha_bfd_reloc_name_lookup): New function. (_bfd_ecoff_bfd_reloc_name_lookup): Define. * coff-arm.c (coff_arm_reloc_name_lookup): New function. (coff_bfd_reloc_name_lookup): Define. * coff-i386.c (coff_bfd_reloc_name_lookup): Define. (coff_i386_reloc_name_lookup): New function. * coff-i860.c (coff_i860_reloc_name_lookup): New function. (coff_bfd_reloc_name_lookup): Define. * coff-i960.c (coff_i960_reloc_name_lookup): New function. (coff_bfd_reloc_name_lookup): Define. * coff-m68k.c (m68k_reloc_name_lookup): New function. (coff_bfd_reloc_name_lookup): Define. * coff-maxq.c (maxq_reloc_name_lookup): New function. (coff_bfd_reloc_name_lookup): Define. * coff-mcore.c (mcore_coff_reloc_name_lookup): New function. (coff_bfd_reloc_name_lookup): Define. * coff-mips.c (mips_bfd_reloc_name_lookup): New function. (_bfd_ecoff_bfd_reloc_name_lookup): Define. * coff-ppc.c (ppc_coff_reloc_name_lookup): New function. (coff_bfd_reloc_name_lookup): Define. * coff-rs6000.c (coff_bfd_reloc_name_lookup): Define. (_bfd_xcoff_reloc_name_lookup): New function. (rs6000coff_vec, pmac_xcoff_vec): Init new field. * coff-sh.c (coff_bfd_reloc_name_lookup): Define. (sh_coff_reloc_name_lookup): New function. * coff-sparc.c (coff_sparc_reloc_name_lookup): New function. (coff_bfd_reloc_name_lookup): Define. * coff-tic30.c (coff_bfd_reloc_name_lookup): Define. (tic30_coff_reloc_name_lookup): New function. * coff-tic4x.c (coff_bfd_reloc_name_lookup): Define. (tic4x_coff_reloc_name_lookup): New function. * coff-tic54x.c (coff_bfd_reloc_name_lookup): Define. (tic54x_coff_reloc_name_lookup): New function. * coff-x86_64.c (coff_bfd_reloc_name_lookup): Define. (coff_amd64_reloc_name_lookup): New function. * coff-z80.c (coff_z80_reloc_name_lookup): New function. (coff_bfd_reloc_name_lookup): Define. * coff-z8k.c (coff_z8k_reloc_name_lookup): New function. (coff_bfd_reloc_name_lookup): Define. * coff64-rs6000.c (coff_bfd_reloc_name_lookup): Define. (xcoff64_reloc_name_lookup): New function. (rs6000coff64_vec, aix5coff64_vec): Init new field. * coffcode.h (coff_bfd_reloc_name_lookup): Define. * elf-hppa.h (elf_hppa_reloc_name_lookup): New function. * elf-m10200.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elf-m10300.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elf32-arc.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elf32-arm.c (elf32_arm_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-avr.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elf32-bfin.c (bfin_bfd_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-cr16c.c (elf_cr16c_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-cris.c (cris_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-crx.c (elf_crx_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-d10v.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elf32-d30v.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elf32-dlx.c (elf32_dlx_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-fr30.c (fr30_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-frv.c (frv_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-gen.c (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-h8300.c (elf32_h8_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-hppa.c (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-i370.c (i370_elf_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-i386.c (elf_i386_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-i860.c (elf32_i860_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-i960.c (elf32_i960_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-ip2k.c (ip2k_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-iq2000.c (iq2000_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-m32c.c (m32c_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-m32r.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elf32-m68hc11.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elf32-m68hc12.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elf32-m68k.c (reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-m88k.c (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-mcore.c (mcore_elf_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-mep.c (mep_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-mips.c (bfd_elf32_bfd_reloc_name_lookup): New function. (mips_vxworks_bfd_reloc_name_lookup): Likewise. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-msp430.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elf32-mt.c (mt_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-openrisc.c (openrisc_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-or32.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elf32-pj.c (pj_elf_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-ppc.c (ppc_elf_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-s390.c (elf_s390_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-score.c (elf32_score_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-sh.c (sh_elf_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-sparc.c (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-spu.c (spu_elf_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-v850.c (v850_elf_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-vax.c (reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-xc16x.c (xc16x_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-xstormy16.c (xstormy16_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf32-xtensa.c (elf_xtensa_reloc_name_lookup): New function. (bfd_elf32_bfd_reloc_name_lookup): Define. * elf64-alpha.c (elf64_alpha_bfd_reloc_name_lookup): New function. (bfd_elf64_bfd_reloc_name_lookup): Define. * elf64-gen.c (bfd_elf64_bfd_reloc_name_lookup): Define. * elf64-hppa.c (bfd_elf64_bfd_reloc_name_lookup): Define. * elf64-mips.c (bfd_elf64_bfd_reloc_name_lookup): New function. * elf64-mmix.c (bfd_elf64_bfd_reloc_name_lookup): New function. * elf64-ppc.c (ppc64_elf_reloc_name_lookup): New function. (bfd_elf64_bfd_reloc_name_lookup): Define. * elf64-s390.c (elf_s390_reloc_name_lookup): New function. (bfd_elf64_bfd_reloc_name_lookup): Define. * elf64-sh64.c (sh_elf64_reloc_name_lookup): New function. (bfd_elf64_bfd_reloc_name_lookup): Define. * elf64-sparc.c (bfd_elf64_bfd_reloc_name_lookup): Define. * elf64-x86-64.c (elf64_x86_64_reloc_name_lookup): New function. (bfd_elf64_bfd_reloc_name_lookup): Define. * elfn32-mips.c (bfd_elf32_bfd_reloc_name_lookup): New function. * elfxx-ia64.c (elfNN_ia64_reloc_name_lookup): New function. (bfd_elfNN_bfd_reloc_name_lookup): Define. * elfxx-sparc.c (_bfd_sparc_elf_reloc_name_lookup): New function. * elfxx-sparc.h (_bfd_sparc_elf_reloc_name_lookup): Declare. * i386msdos.c (msdos_bfd_reloc_name_lookup): Define. * i386os9k.c (aout_32_bfd_reloc_name_lookup): Define. * ieee.c (ieee_bfd_reloc_name_lookup): Define. * libaout.h (NAME (aout, reloc_name_lookup)): Declare. * libbfd-in.h (_bfd_norelocs_bfd_reloc_name_lookup): Declare. * mipsbsd.c (MY_bfd_reloc_name_lookup): Define. (MY(reloc_type_lookup)): Rename from MY(reloc_howto_type_lookup). (MY(reloc_name_lookup)): New function. * nlm-target.h (nlm_bfd_reloc_name_lookup): Define. * oasys.c (oasys_bfd_reloc_name_lookup): Define. * pdp11.c (NAME (aout, reloc_name_lookup)): New function. * pe-mips.c (coff_mips_reloc_name_lookup): New function. (coff_bfd_reloc_name_lookup): Define. * reloc.c (bfd_reloc_name_lookup): New function. * riscix.c (riscix_reloc_name_lookup): New function. (MY_bfd_reloc_name_lookup): Define. * som.c (som_bfd_reloc_name_lookup): New function. * targets.c (struct bfd_target): Add reloc_name_lookup. (BFD_JUMP_TABLE_RELOCS): Add NAME##_bfd_reloc_name_lookup. * versados.c (versados_bfd_reloc_name_lookup): Define. * vms.c (vms_bfd_reloc_name_lookup): New function. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate.
2007-03-26 20:23:03 +08:00
{
unsigned int i;
for (i = 0;
i < sizeof (ia64_howto_table) / sizeof (ia64_howto_table[0]);
i++)
if (ia64_howto_table[i].name != NULL
&& strcasecmp (ia64_howto_table[i].name, r_name) == 0)
return &ia64_howto_table[i];
return NULL;
}
#define BTYPE_SHIFT 6
#define Y_SHIFT 26
#define X6_SHIFT 27
#define X4_SHIFT 27
#define X3_SHIFT 33
#define X2_SHIFT 31
#define X_SHIFT 33
#define OPCODE_SHIFT 37
#define OPCODE_BITS (0xfLL << OPCODE_SHIFT)
#define X6_BITS (0x3fLL << X6_SHIFT)
#define X4_BITS (0xfLL << X4_SHIFT)
#define X3_BITS (0x7LL << X3_SHIFT)
#define X2_BITS (0x3LL << X2_SHIFT)
#define X_BITS (0x1LL << X_SHIFT)
#define Y_BITS (0x1LL << Y_SHIFT)
#define BTYPE_BITS (0x7LL << BTYPE_SHIFT)
#define PREDICATE_BITS (0x3fLL)
#define IS_NOP_B(i) \
(((i) & (OPCODE_BITS | X6_BITS)) == (2LL << OPCODE_SHIFT))
#define IS_NOP_F(i) \
(((i) & (OPCODE_BITS | X_BITS | X6_BITS | Y_BITS)) \
== (0x1LL << X6_SHIFT))
#define IS_NOP_I(i) \
(((i) & (OPCODE_BITS | X3_BITS | X6_BITS | Y_BITS)) \
== (0x1LL << X6_SHIFT))
#define IS_NOP_M(i) \
(((i) & (OPCODE_BITS | X3_BITS | X2_BITS | X4_BITS | Y_BITS)) \
== (0x1LL << X4_SHIFT))
#define IS_BR_COND(i) \
(((i) & (OPCODE_BITS | BTYPE_BITS)) == (0x4LL << OPCODE_SHIFT))
#define IS_BR_CALL(i) \
(((i) & OPCODE_BITS) == (0x5LL << OPCODE_SHIFT))
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
bfd_boolean
ia64_elf_relax_br (bfd_byte *contents, bfd_vma off)
{
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
unsigned int template_val, mlx;
bfd_vma t0, t1, s0, s1, s2, br_code;
long br_slot;
bfd_byte *hit_addr;
hit_addr = (bfd_byte *) (contents + off);
br_slot = (intptr_t) hit_addr & 0x3;
hit_addr -= br_slot;
t0 = bfd_getl64 (hit_addr + 0);
t1 = bfd_getl64 (hit_addr + 8);
/* Check if we can turn br into brl. A label is always at the start
of the bundle. Even if there are predicates on NOPs, we still
perform this optimization. */
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
template_val = t0 & 0x1e;
s0 = (t0 >> 5) & 0x1ffffffffffLL;
s1 = ((t0 >> 46) | (t1 << 18)) & 0x1ffffffffffLL;
s2 = (t1 >> 23) & 0x1ffffffffffLL;
switch (br_slot)
{
case 0:
/* Check if slot 1 and slot 2 are NOPs. Possible template is
BBB. We only need to check nop.b. */
if (!(IS_NOP_B (s1) && IS_NOP_B (s2)))
return FALSE;
br_code = s0;
break;
case 1:
/* Check if slot 2 is NOP. Possible templates are MBB and BBB.
For BBB, slot 0 also has to be nop.b. */
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
if (!((template_val == 0x12 /* MBB */
&& IS_NOP_B (s2))
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
|| (template_val == 0x16 /* BBB */
&& IS_NOP_B (s0)
&& IS_NOP_B (s2))))
return FALSE;
br_code = s1;
break;
case 2:
/* Check if slot 1 is NOP. Possible templates are MIB, MBB, BBB,
MMB and MFB. For BBB, slot 0 also has to be nop.b. */
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
if (!((template_val == 0x10 /* MIB */
&& IS_NOP_I (s1))
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
|| (template_val == 0x12 /* MBB */
&& IS_NOP_B (s1))
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
|| (template_val == 0x16 /* BBB */
&& IS_NOP_B (s0)
&& IS_NOP_B (s1))
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
|| (template_val == 0x18 /* MMB */
&& IS_NOP_M (s1))
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
|| (template_val == 0x1c /* MFB */
&& IS_NOP_F (s1))))
return FALSE;
br_code = s2;
break;
default:
/* It should never happen. */
abort ();
}
/* We can turn br.cond/br.call into brl.cond/brl.call. */
if (!(IS_BR_COND (br_code) || IS_BR_CALL (br_code)))
return FALSE;
/* Turn br into brl by setting bit 40. */
br_code |= 0x1LL << 40;
/* Turn the old bundle into a MLX bundle with the same stop-bit
variety. */
if (t0 & 0x1)
mlx = 0x5;
else
mlx = 0x4;
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
if (template_val == 0x16)
{
/* For BBB, we need to put nop.m in slot 0. We keep the original
predicate only if slot 0 isn't br. */
if (br_slot == 0)
t0 = 0LL;
else
t0 &= PREDICATE_BITS << 5;
t0 |= 0x1LL << (X4_SHIFT + 5);
}
else
{
/* Keep the original instruction in slot 0. */
t0 &= 0x1ffffffffffLL << 5;
}
t0 |= mlx;
/* Put brl in slot 1. */
t1 = br_code << 23;
bfd_putl64 (t0, hit_addr);
bfd_putl64 (t1, hit_addr + 8);
return TRUE;
}
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
void
ia64_elf_relax_brl (bfd_byte *contents, bfd_vma off)
{
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
int template_val;
bfd_byte *hit_addr;
bfd_vma t0, t1, i0, i1, i2;
hit_addr = (bfd_byte *) (contents + off);
hit_addr -= (intptr_t) hit_addr & 0x3;
t0 = bfd_getl64 (hit_addr);
t1 = bfd_getl64 (hit_addr + 8);
/* Keep the instruction in slot 0. */
i0 = (t0 >> 5) & 0x1ffffffffffLL;
/* Use nop.b for slot 1. */
i1 = 0x4000000000LL;
/* For slot 2, turn brl into br by masking out bit 40. */
i2 = (t1 >> 23) & 0x0ffffffffffLL;
/* Turn a MLX bundle into a MBB bundle with the same stop-bit
variety. */
if (t0 & 0x1)
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
template_val = 0x13;
else
Updated sources to avoid using the identifier name "new", which is a keyword in c++. * bfd/aoutx.h (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol. * bfd/coffgen.c (coff_make_empty_symbol) (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. * bfd/cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable new to new_insn. * bfd/doc/chew.c (newentry, add_intrinsic): Rename variable new to new_d. * bfd/ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new to new_symbol. * bfd/elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument new to new_reloc. * bfd/hash.c (bfd_hash_lookup): Rename variable new to new_string. * bfd/ieee.c (ieee_make_empty_symbol): Rename variable new to new_symbol. * bfd/linker.c (bfd_new_link_order): Rename variable new to new_lo. * bfd/mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to symbol. * bfd/oasys.c (oasys_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/pdp11.c (NAME (aout, make_empty_symbol)): Rename variable new to new_symbol_type. * bfd/plugin.c (bfd_plugin_make_empty_symbol): Rename variable new to new_symbol. * bfd/rs6000-core.c (CoreHdr, VmInfo): Rename union member new to new_dump. (read_hdr, rs6000coff_core_p) (rs6000coff_core_file_matches_executable_p) (rs6000coff_core_file_failing_command) (rs6000coff_core_file_failing_signal): Updated function to use new union member name. * bfd/som.c (som_make_empty_symbol): Rename variable new to new_symbol_type. * bfd/syms.c (_bfd_generic_make_empty_symbol): Rename variable new to new_symbol. * bfd/tekhex.c (first_phase, tekhex_make_empty_symbol): Rename variable new to new_symbol. * binutils/nlmconv.c (main): Rename variable new to new_name. * gas/config/tc-arm.c (insert_reg_alias): Rename variable new to new_reg. * gas/config/tc-dlx.c (parse_operand): Rename variable new to new_pos. * gas/config/tc-ia64.c (ia64_gen_real_reloc_type): Rename variable new to newr. * gas/config/tc-mcore.c (parse_exp, parse_imm): Rename variable new to new_pointer. * gas/config/tc-microblaze.c (parse_exp, parse_imm, check_got): Change name from new to new_pointer. * gas/config/tc-or32.c (parse_operand): Rename variable new to new_pointer. * gas/config/tc-pdp11.c (md_assemble): Rename variable new to new_pointer. * gas/config/tc-pj.c (alias): Change argument new to new_name. * gas/config/tc-score.c (s3_build_score_ops_hsh): Rename variable new to new_opcode. (s3_build_dependency_insn_hsh) Rename variable new to new_i2n. (s3_convert): Rename variables old and new to r_old and r_new. * gas/config/tc-score7.c (s7_build_score_ops_hsh): Rename variable new to new_opcode. (s7_build_dependency_insn_hsh): Rename variable new to new_i2d. (s7_b32_relax_to_b16, s7_convert_frag): Rename variables old and new to r_old and r_new. * gas/config/tc-sh.c (parse_exp): Rename variable new to new_pointer. * gas/config/tc-sh64.c (shmedia_parse_exp): Rename variable new to new_pointer. * gas/config/tc-tic4x.c (tic4x_operand_parse): Rename variable new to new_pointer. * gas/config/tc-z8k.c (parse_exp): Rename variable new to new_pointer. * gas/listing.c (listing_newline): Rename variable new to new_i. * ld/ldexp.c (exp_intop, exp_bigintop, exp_relop, exp_binop) (exp_trinop, exp_unop, exp_nameop, exp_assop): Rename variable new to new_e. * ld/ldfile.c (ldfile_add_library_path): Rename variable new to new_dirs. (ldfile_add_arch): Rename variable new to new_arch. * ld/ldlang.c (new_statement, lang_final, lang_add_wild) (lang_target, lang_add_fill, lang_add_data, lang_add_assignment) (lang_add_insert): Rename variable new to new_stmt. (new_afile): Added missing cast. (lang_memory_region_lookup): Rename variable new to new_region. (init_os): Rename variable new to new_userdata. (lang_add_section): Rename variable new to new_section. (ldlang_add_undef): Rename variable new to new_undef. (realsymbol): Rename variable new to new_name. * opcodes/z8kgen.c (internal, gas): Rename variable new to new_op. Updated sources to avoid using the identifier name "template", which is a keyword in c++. * bfd/elf32-arm.c (struct stub_def): Rename member template to template_sequence. (arm_build_one_stub, find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): Rename variable template to template_sequence. * bfd/elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): Rename variable template to template_val. * gas/config/tc-arm.c (struct asm_cond, struct asm_psr, struct asm_barrier_opt): Change member template to template_name. (md_begin): Update code to reflect new member names. * gas/config/tc-i386.c (struct templates, struct _i386_insn) (match_template, cpu_flags_match, match_reg_size, match_mem_size) (operand_size_match, md_begin, i386_print_statistics, pi) (build_vex_prefix, md_assemble, parse_insn, optimize_imm) (optimize_disp): Updated code to use new names. (parse_insn): Added casts. * gas/config/tc-ia64.c (dot_template, emit_one_bundle): Updated code to use new names. * gas/config/tc-score.c (struct s3_asm_opcode): Renamed member template to template_name. (s3_parse_16_32_inst, s3_parse_48_inst, s3_do_macro_ldst_label, s3_build_score_ops_hsh): Update code to use new names. * gas/config/tc-score7.c (struct s7_asm_opcode): Renamed member template to template_name. (s7_parse_16_32_inst, s7_do_macro_ldst_label, s7_build_score_ops_hsh): Update code to use new names. * gas/config/tc-tic30.c (md_begin, struct tic30_insn) (md_assemble): Update code to use new names. * gas/config/tc-tic54x.c (struct _tic54x_insn, md_begin) (optimize_insn, tic54x_parse_insn, next_line_shows_parallel): Update code to use new names. * include/opcode/tic30.h (template): Rename type template to insn_template. Updated code to use new name. * include/opcode/tic54x.h (template): Rename type template to insn_template. * opcodes/cris-dis.c (bytes_to_skip): Update code to use new name. * opcodes/i386-dis.c (putop): Update code to use new name. * opcodes/i386-gen.c (process_i386_opcodes): Update code to use new name. * opcodes/i386-opc.h (struct template): Rename struct template to insn_template. Update code accordingly. * opcodes/i386-tbl.h (i386_optab): Update type to use new name. * opcodes/ia64-dis.c (print_insn_ia64): Rename variable template to template_val. * opcodes/tic30-dis.c (struct instruction, get_tic30_instruction): Update code to use new name. * opcodes/tic54x-dis.c (has_lkaddr, get_insn_size) (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn): Update code to use new name. * opcodes/tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab): Update type to new name.
2009-08-30 06:11:02 +08:00
template_val = 0x12;
t0 = (i1 << 46) | (i0 << 5) | template_val;
t1 = (i2 << 23) | (i1 >> 18);
bfd_putl64 (t0, hit_addr);
bfd_putl64 (t1, hit_addr + 8);
}
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
void
ia64_elf_relax_ldxmov (bfd_byte *contents, bfd_vma off)
{
int shift, r1, r3;
bfd_vma dword, insn;
switch ((int)off & 0x3)
{
case 0: shift = 5; break;
case 1: shift = 14; off += 3; break;
case 2: shift = 23; off += 6; break;
default:
abort ();
}
dword = bfd_getl64 (contents + off);
insn = (dword >> shift) & 0x1ffffffffffLL;
r1 = (insn >> 6) & 127;
r3 = (insn >> 20) & 127;
if (r1 == r3)
insn = 0x8000000; /* nop */
else
insn = (insn & 0x7f01fff) | 0x10800000000LL; /* (qp) mov r1 = r3 */
dword &= ~(0x1ffffffffffLL << shift);
dword |= (insn << shift);
bfd_putl64 (dword, contents + off);
}
2000-04-22 04:22:24 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
bfd_reloc_status_type
ia64_elf_install_value (bfd_byte *hit_addr, bfd_vma v, unsigned int r_type)
{
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
const struct ia64_operand *op;
int bigendian = 0, shift = 0;
bfd_vma t0, t1, dword;
ia64_insn insn;
enum ia64_opnd opnd;
const char *err;
size_t size = 8;
#ifdef BFD_HOST_U_64_BIT
BFD_HOST_U_64_BIT val = (BFD_HOST_U_64_BIT) v;
#else
bfd_vma val = v;
#endif
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
opnd = IA64_OPND_NIL;
switch (r_type)
{
case R_IA64_NONE:
case R_IA64_LDXMOV:
return bfd_reloc_ok;
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
/* Instruction relocations. */
2000-04-22 04:22:24 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case R_IA64_IMM14:
case R_IA64_TPREL14:
case R_IA64_DTPREL14:
opnd = IA64_OPND_IMM14;
2000-04-22 04:22:24 +08:00
break;
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case R_IA64_PCREL21F: opnd = IA64_OPND_TGT25; break;
case R_IA64_PCREL21M: opnd = IA64_OPND_TGT25b; break;
case R_IA64_PCREL60B: opnd = IA64_OPND_TGT64; break;
case R_IA64_PCREL21B:
case R_IA64_PCREL21BI:
opnd = IA64_OPND_TGT25c;
2000-04-22 04:22:24 +08:00
break;
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case R_IA64_IMM22:
case R_IA64_GPREL22:
case R_IA64_LTOFF22:
case R_IA64_LTOFF22X:
case R_IA64_PLTOFF22:
case R_IA64_PCREL22:
case R_IA64_LTOFF_FPTR22:
case R_IA64_TPREL22:
case R_IA64_DTPREL22:
case R_IA64_LTOFF_TPREL22:
case R_IA64_LTOFF_DTPMOD22:
case R_IA64_LTOFF_DTPREL22:
opnd = IA64_OPND_IMM22;
break;
2000-04-22 04:22:24 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case R_IA64_IMM64:
case R_IA64_GPREL64I:
case R_IA64_LTOFF64I:
case R_IA64_PLTOFF64I:
case R_IA64_PCREL64I:
case R_IA64_FPTR64I:
case R_IA64_LTOFF_FPTR64I:
case R_IA64_TPREL64I:
case R_IA64_DTPREL64I:
opnd = IA64_OPND_IMMU64;
break;
2000-04-22 04:22:24 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
/* Data relocations. */
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case R_IA64_DIR32MSB:
case R_IA64_GPREL32MSB:
case R_IA64_FPTR32MSB:
case R_IA64_PCREL32MSB:
case R_IA64_LTOFF_FPTR32MSB:
case R_IA64_SEGREL32MSB:
case R_IA64_SECREL32MSB:
case R_IA64_LTV32MSB:
case R_IA64_DTPREL32MSB:
size = 4; bigendian = 1;
break;
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case R_IA64_DIR32LSB:
case R_IA64_GPREL32LSB:
case R_IA64_FPTR32LSB:
case R_IA64_PCREL32LSB:
case R_IA64_LTOFF_FPTR32LSB:
case R_IA64_SEGREL32LSB:
case R_IA64_SECREL32LSB:
case R_IA64_LTV32LSB:
case R_IA64_DTPREL32LSB:
size = 4; bigendian = 0;
break;
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case R_IA64_DIR64MSB:
case R_IA64_GPREL64MSB:
case R_IA64_PLTOFF64MSB:
case R_IA64_FPTR64MSB:
case R_IA64_PCREL64MSB:
case R_IA64_LTOFF_FPTR64MSB:
case R_IA64_SEGREL64MSB:
case R_IA64_SECREL64MSB:
case R_IA64_LTV64MSB:
case R_IA64_TPREL64MSB:
case R_IA64_DTPMOD64MSB:
case R_IA64_DTPREL64MSB:
size = 8; bigendian = 1;
break;
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case R_IA64_DIR64LSB:
case R_IA64_GPREL64LSB:
case R_IA64_PLTOFF64LSB:
case R_IA64_FPTR64LSB:
case R_IA64_PCREL64LSB:
case R_IA64_LTOFF_FPTR64LSB:
case R_IA64_SEGREL64LSB:
case R_IA64_SECREL64LSB:
case R_IA64_LTV64LSB:
case R_IA64_TPREL64LSB:
case R_IA64_DTPMOD64LSB:
case R_IA64_DTPREL64LSB:
size = 8; bigendian = 0;
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
break;
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
/* Unsupported / Dynamic relocations. */
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
default:
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
return bfd_reloc_notsupported;
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
}
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
switch (opnd)
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
{
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case IA64_OPND_IMMU64:
hit_addr -= (intptr_t) hit_addr & 0x3;
t0 = bfd_getl64 (hit_addr);
t1 = bfd_getl64 (hit_addr + 8);
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
/* tmpl/s: bits 0.. 5 in t0
slot 0: bits 5..45 in t0
slot 1: bits 46..63 in t0, bits 0..22 in t1
slot 2: bits 23..63 in t1 */
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
/* First, clear the bits that form the 64 bit constant. */
t0 &= ~(0x3ffffLL << 46);
t1 &= ~(0x7fffffLL
| (( (0x07fLL << 13) | (0x1ffLL << 27)
| (0x01fLL << 22) | (0x001LL << 21)
| (0x001LL << 36)) << 23));
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
t0 |= ((val >> 22) & 0x03ffffLL) << 46; /* 18 lsbs of imm41 */
t1 |= ((val >> 40) & 0x7fffffLL) << 0; /* 23 msbs of imm41 */
t1 |= ( (((val >> 0) & 0x07f) << 13) /* imm7b */
| (((val >> 7) & 0x1ff) << 27) /* imm9d */
| (((val >> 16) & 0x01f) << 22) /* imm5c */
| (((val >> 21) & 0x001) << 21) /* ic */
| (((val >> 63) & 0x001) << 36)) << 23; /* i */
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
bfd_putl64 (t0, hit_addr);
bfd_putl64 (t1, hit_addr + 8);
break;
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case IA64_OPND_TGT64:
hit_addr -= (intptr_t) hit_addr & 0x3;
t0 = bfd_getl64 (hit_addr);
t1 = bfd_getl64 (hit_addr + 8);
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
/* tmpl/s: bits 0.. 5 in t0
slot 0: bits 5..45 in t0
slot 1: bits 46..63 in t0, bits 0..22 in t1
slot 2: bits 23..63 in t1 */
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
/* First, clear the bits that form the 64 bit constant. */
t0 &= ~(0x3ffffLL << 46);
t1 &= ~(0x7fffffLL
| ((1LL << 36 | 0xfffffLL << 13) << 23));
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
val >>= 4;
t0 |= ((val >> 20) & 0xffffLL) << 2 << 46; /* 16 lsbs of imm39 */
t1 |= ((val >> 36) & 0x7fffffLL) << 0; /* 23 msbs of imm39 */
t1 |= ((((val >> 0) & 0xfffffLL) << 13) /* imm20b */
| (((val >> 59) & 0x1LL) << 36)) << 23; /* i */
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
bfd_putl64 (t0, hit_addr);
bfd_putl64 (t1, hit_addr + 8);
break;
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
default:
switch ((intptr_t) hit_addr & 0x3)
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
{
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case 0: shift = 5; break;
case 1: shift = 14; hit_addr += 3; break;
case 2: shift = 23; hit_addr += 6; break;
case 3: return bfd_reloc_notsupported; /* shouldn't happen... */
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
}
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
dword = bfd_getl64 (hit_addr);
insn = (dword >> shift) & 0x1ffffffffffLL;
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
op = elf64_ia64_operands + opnd;
err = (*op->insert) (op, val, &insn);
if (err)
return bfd_reloc_overflow;
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
dword &= ~(0x1ffffffffffLL << shift);
dword |= (insn << shift);
bfd_putl64 (dword, hit_addr);
break;
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
case IA64_OPND_NIL:
/* A data relocation. */
if (bigendian)
if (size == 4)
bfd_putb32 (val, hit_addr);
else
bfd_putb64 (val, hit_addr);
else
if (size == 4)
bfd_putl32 (val, hit_addr);
else
bfd_putl64 (val, hit_addr);
break;
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
}
2011-05-25 Tristan Gingold <gingold@adacore.com> * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c (elf32-ia64.c): Created from elfnn-ia64.c (elf64-ia64.c): Likewise. * elfxx-ia64.h: New file. * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following functions.Includes elfxx-ia64.h. (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. (IA64_HOWTO): Adjust. (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. (elfNN_ia64_reloc_type_lookup): Renames to ia64_elf_reloc_type_lookup. Make it public. Adjust calls. (elfNN_ia64_reloc_name_lookup): Renames to ia64_elf_reloc_name_lookup. Make it public. (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it public. (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. Move it and make it public. Move prototype to elfxx-ia64.h (elfNN_ia64_install_value): Renames to ia64_elf_install_value. Move prototype to elfxx-ia64.h * elfnn-ia64.c: New file, split from elfxx-ia64.c. (elfNN_ia64_info_to_howto): Adjust calls. (elfNN_ia64_relax_section): Adjust calls. (count_dyn_reloc): Fix typo. (elfNN_ia64_relocate_section): Adjust calls. (elfNN_ia64_finish_dynamic_symbol): Likewise. (bfd_elfNN_bfd_reloc_type_lookup) (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros.
2011-05-25 20:02:16 +08:00
return bfd_reloc_ok;
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1): New macros. Minor reformatting. * bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo (BFD32_BACKENDS_CFILES): Add new file vmsutil.c (vmsutil.lo): Add dependency rule * bfd/Makefile.in: Regenerate * bfd/config.bfd (ia64*-*-*vms*): Add case. * bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case. * bfd/configure: Regenerate * bfd/vmsutil.[ch]: New files * bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of attr to bfd_vma. * bfd/elfxx-ia64.c (elfNN_vms_post_process_headers, elfNN_vms_section_processing, elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, elfNN_vms_object_p): New functions * bfd/targets.c (bfd_elf64_ia64_vms_vec): New target. * gas/configure.tgt(ia64-*-*vms*): New target. * gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern. * gas/tc.h (md_number_to_chars): Declare iff undefined. * gas/config/obj-elf.c (obj_elf_change_section): Change type of arg attr to bfd_vma. (obj_elf_parse_section_letters): Return a bfd_vma. Change type of variables attr, md_attr to bfd_vma. (obj_elf_section_word): Likewise. (obj_elf_section): Change type of variable attr to bfd_vma * gas/config/obj-elf.h (obj_elf_change_section): Change type of arg attr to bfd_vma * gas/config/tc-ia64.c (bfdver.h,time.h): Include. (ia64_elf_section_letter): Now returns a bfd_vma. Handle VMS specific attributes. (ia64_elf_section_flags): Arg attr now a bfd_vma. (ia64_init): Don't turn on dependency checking for VMS. (ia64_target_format): Check for VMS flag bit. (do_alias): Hande decc$ functions. (get_vms_time): New function. (ia64_vms_note): New function. * gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma. (ia64_elf_section_flags): Arg attr now a bfd_vma. (tc_init_after_args): Define for VMS. * gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma. (alpha_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-alpha.h: Likewise. * gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma. (x86_64_section_word): Return a bfd_vma. * gas/config/tc-i386.h: Likewise. * gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ip2k.h: Likewise. * gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma. (mep_elf_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-mep.h: Likewise. * gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma. (ppc_section_word): Return a bfd_vma. (ppc_section_flags): Change type of arg attr to bfd_vma. * gas/config/tc-ppc.h: Likewise. * gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR, DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME): New file with new macros * gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new macros.
2009-01-15 20:42:52 +08:00
}