/* IA-64 support for 64-bit ELF
- Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1998-2024 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of BFD, the Binary File Descriptor library.
#include "elf/ia64.h"
#include "objalloc.h"
#include "hashtab.h"
-#include "bfd_stdint.h"
#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.
+ 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.
+ 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.
+ 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.
+ 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. */
+ does not require dynamic relocations. */
/* ia64-specific relocation. */
done in elfNN_ia64_final_link_relocate. */
static bfd_reloc_status_type
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)
+ asymbol *sym ATTRIBUTE_UNUSED,
+ void *data ATTRIBUTE_UNUSED, asection *input_section,
+ bfd *output_bfd, char **error_message)
{
if (output_bfd)
{
#define IA64_HOWTO(TYPE, NAME, SIZE, PCREL, IN) \
HOWTO (TYPE, 0, SIZE, 0, PCREL, 0, complain_overflow_signed, \
- ia64_elf_reloc, NAME, FALSE, 0, -1, IN)
+ ia64_elf_reloc, NAME, false, 0, -1, IN)
/* 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),
+ IA64_HOWTO (R_IA64_NONE, "NONE", 0, false, true),
+
+ IA64_HOWTO (R_IA64_IMM14, "IMM14", 1, false, true),
+ IA64_HOWTO (R_IA64_IMM22, "IMM22", 1, false, true),
+ IA64_HOWTO (R_IA64_IMM64, "IMM64", 1, false, true),
+ IA64_HOWTO (R_IA64_DIR32MSB, "DIR32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_DIR32LSB, "DIR32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_DIR64MSB, "DIR64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_DIR64LSB, "DIR64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_GPREL22, "GPREL22", 1, false, true),
+ IA64_HOWTO (R_IA64_GPREL64I, "GPREL64I", 1, false, true),
+ IA64_HOWTO (R_IA64_GPREL32MSB, "GPREL32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_GPREL32LSB, "GPREL32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_GPREL64MSB, "GPREL64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_GPREL64LSB, "GPREL64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_LTOFF22, "LTOFF22", 1, false, true),
+ IA64_HOWTO (R_IA64_LTOFF64I, "LTOFF64I", 1, false, true),
+
+ IA64_HOWTO (R_IA64_PLTOFF22, "PLTOFF22", 1, false, true),
+ IA64_HOWTO (R_IA64_PLTOFF64I, "PLTOFF64I", 1, false, true),
+ IA64_HOWTO (R_IA64_PLTOFF64MSB, "PLTOFF64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_PLTOFF64LSB, "PLTOFF64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_FPTR64I, "FPTR64I", 1, false, true),
+ IA64_HOWTO (R_IA64_FPTR32MSB, "FPTR32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_FPTR32LSB, "FPTR32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_FPTR64MSB, "FPTR64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_FPTR64LSB, "FPTR64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_PCREL60B, "PCREL60B", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL21B, "PCREL21B", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL21M, "PCREL21M", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL21F, "PCREL21F", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL32MSB, "PCREL32MSB", 4, true, true),
+ IA64_HOWTO (R_IA64_PCREL32LSB, "PCREL32LSB", 4, true, true),
+ IA64_HOWTO (R_IA64_PCREL64MSB, "PCREL64MSB", 8, true, true),
+ IA64_HOWTO (R_IA64_PCREL64LSB, "PCREL64LSB", 8, true, true),
+
+ IA64_HOWTO (R_IA64_LTOFF_FPTR22, "LTOFF_FPTR22", 1, false, true),
+ IA64_HOWTO (R_IA64_LTOFF_FPTR64I, "LTOFF_FPTR64I", 1, false, true),
+ IA64_HOWTO (R_IA64_LTOFF_FPTR32MSB, "LTOFF_FPTR32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_LTOFF_FPTR32LSB, "LTOFF_FPTR32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_LTOFF_FPTR64MSB, "LTOFF_FPTR64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_LTOFF_FPTR64LSB, "LTOFF_FPTR64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_SEGREL32MSB, "SEGREL32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_SEGREL32LSB, "SEGREL32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_SEGREL64MSB, "SEGREL64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_SEGREL64LSB, "SEGREL64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_SECREL32MSB, "SECREL32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_SECREL32LSB, "SECREL32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_SECREL64MSB, "SECREL64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_SECREL64LSB, "SECREL64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_REL32MSB, "REL32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_REL32LSB, "REL32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_REL64MSB, "REL64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_REL64LSB, "REL64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_LTV32MSB, "LTV32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_LTV32LSB, "LTV32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_LTV64MSB, "LTV64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_LTV64LSB, "LTV64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_PCREL21BI, "PCREL21BI", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL22, "PCREL22", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL64I, "PCREL64I", 1, true, true),
+
+ IA64_HOWTO (R_IA64_IPLTMSB, "IPLTMSB", 8, false, true),
+ IA64_HOWTO (R_IA64_IPLTLSB, "IPLTLSB", 8, false, true),
+ IA64_HOWTO (R_IA64_COPY, "COPY", 8, false, true),
+ IA64_HOWTO (R_IA64_LTOFF22X, "LTOFF22X", 1, false, true),
+ IA64_HOWTO (R_IA64_LDXMOV, "LDXMOV", 1, false, true),
+
+ IA64_HOWTO (R_IA64_TPREL14, "TPREL14", 1, false, false),
+ IA64_HOWTO (R_IA64_TPREL22, "TPREL22", 1, false, false),
+ IA64_HOWTO (R_IA64_TPREL64I, "TPREL64I", 1, false, false),
+ IA64_HOWTO (R_IA64_TPREL64MSB, "TPREL64MSB", 8, false, false),
+ IA64_HOWTO (R_IA64_TPREL64LSB, "TPREL64LSB", 8, false, false),
+ IA64_HOWTO (R_IA64_LTOFF_TPREL22, "LTOFF_TPREL22", 1, false, false),
+
+ IA64_HOWTO (R_IA64_DTPMOD64MSB, "DTPMOD64MSB", 8, false, false),
+ IA64_HOWTO (R_IA64_DTPMOD64LSB, "DTPMOD64LSB", 8, false, false),
+ IA64_HOWTO (R_IA64_LTOFF_DTPMOD22, "LTOFF_DTPMOD22", 1, false, false),
+
+ IA64_HOWTO (R_IA64_DTPREL14, "DTPREL14", 1, false, false),
+ IA64_HOWTO (R_IA64_DTPREL22, "DTPREL22", 1, false, false),
+ IA64_HOWTO (R_IA64_DTPREL64I, "DTPREL64I", 1, false, false),
+ IA64_HOWTO (R_IA64_DTPREL32MSB, "DTPREL32MSB", 4, false, false),
+ IA64_HOWTO (R_IA64_DTPREL32LSB, "DTPREL32LSB", 4, false, false),
+ IA64_HOWTO (R_IA64_DTPREL64MSB, "DTPREL64MSB", 8, false, false),
+ IA64_HOWTO (R_IA64_DTPREL64LSB, "DTPREL64LSB", 8, false, false),
+ IA64_HOWTO (R_IA64_LTOFF_DTPREL22, "LTOFF_DTPREL22", 1, false, false),
};
static unsigned char elf_code_to_howto_index[R_IA64_MAX_RELOC_CODE + 1];
reloc_howto_type *
ia64_elf_lookup_howto (unsigned int rtype)
{
- static int inited = 0;
+ static bool inited = false;
int i;
if (!inited)
{
- inited = 1;
+ inited = true;
memset (elf_code_to_howto_index, 0xff, sizeof (elf_code_to_howto_index));
for (i = 0; i < NELEMS (ia64_howto_table); ++i)
}
if (rtype > R_IA64_MAX_RELOC_CODE)
- return 0;
+ return NULL;
i = elf_code_to_howto_index[rtype];
if (i >= NELEMS (ia64_howto_table))
- return 0;
+ return NULL;
return ia64_howto_table + i;
}
-reloc_howto_type*
-ia64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
- bfd_reloc_code_real_type bfd_code)
+reloc_howto_type *
+ia64_elf_reloc_type_lookup (bfd *abfd,
+ bfd_reloc_code_real_type bfd_code)
{
unsigned int rtype;
case BFD_RELOC_IA64_DTPREL64LSB: rtype = R_IA64_DTPREL64LSB; break;
case BFD_RELOC_IA64_LTOFF_DTPREL22: rtype = R_IA64_LTOFF_DTPREL22; break;
- default: return 0;
+ default:
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
+ abfd, (int) bfd_code);
+ bfd_set_error (bfd_error_bad_value);
+ return NULL;
}
return ia64_elf_lookup_howto (rtype);
}
reloc_howto_type *
ia64_elf_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
- const char *r_name)
+ const char *r_name)
{
unsigned int i;
#define IS_BR_CALL(i) \
(((i) & OPCODE_BITS) == (0x5LL << OPCODE_SHIFT))
-bfd_boolean
+bool
ia64_elf_relax_br (bfd_byte *contents, bfd_vma off)
{
unsigned int template_val, mlx;
{
case 0:
/* Check if slot 1 and slot 2 are NOPs. Possible template is
- BBB. We only need to check nop.b. */
+ BBB. We only need to check nop.b. */
if (!(IS_NOP_B (s1) && IS_NOP_B (s2)))
- return FALSE;
+ return false;
br_code = s0;
break;
case 1:
|| (template_val == 0x16 /* BBB */
&& IS_NOP_B (s0)
&& IS_NOP_B (s2))))
- return FALSE;
+ return false;
br_code = s1;
break;
case 2:
&& IS_NOP_M (s1))
|| (template_val == 0x1c /* MFB */
&& IS_NOP_F (s1))))
- return FALSE;
+ return false;
br_code = s2;
break;
default:
/* 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;
+ return false;
/* Turn br into brl by setting bit 40. */
br_code |= 0x1LL << 40;
bfd_putl64 (t0, hit_addr);
bfd_putl64 (t1, hit_addr + 8);
- return TRUE;
+ return true;
}
void
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
+ uint64_t val = v;
opnd = IA64_OPND_NIL;
switch (r_type)
slot 2: bits 23..63 in t1 */
/* First, clear the bits that form the 64 bit constant. */
- t0 &= ~(0x3ffffLL << 46);
+ t0 &= ~(0x3ffffULL << 46);
t1 &= ~(0x7fffffLL
| (( (0x07fLL << 13) | (0x1ffLL << 27)
| (0x01fLL << 22) | (0x001LL << 21)
slot 2: bits 23..63 in t1 */
/* First, clear the bits that form the 64 bit constant. */
- t0 &= ~(0x3ffffLL << 46);
+ t0 &= ~(0x3ffffULL << 46);
t1 &= ~(0x7fffffLL
| ((1LL << 36 | 0xfffffLL << 13) << 23));
if (err)
return bfd_reloc_overflow;
- dword &= ~(0x1ffffffffffLL << shift);
+ dword &= ~(0x1ffffffffffULL << shift);
dword |= (insn << shift);
bfd_putl64 (dword, hit_addr);
break;