aboutsummaryrefslogtreecommitdiff
path: root/bfd/coff-sh.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/coff-sh.c')
-rw-r--r--bfd/coff-sh.c368
1 files changed, 184 insertions, 184 deletions
diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c
index 04ef99b..10d203f 100644
--- a/bfd/coff-sh.c
+++ b/bfd/coff-sh.c
@@ -35,10 +35,10 @@
#include "coff/pe.h"
#ifndef COFF_IMAGE_WITH_PE
-static bfd_boolean sh_align_load_span
+static bool sh_align_load_span
(bfd *, asection *, bfd_byte *,
- bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma),
- void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *);
+ bool (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma),
+ void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bool *);
#define _bfd_sh_align_load_span sh_align_load_span
#endif
@@ -75,7 +75,7 @@ static bfd_boolean sh_align_load_span
/* Return TRUE if this relocation should
appear in the output .reloc section. */
-static bfd_boolean
+static bool
in_reloc_p (bfd * abfd ATTRIBUTE_UNUSED,
reloc_howto_type * howto)
{
@@ -85,13 +85,13 @@ in_reloc_p (bfd * abfd ATTRIBUTE_UNUSED,
static bfd_reloc_status_type
sh_reloc (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-static bfd_boolean
+static bool
sh_relocate_section (bfd *, struct bfd_link_info *, bfd *, asection *,
bfd_byte *, struct internal_reloc *,
struct internal_syment *, asection **);
-static bfd_boolean
+static bool
sh_align_loads (bfd *, asection *, struct internal_reloc *,
- bfd_byte *, bfd_boolean *);
+ bfd_byte *, bool *);
/* The supported relocations. There are a lot of relocations defined
in coff/internal.h which we do not expect to ever see. */
@@ -105,15 +105,15 @@ static reloc_howto_type sh_coff_howtos[] =
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_imm32ce", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
#else
EMPTY_HOWTO (2),
#endif
@@ -129,15 +129,15 @@ static reloc_howto_type sh_coff_howtos[] =
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
8, /* bitsize */
- TRUE, /* pc_relative */
+ true, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_pcdisp8by2", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xff, /* src_mask */
0xff, /* dst_mask */
- TRUE), /* pcrel_offset */
+ true), /* pcrel_offset */
EMPTY_HOWTO (11), /* R_SH_PCDISP8 */
@@ -145,15 +145,15 @@ static reloc_howto_type sh_coff_howtos[] =
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
12, /* bitsize */
- TRUE, /* pc_relative */
+ true, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_pcdisp12by2", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xfff, /* src_mask */
0xfff, /* dst_mask */
- TRUE), /* pcrel_offset */
+ true), /* pcrel_offset */
EMPTY_HOWTO (13),
@@ -161,15 +161,15 @@ static reloc_howto_type sh_coff_howtos[] =
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_imm32", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
EMPTY_HOWTO (15),
#ifdef COFF_WITH_PE
@@ -177,15 +177,15 @@ static reloc_howto_type sh_coff_howtos[] =
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"rva32", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
#else
EMPTY_HOWTO (16), /* R_SH_IMM8 */
#endif
@@ -199,169 +199,169 @@ static reloc_howto_type sh_coff_howtos[] =
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
8, /* bitsize */
- TRUE, /* pc_relative */
+ true, /* pc_relative */
0, /* bitpos */
complain_overflow_unsigned, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_pcrelimm8by2", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xff, /* src_mask */
0xff, /* dst_mask */
- TRUE), /* pcrel_offset */
+ true), /* pcrel_offset */
HOWTO (R_SH_PCRELIMM8BY4, /* type */
2, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
8, /* bitsize */
- TRUE, /* pc_relative */
+ true, /* pc_relative */
0, /* bitpos */
complain_overflow_unsigned, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_pcrelimm8by4", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xff, /* src_mask */
0xff, /* dst_mask */
- TRUE), /* pcrel_offset */
+ true), /* pcrel_offset */
HOWTO (R_SH_IMM16, /* type */
0, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_imm16", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffff, /* src_mask */
0xffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
HOWTO (R_SH_SWITCH16, /* type */
0, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_switch16", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffff, /* src_mask */
0xffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
HOWTO (R_SH_SWITCH32, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_switch32", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
HOWTO (R_SH_USES, /* type */
0, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_uses", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffff, /* src_mask */
0xffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
HOWTO (R_SH_COUNT, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_count", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
HOWTO (R_SH_ALIGN, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_align", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
HOWTO (R_SH_CODE, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_code", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
HOWTO (R_SH_DATA, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_data", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
HOWTO (R_SH_LABEL, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_label", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- FALSE), /* pcrel_offset */
+ false), /* pcrel_offset */
HOWTO (R_SH_SWITCH8, /* type */
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
8, /* bitsize */
- FALSE, /* pc_relative */
+ false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
sh_reloc, /* special_function */
"r_switch8", /* name */
- TRUE, /* partial_inplace */
+ true, /* partial_inplace */
0xff, /* src_mask */
0xff, /* dst_mask */
- FALSE) /* pcrel_offset */
+ false) /* pcrel_offset */
};
#define SH_COFF_HOWTO_COUNT (sizeof sh_coff_howtos / sizeof sh_coff_howtos[0])
@@ -656,7 +656,7 @@ sh_reloc (bfd * abfd,
#include "coffcode.h"
-static bfd_boolean
+static bool
sh_relax_delete_bytes (bfd *, asection *, bfd_vma, int);
/* This function handles relaxing on the SH.
@@ -702,40 +702,40 @@ sh_relax_delete_bytes (bfd *, asection *, bfd_vma, int);
align load and store instructions on four byte boundaries if we
can, by swapping them with one of the adjacent instructions. */
-static bfd_boolean
+static bool
sh_relax_section (bfd *abfd,
asection *sec,
struct bfd_link_info *link_info,
- bfd_boolean *again)
+ bool *again)
{
struct internal_reloc *internal_relocs;
- bfd_boolean have_code;
+ bool have_code;
struct internal_reloc *irel, *irelend;
bfd_byte *contents = NULL;
- *again = FALSE;
+ *again = false;
if (bfd_link_relocatable (link_info)
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0)
- return TRUE;
+ return true;
if (coff_section_data (abfd, sec) == NULL)
{
size_t amt = sizeof (struct coff_section_tdata);
sec->used_by_bfd = bfd_zalloc (abfd, amt);
if (sec->used_by_bfd == NULL)
- return FALSE;
+ return false;
}
internal_relocs = (_bfd_coff_read_internal_relocs
(abfd, sec, link_info->keep_memory,
- (bfd_byte *) NULL, FALSE,
+ (bfd_byte *) NULL, false,
(struct internal_reloc *) NULL));
if (internal_relocs == NULL)
goto error_return;
- have_code = FALSE;
+ have_code = false;
irelend = internal_relocs + sec->reloc_count;
for (irel = internal_relocs; irel < irelend; irel++)
@@ -747,7 +747,7 @@ sh_relax_section (bfd *abfd,
bfd_signed_vma foff;
if (irel->r_type == R_SH_CODE)
- have_code = TRUE;
+ have_code = true;
if (irel->r_type != R_SH_USES)
continue;
@@ -904,12 +904,12 @@ sh_relax_section (bfd *abfd,
the linker is run. */
coff_section_data (abfd, sec)->relocs = internal_relocs;
- coff_section_data (abfd, sec)->keep_relocs = TRUE;
+ coff_section_data (abfd, sec)->keep_relocs = true;
coff_section_data (abfd, sec)->contents = contents;
- coff_section_data (abfd, sec)->keep_contents = TRUE;
+ coff_section_data (abfd, sec)->keep_contents = true;
- obj_coff_keep_syms (abfd) = TRUE;
+ obj_coff_keep_syms (abfd) = true;
/* Replace the jsr with a bsr. */
@@ -965,7 +965,7 @@ sh_relax_section (bfd *abfd,
/* That will change things, so, just in case it permits some
other function call to come within range, we should relax
again. Note that this is not required, and it may be slow. */
- *again = TRUE;
+ *again = true;
/* Now check whether we got a COUNT reloc. */
if (irelcount >= irelend)
@@ -1006,7 +1006,7 @@ sh_relax_section (bfd *abfd,
byte boundaries. */
if (have_code)
{
- bfd_boolean swapped;
+ bool swapped;
/* Get the section contents. */
if (contents == NULL)
@@ -1026,12 +1026,12 @@ sh_relax_section (bfd *abfd,
if (swapped)
{
coff_section_data (abfd, sec)->relocs = internal_relocs;
- coff_section_data (abfd, sec)->keep_relocs = TRUE;
+ coff_section_data (abfd, sec)->keep_relocs = true;
coff_section_data (abfd, sec)->contents = contents;
- coff_section_data (abfd, sec)->keep_contents = TRUE;
+ coff_section_data (abfd, sec)->keep_contents = true;
- obj_coff_keep_syms (abfd) = TRUE;
+ obj_coff_keep_syms (abfd) = true;
}
}
@@ -1053,19 +1053,19 @@ sh_relax_section (bfd *abfd,
coff_section_data (abfd, sec)->contents = contents;
}
- return TRUE;
+ return true;
error_return:
if (internal_relocs != coff_section_data (abfd, sec)->relocs)
free (internal_relocs);
if (contents != coff_section_data (abfd, sec)->contents)
free (contents);
- return FALSE;
+ return false;
}
/* Delete some bytes from a section while relaxing. */
-static bfd_boolean
+static bool
sh_relax_delete_bytes (bfd *abfd,
asection *sec,
bfd_vma addr,
@@ -1127,7 +1127,7 @@ sh_relax_delete_bytes (bfd *abfd,
struct internal_syment sym;
int off, adjust, oinsn;
bfd_signed_vma voff = 0;
- bfd_boolean overflow;
+ bool overflow;
/* Get the new reloc address. */
nraddr = irel->r_vaddr - sec->vma;
@@ -1289,7 +1289,7 @@ sh_relax_delete_bytes (bfd *abfd,
if (adjust != 0)
{
oinsn = insn;
- overflow = FALSE;
+ overflow = false;
switch (irel->r_type)
{
default:
@@ -1300,14 +1300,14 @@ sh_relax_delete_bytes (bfd *abfd,
case R_SH_PCRELIMM8BY2:
insn += adjust / 2;
if ((oinsn & 0xff00) != (insn & 0xff00))
- overflow = TRUE;
+ overflow = true;
bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr);
break;
case R_SH_PCDISP:
insn += adjust / 2;
if ((oinsn & 0xf000) != (insn & 0xf000))
- overflow = TRUE;
+ overflow = true;
bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr);
break;
@@ -1321,21 +1321,21 @@ sh_relax_delete_bytes (bfd *abfd,
++insn;
}
if ((oinsn & 0xff00) != (insn & 0xff00))
- overflow = TRUE;
+ overflow = true;
bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr);
break;
case R_SH_SWITCH8:
voff += adjust;
if (voff < 0 || voff >= 0xff)
- overflow = TRUE;
+ overflow = true;
bfd_put_8 (abfd, (bfd_vma) voff, contents + nraddr);
break;
case R_SH_SWITCH16:
voff += adjust;
if (voff < - 0x8000 || voff >= 0x8000)
- overflow = TRUE;
+ overflow = true;
bfd_put_signed_16 (abfd, (bfd_vma) voff, contents + nraddr);
break;
@@ -1356,7 +1356,7 @@ sh_relax_delete_bytes (bfd *abfd,
(_("%pB: %#" PRIx64 ": fatal: reloc overflow while relaxing"),
abfd, (uint64_t) irel->r_vaddr);
bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ return false;
}
}
@@ -1381,10 +1381,10 @@ sh_relax_delete_bytes (bfd *abfd,
FALSE, we should free them, if we are permitted to, when we
leave sh_coff_relax_section. */
internal_relocs = (_bfd_coff_read_internal_relocs
- (abfd, o, TRUE, (bfd_byte *) NULL, FALSE,
+ (abfd, o, true, (bfd_byte *) NULL, false,
(struct internal_reloc *) NULL));
if (internal_relocs == NULL)
- return FALSE;
+ return false;
ocontents = NULL;
irelscanend = internal_relocs + o->reloc_count;
@@ -1420,7 +1420,7 @@ sh_relax_delete_bytes (bfd *abfd,
else
{
if (!bfd_malloc_and_get_section (abfd, o, &ocontents))
- return FALSE;
+ return false;
/* We always cache the section contents.
Perhaps, if info->keep_memory is FALSE, we
should free them, if we are permitted to,
@@ -1435,7 +1435,7 @@ sh_relax_delete_bytes (bfd *abfd,
bfd_put_32 (abfd, val - count,
ocontents + irelscan->r_vaddr - o->vma);
- coff_section_data (abfd, o)->keep_contents = TRUE;
+ coff_section_data (abfd, o)->keep_contents = true;
}
}
}
@@ -1450,7 +1450,7 @@ sh_relax_delete_bytes (bfd *abfd,
_bfd_error_handler
(_("%pB: fatal: generic symbols retrieved before relaxing"), abfd);
bfd_set_error (bfd_error_invalid_operation);
- return FALSE;
+ return false;
}
/* Adjust all the symbols. */
@@ -1503,7 +1503,7 @@ sh_relax_delete_bytes (bfd *abfd,
}
}
- return TRUE;
+ return true;
}
/* This is yet another version of the SH opcode table, used to rapidly
@@ -2057,7 +2057,7 @@ sh_insn_info (unsigned int insn)
/* See whether an instruction uses a general purpose register. */
-static bfd_boolean
+static bool
sh_insn_uses_reg (unsigned int insn,
const struct sh_opcode *op,
unsigned int reg)
@@ -2068,24 +2068,24 @@ sh_insn_uses_reg (unsigned int insn,
if ((f & USES1) != 0
&& USES1_REG (insn) == reg)
- return TRUE;
+ return true;
if ((f & USES2) != 0
&& USES2_REG (insn) == reg)
- return TRUE;
+ return true;
if ((f & USESR0) != 0
&& reg == 0)
- return TRUE;
+ return true;
if ((f & USESAS) && reg == USESAS_REG (insn))
- return TRUE;
+ return true;
if ((f & USESR8) && reg == 8)
- return TRUE;
+ return true;
- return FALSE;
+ return false;
}
/* See whether an instruction sets a general purpose register. */
-static bfd_boolean
+static bool
sh_insn_sets_reg (unsigned int insn,
const struct sh_opcode *op,
unsigned int reg)
@@ -2096,35 +2096,35 @@ sh_insn_sets_reg (unsigned int insn,
if ((f & SETS1) != 0
&& SETS1_REG (insn) == reg)
- return TRUE;
+ return true;
if ((f & SETS2) != 0
&& SETS2_REG (insn) == reg)
- return TRUE;
+ return true;
if ((f & SETSR0) != 0
&& reg == 0)
- return TRUE;
+ return true;
if ((f & SETSAS) && reg == SETSAS_REG (insn))
- return TRUE;
+ return true;
- return FALSE;
+ return false;
}
/* See whether an instruction uses or sets a general purpose register */
-static bfd_boolean
+static bool
sh_insn_uses_or_sets_reg (unsigned int insn,
const struct sh_opcode *op,
unsigned int reg)
{
if (sh_insn_uses_reg (insn, op, reg))
- return TRUE;
+ return true;
return sh_insn_sets_reg (insn, op, reg);
}
/* See whether an instruction uses a floating point register. */
-static bfd_boolean
+static bool
sh_insn_uses_freg (unsigned int insn,
const struct sh_opcode *op,
unsigned int freg)
@@ -2144,20 +2144,20 @@ sh_insn_uses_freg (unsigned int insn,
if ((f & USESF1) != 0
&& (USESF1_REG (insn) & 0xe) == (freg & 0xe))
- return TRUE;
+ return true;
if ((f & USESF2) != 0
&& (USESF2_REG (insn) & 0xe) == (freg & 0xe))
- return TRUE;
+ return true;
if ((f & USESF0) != 0
&& freg == 0)
- return TRUE;
+ return true;
- return FALSE;
+ return false;
}
/* See whether an instruction sets a floating point register. */
-static bfd_boolean
+static bool
sh_insn_sets_freg (unsigned int insn,
const struct sh_opcode *op,
unsigned int freg)
@@ -2177,20 +2177,20 @@ sh_insn_sets_freg (unsigned int insn,
if ((f & SETSF1) != 0
&& (SETSF1_REG (insn) & 0xe) == (freg & 0xe))
- return TRUE;
+ return true;
- return FALSE;
+ return false;
}
/* See whether an instruction uses or sets a floating point register */
-static bfd_boolean
+static bool
sh_insn_uses_or_sets_freg (unsigned int insn,
const struct sh_opcode *op,
unsigned int reg)
{
if (sh_insn_uses_freg (insn, op, reg))
- return TRUE;
+ return true;
return sh_insn_sets_freg (insn, op, reg);
}
@@ -2200,7 +2200,7 @@ sh_insn_uses_or_sets_freg (unsigned int insn,
This should return TRUE if there is a conflict, or FALSE if the
instructions can be swapped safely. */
-static bfd_boolean
+static bool
sh_insns_conflict (unsigned int i1,
const struct sh_opcode *op1,
unsigned int i2,
@@ -2215,57 +2215,57 @@ sh_insns_conflict (unsigned int i1,
FIXME: shouldn't test raw opcodes here. */
if (((i1 & 0xf0ff) == 0x4066 && (i2 & 0xf000) == 0xf000)
|| ((i2 & 0xf0ff) == 0x4066 && (i1 & 0xf000) == 0xf000))
- return TRUE;
+ return true;
if ((f1 & (BRANCH | DELAY)) != 0
|| (f2 & (BRANCH | DELAY)) != 0)
- return TRUE;
+ return true;
if (((f1 | f2) & SETSSP)
&& (f1 & (SETSSP | USESSP))
&& (f2 & (SETSSP | USESSP)))
- return TRUE;
+ return true;
if ((f1 & SETS1) != 0
&& sh_insn_uses_or_sets_reg (i2, op2, SETS1_REG (i1)))
- return TRUE;
+ return true;
if ((f1 & SETS2) != 0
&& sh_insn_uses_or_sets_reg (i2, op2, SETS2_REG (i1)))
- return TRUE;
+ return true;
if ((f1 & SETSR0) != 0
&& sh_insn_uses_or_sets_reg (i2, op2, 0))
- return TRUE;
+ return true;
if ((f1 & SETSAS)
&& sh_insn_uses_or_sets_reg (i2, op2, SETSAS_REG (i1)))
- return TRUE;
+ return true;
if ((f1 & SETSF1) != 0
&& sh_insn_uses_or_sets_freg (i2, op2, SETSF1_REG (i1)))
- return TRUE;
+ return true;
if ((f2 & SETS1) != 0
&& sh_insn_uses_or_sets_reg (i1, op1, SETS1_REG (i2)))
- return TRUE;
+ return true;
if ((f2 & SETS2) != 0
&& sh_insn_uses_or_sets_reg (i1, op1, SETS2_REG (i2)))
- return TRUE;
+ return true;
if ((f2 & SETSR0) != 0
&& sh_insn_uses_or_sets_reg (i1, op1, 0))
- return TRUE;
+ return true;
if ((f2 & SETSAS)
&& sh_insn_uses_or_sets_reg (i1, op1, SETSAS_REG (i2)))
- return TRUE;
+ return true;
if ((f2 & SETSF1) != 0
&& sh_insn_uses_or_sets_freg (i1, op1, SETSF1_REG (i2)))
- return TRUE;
+ return true;
/* The instructions do not conflict. */
- return FALSE;
+ return false;
}
/* I1 is a load instruction, and I2 is some other instruction. Return
TRUE if I1 loads a register which I2 uses. */
-static bfd_boolean
+static bool
sh_load_use (unsigned int i1,
const struct sh_opcode *op1,
unsigned int i2,
@@ -2276,7 +2276,7 @@ sh_load_use (unsigned int i1,
f1 = op1->flags;
if ((f1 & LOAD) == 0)
- return FALSE;
+ return false;
/* If both SETS1 and SETSSP are set, that means a load to a special
register using postincrement addressing mode, which we don't care
@@ -2284,17 +2284,17 @@ sh_load_use (unsigned int i1,
if ((f1 & SETS1) != 0
&& (f1 & SETSSP) == 0
&& sh_insn_uses_reg (i2, op2, (i1 & 0x0f00) >> 8))
- return TRUE;
+ return true;
if ((f1 & SETSR0) != 0
&& sh_insn_uses_reg (i2, op2, 0))
- return TRUE;
+ return true;
if ((f1 & SETSF1) != 0
&& sh_insn_uses_freg (i2, op2, (i1 & 0x0f00) >> 8))
- return TRUE;
+ return true;
- return FALSE;
+ return false;
}
/* Try to align loads and stores within a span of memory. This is
@@ -2310,17 +2310,17 @@ sh_load_use (unsigned int i1,
#ifdef COFF_WITH_PE
static
#endif
-bfd_boolean
+bool
_bfd_sh_align_load_span (bfd *abfd,
asection *sec,
bfd_byte *contents,
- bfd_boolean (*swap) (bfd *, asection *, void *, bfd_byte *, bfd_vma),
+ bool (*swap) (bfd *, asection *, void *, bfd_byte *, bfd_vma),
void * relocs,
bfd_vma **plabel,
bfd_vma *label_end,
bfd_vma start,
bfd_vma stop,
- bfd_boolean *pswapped)
+ bool *pswapped)
{
int dsp = (abfd->arch_info->mach == bfd_mach_sh_dsp
|| abfd->arch_info->mach == bfd_mach_sh3_dsp);
@@ -2330,7 +2330,7 @@ _bfd_sh_align_load_span (bfd *abfd,
desirable. In fact, it is counter-productive, since it interferes
with the schedules generated by the compiler. */
if (abfd->arch_info->mach == bfd_mach_sh4)
- return TRUE;
+ return true;
/* If we are linking sh[3]-dsp code, swap the FPU instructions for DSP
instructions. */
@@ -2404,14 +2404,14 @@ _bfd_sh_align_load_span (bfd *abfd,
&& (prev_op->flags & (LOAD | STORE)) == 0
&& ! sh_insns_conflict (prev_insn, prev_op, insn, op))
{
- bfd_boolean ok;
+ bool ok;
/* The load/store instruction does not have a label, and
there is a previous instruction; PREV_INSN is not
itself a load/store instruction, and PREV_INSN and
INSN do not conflict. */
- ok = TRUE;
+ ok = true;
if (i >= start + 4)
{
@@ -2426,7 +2426,7 @@ _bfd_sh_align_load_span (bfd *abfd,
can not swap. */
if (prev2_op == NULL
|| (prev2_op->flags & DELAY) != 0)
- ok = FALSE;
+ ok = false;
/* If the instruction before PREV_INSN is a load,
and it sets a register which INSN uses, then
@@ -2436,14 +2436,14 @@ _bfd_sh_align_load_span (bfd *abfd,
if (ok
&& (prev2_op->flags & LOAD) != 0
&& sh_load_use (prev2_insn, prev2_op, insn, op))
- ok = FALSE;
+ ok = false;
}
if (ok)
{
if (! (*swap) (abfd, sec, relocs, contents, i - 2))
- return FALSE;
- *pswapped = TRUE;
+ return false;
+ *pswapped = true;
continue;
}
}
@@ -2465,12 +2465,12 @@ _bfd_sh_align_load_span (bfd *abfd,
&& (next_op->flags & (LOAD | STORE)) == 0
&& ! sh_insns_conflict (insn, op, next_insn, next_op))
{
- bfd_boolean ok;
+ bool ok;
/* NEXT_INSN is not itself a load/store instruction,
and it does not conflict with INSN. */
- ok = TRUE;
+ ok = true;
/* If PREV_INSN is a load, and it sets a register
which NEXT_INSN uses, then putting NEXT_INSN
@@ -2479,7 +2479,7 @@ _bfd_sh_align_load_span (bfd *abfd,
if (prev_op != NULL
&& (prev_op->flags & LOAD) != 0
&& sh_load_use (prev_insn, prev_op, next_insn, next_op))
- ok = FALSE;
+ ok = false;
/* If INSN is a load, and it sets a register which
the insn after NEXT_INSN uses, then doing the
@@ -2502,27 +2502,27 @@ _bfd_sh_align_load_span (bfd *abfd,
if (next2_op == NULL
|| ((next2_op->flags & (LOAD | STORE)) == 0
&& sh_load_use (insn, op, next2_insn, next2_op)))
- ok = FALSE;
+ ok = false;
}
if (ok)
{
if (! (*swap) (abfd, sec, relocs, contents, i))
- return FALSE;
- *pswapped = TRUE;
+ return false;
+ *pswapped = true;
continue;
}
}
}
}
- return TRUE;
+ return true;
}
#endif /* not COFF_IMAGE_WITH_PE */
/* Swap two SH instructions. */
-static bfd_boolean
+static bool
sh_swap_insns (bfd * abfd,
asection * sec,
void * relocs,
@@ -2589,10 +2589,10 @@ sh_swap_insns (bfd * abfd,
{
bfd_byte *loc;
unsigned short insn, oinsn;
- bfd_boolean overflow;
+ bool overflow;
loc = contents + irel->r_vaddr - sec->vma;
- overflow = FALSE;
+ overflow = false;
switch (type)
{
default:
@@ -2604,7 +2604,7 @@ sh_swap_insns (bfd * abfd,
oinsn = insn;
insn += add / 2;
if ((oinsn & 0xff00) != (insn & 0xff00))
- overflow = TRUE;
+ overflow = true;
bfd_put_16 (abfd, (bfd_vma) insn, loc);
break;
@@ -2613,7 +2613,7 @@ sh_swap_insns (bfd * abfd,
oinsn = insn;
insn += add / 2;
if ((oinsn & 0xf000) != (insn & 0xf000))
- overflow = TRUE;
+ overflow = true;
bfd_put_16 (abfd, (bfd_vma) insn, loc);
break;
@@ -2630,7 +2630,7 @@ sh_swap_insns (bfd * abfd,
oinsn = insn;
insn += add / 2;
if ((oinsn & 0xff00) != (insn & 0xff00))
- overflow = TRUE;
+ overflow = true;
bfd_put_16 (abfd, (bfd_vma) insn, loc);
}
@@ -2644,12 +2644,12 @@ sh_swap_insns (bfd * abfd,
(_("%pB: %#" PRIx64 ": fatal: reloc overflow while relaxing"),
abfd, (uint64_t) irel->r_vaddr);
bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ return false;
}
}
}
- return TRUE;
+ return true;
}
/* Look for loads and stores which we can align to four byte
@@ -2657,19 +2657,19 @@ sh_swap_insns (bfd * abfd,
this is desirable. This sets *PSWAPPED if some instruction was
swapped. */
-static bfd_boolean
+static bool
sh_align_loads (bfd *abfd,
asection *sec,
struct internal_reloc *internal_relocs,
bfd_byte *contents,
- bfd_boolean *pswapped)
+ bool *pswapped)
{
struct internal_reloc *irel, *irelend;
bfd_vma *labels = NULL;
bfd_vma *label, *label_end;
bfd_size_type amt;
- *pswapped = FALSE;
+ *pswapped = false;
irelend = internal_relocs + sec->reloc_count;
@@ -2719,17 +2719,17 @@ sh_align_loads (bfd *abfd,
free (labels);
- return TRUE;
+ return true;
error_return:
free (labels);
- return FALSE;
+ return false;
}
/* This is a modification of _bfd_coff_generic_relocate_section, which
will handle SH relaxing. */
-static bfd_boolean
+static bool
sh_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
struct bfd_link_info *info,
bfd *input_bfd,
@@ -2781,7 +2781,7 @@ sh_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
(_("%pB: illegal symbol index %ld in relocs"),
input_bfd, symndx);
bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ return false;
}
h = obj_coff_sym_hashes (input_bfd)[symndx];
sym = syms + symndx;
@@ -2803,7 +2803,7 @@ sh_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
if (howto == NULL)
{
bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ return false;
}
#ifdef COFF_WITH_PE
@@ -2850,7 +2850,7 @@ sh_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
else if (! bfd_link_relocatable (info))
(*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
- rel->r_vaddr - input_section->vma, TRUE);
+ rel->r_vaddr - input_section->vma, true);
}
rstat = _bfd_final_link_relocate (howto, input_bfd, input_section,
@@ -2891,7 +2891,7 @@ sh_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
}
}
- return TRUE;
+ return true;
}
/* This is a version of bfd_generic_get_relocated_section_contents
@@ -2902,7 +2902,7 @@ sh_coff_get_relocated_section_contents (bfd *output_bfd,
struct bfd_link_info *link_info,
struct bfd_link_order *link_order,
bfd_byte *data,
- bfd_boolean relocatable,
+ bool relocatable,
asymbol **symbols)
{
asection *input_section = link_order->u.indirect.section;
@@ -2937,8 +2937,8 @@ sh_coff_get_relocated_section_contents (bfd *output_bfd,
goto error_return;
internal_relocs = (_bfd_coff_read_internal_relocs
- (input_bfd, input_section, FALSE, (bfd_byte *) NULL,
- FALSE, (struct internal_reloc *) NULL));
+ (input_bfd, input_section, false, (bfd_byte *) NULL,
+ false, (struct internal_reloc *) NULL));
if (internal_relocs == NULL)
goto error_return;
@@ -3052,18 +3052,18 @@ coff_small_object_p (bfd *abfd)
/* Set the section alignment for the small versions. */
-static bfd_boolean
+static bool
coff_small_new_section_hook (bfd *abfd, asection *section)
{
if (! coff_new_section_hook (abfd, section))
- return FALSE;
+ return false;
/* We must align to at least a four byte boundary, because longword
accesses must be on a four byte boundary. */
if (section->alignment_power == COFF_DEFAULT_SECTION_ALIGNMENT_POWER)
section->alignment_power = 2;
- return TRUE;
+ return true;
}
/* This is copied from bfd_coff_std_swap_table so that we can change
@@ -3078,16 +3078,16 @@ static bfd_coff_backend_data bfd_coff_small_swap_table =
coff_swap_scnhdr_out,
FILHSZ, AOUTSZ, SCNHSZ, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN,
#ifdef COFF_LONG_FILENAMES
- TRUE,
+ true,
#else
- FALSE,
+ false,
#endif
COFF_DEFAULT_LONG_SECTION_NAMES,
2,
#ifdef COFF_FORCE_SYMBOLS_IN_STRINGS
- TRUE,
+ true,
#else
- FALSE,
+ false,
#endif
#ifdef COFF_DEBUG_STRING_WIDE_PREFIX
4,