Indent labels
Labels don't go in the first column according to standard emacs C indent rules, and I got annoyed enough at seeing diff -p show a label rather than the function name to fix this. bfd/ * aoutx.h: Indent labels correctly. Format error strings. * archive.c: Likewise. * archive64.c: Likewise. * coff-arm.c: Likewise. * coff-rs6000.c: Likewise. * coff-stgo32.c: Likewise. * cpu-arm.c: Likewise. * dwarf2.c: Likewise. * elf-ifunc.c: Likewise. * elf-properties.c: Likewise. * elf-s390-common.c: Likewise. * elf-strtab.c: Likewise. * elf.c: Likewise. * elf32-arm.c: Likewise. * elf32-bfin.c: Likewise. * elf32-cr16.c: Likewise. * elf32-csky.c: Likewise. * elf32-i386.c: Likewise. * elf32-m68k.c: Likewise. * elf32-msp430.c: Likewise. * elf32-nds32.c: Likewise. * elf32-nios2.c: Likewise. * elf32-pru.c: Likewise. * elf32-xtensa.c: Likewise. * elf64-ia64-vms.c: Likewise. * elf64-x86-64.c: Likewise. * elfcode.h: Likewise. * elfcore.h: Likewise. * elflink.c: Likewise. * elfnn-aarch64.c: Likewise. * elfnn-ia64.c: Likewise. * elfnn-riscv.c: Likewise. * elfxx-mips.c: Likewise. * elfxx-sparc.c: Likewise. * elfxx-x86.c: Likewise. * i386lynx.c: Likewise. * merge.c: Likewise. * pdp11.c: Likewise. * plugin.c: Likewise. * reloc.c: Likewise. binutils/ * elfedit.c: Indent labels correctly. * readelf.c: Likewise. * resres.c: Likewise. gas/ * config/obj-elf.c: Indent labels correctly. * config/obj-macho.c: Likewise. * config/tc-aarch64.c: Likewise. * config/tc-alpha.c: Likewise. * config/tc-arm.c: Likewise. * config/tc-cr16.c: Likewise. * config/tc-crx.c: Likewise. * config/tc-frv.c: Likewise. * config/tc-i386-intel.c: Likewise. * config/tc-i386.c: Likewise. * config/tc-ia64.c: Likewise. * config/tc-mn10200.c: Likewise. * config/tc-mn10300.c: Likewise. * config/tc-nds32.c: Likewise. * config/tc-riscv.c: Likewise. * config/tc-s12z.c: Likewise. * config/tc-xtensa.c: Likewise. * config/tc-z80.c: Likewise. * read.c: Likewise. * symbols.c: Likewise. * write.c: Likewise. ld/ * emultempl/cskyelf.em: Indent labels correctly. * ldfile.c: Likewise. * ldlang.c: Likewise. * plugin.c: Likewise. opcodes/ * aarch64-asm.c: Indent labels correctly. * aarch64-dis.c: Likewise. * aarch64-gen.c: Likewise. * aarch64-opc.c: Likewise. * alpha-dis.c: Likewise. * i386-dis.c: Likewise. * nds32-asm.c: Likewise. * nfp-dis.c: Likewise. * visium-dis.c: Likewise.
This commit is contained in:
parent
e310298cf3
commit
dc1e8a474f
82 changed files with 323 additions and 223 deletions
|
@ -1,3 +1,46 @@
|
||||||
|
2020-02-26 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* aoutx.h: Indent labels correctly. Format error strings.
|
||||||
|
* archive.c: Likewise.
|
||||||
|
* archive64.c: Likewise.
|
||||||
|
* coff-arm.c: Likewise.
|
||||||
|
* coff-rs6000.c: Likewise.
|
||||||
|
* coff-stgo32.c: Likewise.
|
||||||
|
* cpu-arm.c: Likewise.
|
||||||
|
* dwarf2.c: Likewise.
|
||||||
|
* elf-ifunc.c: Likewise.
|
||||||
|
* elf-properties.c: Likewise.
|
||||||
|
* elf-s390-common.c: Likewise.
|
||||||
|
* elf-strtab.c: Likewise.
|
||||||
|
* elf.c: Likewise.
|
||||||
|
* elf32-arm.c: Likewise.
|
||||||
|
* elf32-bfin.c: Likewise.
|
||||||
|
* elf32-cr16.c: Likewise.
|
||||||
|
* elf32-csky.c: Likewise.
|
||||||
|
* elf32-i386.c: Likewise.
|
||||||
|
* elf32-m68k.c: Likewise.
|
||||||
|
* elf32-msp430.c: Likewise.
|
||||||
|
* elf32-nds32.c: Likewise.
|
||||||
|
* elf32-nios2.c: Likewise.
|
||||||
|
* elf32-pru.c: Likewise.
|
||||||
|
* elf32-xtensa.c: Likewise.
|
||||||
|
* elf64-ia64-vms.c: Likewise.
|
||||||
|
* elf64-x86-64.c: Likewise.
|
||||||
|
* elfcode.h: Likewise.
|
||||||
|
* elfcore.h: Likewise.
|
||||||
|
* elflink.c: Likewise.
|
||||||
|
* elfnn-aarch64.c: Likewise.
|
||||||
|
* elfnn-ia64.c: Likewise.
|
||||||
|
* elfnn-riscv.c: Likewise.
|
||||||
|
* elfxx-mips.c: Likewise.
|
||||||
|
* elfxx-sparc.c: Likewise.
|
||||||
|
* elfxx-x86.c: Likewise.
|
||||||
|
* i386lynx.c: Likewise.
|
||||||
|
* merge.c: Likewise.
|
||||||
|
* pdp11.c: Likewise.
|
||||||
|
* plugin.c: Likewise.
|
||||||
|
* reloc.c: Likewise.
|
||||||
|
|
||||||
2020-02-26 Alan Modra <amodra@gmail.com>
|
2020-02-26 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
PR 25593
|
PR 25593
|
||||||
|
|
10
bfd/aoutx.h
10
bfd/aoutx.h
|
@ -1901,7 +1901,7 @@ NAME (aout, write_syms) (bfd *abfd)
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
_bfd_stringtab_free (strtab);
|
_bfd_stringtab_free (strtab);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -2381,8 +2381,8 @@ NAME (aout, squirt_out_relocs) (bfd *abfd, asection *section)
|
||||||
|| (*generic)->sym_ptr_ptr == NULL)
|
|| (*generic)->sym_ptr_ptr == NULL)
|
||||||
{
|
{
|
||||||
bfd_set_error (bfd_error_invalid_operation);
|
bfd_set_error (bfd_error_invalid_operation);
|
||||||
_bfd_error_handler (_("\
|
_bfd_error_handler (_("%pB: attempt to write out "
|
||||||
%pB: attempt to write out unknown reloc type"), abfd);
|
"unknown reloc type"), abfd);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
MY_swap_ext_reloc_out (abfd, *generic,
|
MY_swap_ext_reloc_out (abfd, *generic,
|
||||||
|
@ -2399,8 +2399,8 @@ NAME (aout, squirt_out_relocs) (bfd *abfd, asection *section)
|
||||||
|| (*generic)->sym_ptr_ptr == NULL)
|
|| (*generic)->sym_ptr_ptr == NULL)
|
||||||
{
|
{
|
||||||
bfd_set_error (bfd_error_invalid_operation);
|
bfd_set_error (bfd_error_invalid_operation);
|
||||||
_bfd_error_handler (_("\
|
_bfd_error_handler (_("%pB: attempt to write out "
|
||||||
%pB: attempt to write out unknown reloc type"), abfd);
|
"unknown reloc type"), abfd);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
MY_swap_std_reloc_out (abfd, *generic,
|
MY_swap_std_reloc_out (abfd, *generic,
|
||||||
|
|
|
@ -1131,7 +1131,7 @@ do_slurp_coff_armap (bfd *abfd)
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
release_symdefs:
|
release_symdefs:
|
||||||
bfd_release (abfd, (ardata)->symdefs);
|
bfd_release (abfd, (ardata)->symdefs);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,7 +139,7 @@ _bfd_archive_64_bit_slurp_armap (bfd *abfd)
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
release_symdefs:
|
release_symdefs:
|
||||||
bfd_release (abfd, ardata->symdefs);
|
bfd_release (abfd, ardata->symdefs);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2210,7 +2210,8 @@ coff_arm_merge_private_bfd_data (bfd * ibfd, struct bfd_link_info *info)
|
||||||
{
|
{
|
||||||
_bfd_error_handler
|
_bfd_error_handler
|
||||||
/* xgettext: c-format */
|
/* xgettext: c-format */
|
||||||
(_("error: %pB is compiled for APCS-%d, whereas %pB is compiled for APCS-%d"),
|
(_("error: %pB is compiled for APCS-%d, "
|
||||||
|
"whereas %pB is compiled for APCS-%d"),
|
||||||
ibfd, APCS_26_FLAG (ibfd) ? 26 : 32,
|
ibfd, APCS_26_FLAG (ibfd) ? 26 : 32,
|
||||||
obfd, APCS_26_FLAG (obfd) ? 26 : 32
|
obfd, APCS_26_FLAG (obfd) ? 26 : 32
|
||||||
);
|
);
|
||||||
|
@ -2223,14 +2224,16 @@ coff_arm_merge_private_bfd_data (bfd * ibfd, struct bfd_link_info *info)
|
||||||
{
|
{
|
||||||
if (APCS_FLOAT_FLAG (ibfd))
|
if (APCS_FLOAT_FLAG (ibfd))
|
||||||
/* xgettext: c-format */
|
/* xgettext: c-format */
|
||||||
_bfd_error_handler (_("\
|
_bfd_error_handler
|
||||||
error: %pB passes floats in float registers, whereas %pB passes them in integer registers"),
|
(_("error: %pB passes floats in float registers, "
|
||||||
ibfd, obfd);
|
"whereas %pB passes them in integer registers"),
|
||||||
|
ibfd, obfd);
|
||||||
else
|
else
|
||||||
/* xgettext: c-format */
|
/* xgettext: c-format */
|
||||||
_bfd_error_handler (_("\
|
_bfd_error_handler
|
||||||
error: %pB passes floats in integer registers, whereas %pB passes them in float registers"),
|
(_("error: %pB passes floats in integer registers, "
|
||||||
ibfd, obfd);
|
"whereas %pB passes them in float registers"),
|
||||||
|
ibfd, obfd);
|
||||||
|
|
||||||
bfd_set_error (bfd_error_wrong_format);
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -2240,14 +2243,16 @@ error: %pB passes floats in integer registers, whereas %pB passes them in float
|
||||||
{
|
{
|
||||||
if (PIC_FLAG (ibfd))
|
if (PIC_FLAG (ibfd))
|
||||||
/* xgettext: c-format */
|
/* xgettext: c-format */
|
||||||
_bfd_error_handler (_("\
|
_bfd_error_handler
|
||||||
error: %pB is compiled as position independent code, whereas target %pB is absolute position"),
|
(_("error: %pB is compiled as position independent code, "
|
||||||
ibfd, obfd);
|
"whereas target %pB is absolute position"),
|
||||||
|
ibfd, obfd);
|
||||||
else
|
else
|
||||||
/* xgettext: c-format */
|
/* xgettext: c-format */
|
||||||
_bfd_error_handler (_("\
|
_bfd_error_handler
|
||||||
error: %pB is compiled as absolute position code, whereas target %pB is position independent"),
|
(_("error: %pB is compiled as absolute position code, "
|
||||||
ibfd, obfd);
|
"whereas target %pB is position independent"),
|
||||||
|
ibfd, obfd);
|
||||||
|
|
||||||
bfd_set_error (bfd_error_wrong_format);
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -2272,14 +2277,15 @@ error: %pB is compiled as absolute position code, whereas target %pB is position
|
||||||
{
|
{
|
||||||
if (INTERWORK_FLAG (ibfd))
|
if (INTERWORK_FLAG (ibfd))
|
||||||
/* xgettext: c-format */
|
/* xgettext: c-format */
|
||||||
_bfd_error_handler (_("\
|
_bfd_error_handler (_("warning: %pB supports interworking, "
|
||||||
warning: %pB supports interworking, whereas %pB does not"),
|
"whereas %pB does not"),
|
||||||
ibfd, obfd);
|
ibfd, obfd);
|
||||||
else
|
else
|
||||||
/* xgettext: c-format */
|
/* xgettext: c-format */
|
||||||
_bfd_error_handler (_("\
|
_bfd_error_handler
|
||||||
warning: %pB does not support interworking, whereas %pB does"),
|
(_("warning: %pB does not support interworking, "
|
||||||
ibfd, obfd);
|
"whereas %pB does"),
|
||||||
|
ibfd, obfd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2428,9 +2434,11 @@ coff_arm_copy_private_bfd_data (bfd * src, bfd * dest)
|
||||||
if (INTERWORK_FLAG (dest))
|
if (INTERWORK_FLAG (dest))
|
||||||
{
|
{
|
||||||
/* xgettext:c-format */
|
/* xgettext:c-format */
|
||||||
_bfd_error_handler (_("\
|
_bfd_error_handler
|
||||||
warning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it"),
|
(_("warning: clearing the interworking flag of %pB "
|
||||||
dest, src);
|
"because non-interworking code in %pB has been "
|
||||||
|
"linked with it"),
|
||||||
|
dest, src);
|
||||||
}
|
}
|
||||||
|
|
||||||
SET_INTERWORK_FLAG (dest, 0);
|
SET_INTERWORK_FLAG (dest, 0);
|
||||||
|
|
|
@ -652,7 +652,7 @@ _bfd_xcoff_swap_aux_out (bfd *abfd, void * inp, int type, int in_class,
|
||||||
ext->x_sym.x_misc.x_lnsz.x_size);
|
ext->x_sym.x_misc.x_lnsz.x_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
return bfd_coff_auxesz (abfd);
|
return bfd_coff_auxesz (abfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -362,7 +362,7 @@ create_go32_stub (bfd *abfd)
|
||||||
}
|
}
|
||||||
close (f);
|
close (f);
|
||||||
}
|
}
|
||||||
stub_end:
|
stub_end:
|
||||||
/* There was something wrong above, so use now the standard builtin
|
/* There was something wrong above, so use now the standard builtin
|
||||||
stub. */
|
stub. */
|
||||||
if (coff_data (abfd)->go32stub == NULL)
|
if (coff_data (abfd)->go32stub == NULL)
|
||||||
|
|
|
@ -300,8 +300,8 @@ bfd_arm_merge_machines (bfd *ibfd, bfd *obfd)
|
||||||
|| out == bfd_mach_arm_iWMMXt2))
|
|| out == bfd_mach_arm_iWMMXt2))
|
||||||
{
|
{
|
||||||
/* xgettext: c-format */
|
/* xgettext: c-format */
|
||||||
_bfd_error_handler (_("\
|
_bfd_error_handler (_("error: %pB is compiled for the EP9312, "
|
||||||
error: %pB is compiled for the EP9312, whereas %pB is compiled for XScale"),
|
"whereas %pB is compiled for XScale"),
|
||||||
ibfd, obfd);
|
ibfd, obfd);
|
||||||
bfd_set_error (bfd_error_wrong_format);
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -312,8 +312,8 @@ error: %pB is compiled for the EP9312, whereas %pB is compiled for XScale"),
|
||||||
|| in == bfd_mach_arm_iWMMXt2))
|
|| in == bfd_mach_arm_iWMMXt2))
|
||||||
{
|
{
|
||||||
/* xgettext: c-format */
|
/* xgettext: c-format */
|
||||||
_bfd_error_handler (_("\
|
_bfd_error_handler (_("error: %pB is compiled for the EP9312, "
|
||||||
error: %pB is compiled for the EP9312, whereas %pB is compiled for XScale"),
|
"whereas %pB is compiled for XScale"),
|
||||||
obfd, ibfd);
|
obfd, ibfd);
|
||||||
bfd_set_error (bfd_error_wrong_format);
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
|
@ -2599,7 +2599,7 @@ lookup_address_in_line_info_table (struct line_info_table *table,
|
||||||
return seq->last_line->address - seq->low_pc;
|
return seq->last_line->address - seq->low_pc;
|
||||||
}
|
}
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
*filename_ptr = NULL;
|
*filename_ptr = NULL;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -201,7 +201,7 @@ _bfd_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
keep:
|
keep:
|
||||||
bed = get_elf_backend_data (info->output_bfd);
|
bed = get_elf_backend_data (info->output_bfd);
|
||||||
if (bed->rela_plts_and_copies_p)
|
if (bed->rela_plts_and_copies_p)
|
||||||
sizeof_reloc = bed->s->sizeof_rela;
|
sizeof_reloc = bed->s->sizeof_rela;
|
||||||
|
|
|
@ -86,7 +86,7 @@ _bfd_elf_parse_gnu_properties (bfd *abfd, Elf_Internal_Note *note)
|
||||||
|
|
||||||
if (note->descsz < 8 || (note->descsz % align_size) != 0)
|
if (note->descsz < 8 || (note->descsz % align_size) != 0)
|
||||||
{
|
{
|
||||||
bad_size:
|
bad_size:
|
||||||
_bfd_error_handler
|
_bfd_error_handler
|
||||||
(_("warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"),
|
(_("warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"),
|
||||||
abfd, note->type, note->descsz);
|
abfd, note->type, note->descsz);
|
||||||
|
@ -186,7 +186,7 @@ bad_size:
|
||||||
(_("warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"),
|
(_("warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"),
|
||||||
abfd, note->type, type);
|
abfd, note->type, type);
|
||||||
|
|
||||||
next:
|
next:
|
||||||
ptr += (datasz + (align_size - 1)) & ~ (align_size - 1);
|
ptr += (datasz + (align_size - 1)) & ~ (align_size - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -212,7 +212,7 @@ s390_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
keep:
|
keep:
|
||||||
/* Without checking h->plt.refcount here we allocate a PLT slot.
|
/* Without checking h->plt.refcount here we allocate a PLT slot.
|
||||||
When setting plt.refcount in check_relocs it might not have been
|
When setting plt.refcount in check_relocs it might not have been
|
||||||
known that this will be an IFUNC symol. */
|
known that this will be an IFUNC symol. */
|
||||||
|
|
|
@ -442,7 +442,7 @@ _bfd_elf_strtab_finalize (struct elf_strtab_hash *tab)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
alloc_failure:
|
alloc_failure:
|
||||||
if (array)
|
if (array)
|
||||||
free (array);
|
free (array);
|
||||||
|
|
||||||
|
|
|
@ -7704,7 +7704,7 @@ copy_private_bfd_data (bfd *ibfd, bfd *obfd)
|
||||||
return copy_elf_program_header (ibfd, obfd);
|
return copy_elf_program_header (ibfd, obfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
rewrite:
|
rewrite:
|
||||||
if (ibfd->xvec == obfd->xvec)
|
if (ibfd->xvec == obfd->xvec)
|
||||||
{
|
{
|
||||||
/* When rewriting program header, set the output maxpagesize to
|
/* When rewriting program header, set the output maxpagesize to
|
||||||
|
@ -8596,11 +8596,11 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bfd_boolean default_imported_symver)
|
||||||
if (hdr->sh_info == 0
|
if (hdr->sh_info == 0
|
||||||
|| hdr->sh_info > hdr->sh_size / sizeof (Elf_External_Verneed))
|
|| hdr->sh_info > hdr->sh_size / sizeof (Elf_External_Verneed))
|
||||||
{
|
{
|
||||||
error_return_bad_verref:
|
error_return_bad_verref:
|
||||||
_bfd_error_handler
|
_bfd_error_handler
|
||||||
(_("%pB: .gnu.version_r invalid entry"), abfd);
|
(_("%pB: .gnu.version_r invalid entry"), abfd);
|
||||||
bfd_set_error (bfd_error_bad_value);
|
bfd_set_error (bfd_error_bad_value);
|
||||||
error_return_verref:
|
error_return_verref:
|
||||||
elf_tdata (abfd)->verref = NULL;
|
elf_tdata (abfd)->verref = NULL;
|
||||||
elf_tdata (abfd)->cverrefs = 0;
|
elf_tdata (abfd)->cverrefs = 0;
|
||||||
goto error_return;
|
goto error_return;
|
||||||
|
|
|
@ -6415,7 +6415,7 @@ set_cmse_veneer_addr_from_implib (struct bfd_link_info *info,
|
||||||
ret = FALSE;
|
ret = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
free_sym_buf:
|
free_sym_buf:
|
||||||
free (sympp);
|
free (sympp);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -7991,7 +7991,7 @@ bfd_elf32_arm_process_before_allocation (bfd *abfd,
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (contents != NULL
|
if (contents != NULL
|
||||||
&& elf_section_data (sec)->this_hdr.contents != contents)
|
&& elf_section_data (sec)->this_hdr.contents != contents)
|
||||||
free (contents);
|
free (contents);
|
||||||
|
@ -8607,7 +8607,7 @@ bfd_elf32_arm_vfp11_erratum_scan (bfd *abfd, struct bfd_link_info *link_info)
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (contents != NULL
|
if (contents != NULL
|
||||||
&& elf_section_data (sec)->this_hdr.contents != contents)
|
&& elf_section_data (sec)->this_hdr.contents != contents)
|
||||||
free (contents);
|
free (contents);
|
||||||
|
@ -9044,7 +9044,7 @@ bfd_elf32_arm_stm32l4xx_erratum_scan (bfd *abfd,
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (contents != NULL
|
if (contents != NULL
|
||||||
&& elf_section_data (sec)->this_hdr.contents != contents)
|
&& elf_section_data (sec)->this_hdr.contents != contents)
|
||||||
free (contents);
|
free (contents);
|
||||||
|
|
|
@ -5398,7 +5398,7 @@ bfd_bfin_elf32_create_embedded_relocs (bfd *abfd,
|
||||||
free (internal_relocs);
|
free (internal_relocs);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
||||||
free (isymbuf);
|
free (isymbuf);
|
||||||
if (internal_relocs != NULL
|
if (internal_relocs != NULL
|
||||||
|
|
|
@ -2854,7 +2854,7 @@ bfd_cr16_elf32_create_embedded_relocs (bfd *abfd,
|
||||||
free (internal_relocs);
|
free (internal_relocs);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
||||||
free (isymbuf);
|
free (isymbuf);
|
||||||
if (internal_relocs != NULL
|
if (internal_relocs != NULL
|
||||||
|
|
|
@ -3413,7 +3413,7 @@ elf32_csky_size_stubs (bfd *output_bfd,
|
||||||
if (r_type >= (unsigned int) R_CKCORE_MAX)
|
if (r_type >= (unsigned int) R_CKCORE_MAX)
|
||||||
{
|
{
|
||||||
bfd_set_error (bfd_error_bad_value);
|
bfd_set_error (bfd_error_bad_value);
|
||||||
error_ret_free_internal:
|
error_ret_free_internal:
|
||||||
if (elf_section_data (section)->relocs == NULL)
|
if (elf_section_data (section)->relocs == NULL)
|
||||||
free (internal_relocs);
|
free (internal_relocs);
|
||||||
goto error_ret_free_local;
|
goto error_ret_free_local;
|
||||||
|
@ -3592,7 +3592,7 @@ error_ret_free_internal:
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
error_ret_free_local:
|
error_ret_free_local:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1327,7 +1327,7 @@ elf_i386_convert_load_reloc (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
|
||||||
&& local_ref)
|
&& local_ref)
|
||||||
{
|
{
|
||||||
/* The function is locally defined. */
|
/* The function is locally defined. */
|
||||||
convert_branch:
|
convert_branch:
|
||||||
/* Convert R_386_GOT32X to R_386_PC32. */
|
/* Convert R_386_GOT32X to R_386_PC32. */
|
||||||
if (modrm == 0x15 || (modrm & 0xf8) == 0x90)
|
if (modrm == 0x15 || (modrm & 0xf8) == 0x90)
|
||||||
{
|
{
|
||||||
|
@ -1393,7 +1393,7 @@ convert_branch:
|
||||||
|| h->root.type == bfd_link_hash_defweak)
|
|| h->root.type == bfd_link_hash_defweak)
|
||||||
&& local_ref))
|
&& local_ref))
|
||||||
{
|
{
|
||||||
convert_load:
|
convert_load:
|
||||||
if (opcode == 0x8b)
|
if (opcode == 0x8b)
|
||||||
{
|
{
|
||||||
if (to_reloc_32)
|
if (to_reloc_32)
|
||||||
|
@ -1739,7 +1739,7 @@ elf_i386_check_relocs (bfd *abfd,
|
||||||
|
|
||||||
case R_386_GOTOFF:
|
case R_386_GOTOFF:
|
||||||
case R_386_GOTPC:
|
case R_386_GOTPC:
|
||||||
create_got:
|
create_got:
|
||||||
if (r_type != R_386_TLS_IE)
|
if (r_type != R_386_TLS_IE)
|
||||||
{
|
{
|
||||||
if (eh != NULL)
|
if (eh != NULL)
|
||||||
|
@ -1769,7 +1769,7 @@ create_got:
|
||||||
case R_386_PC32:
|
case R_386_PC32:
|
||||||
if (eh != NULL && (sec->flags & SEC_CODE) != 0)
|
if (eh != NULL && (sec->flags & SEC_CODE) != 0)
|
||||||
eh->zero_undefweak |= 0x2;
|
eh->zero_undefweak |= 0x2;
|
||||||
do_relocation:
|
do_relocation:
|
||||||
/* We are called after all symbols have been resolved. Only
|
/* We are called after all symbols have been resolved. Only
|
||||||
relocation against STT_GNU_IFUNC symbol must go through
|
relocation against STT_GNU_IFUNC symbol must go through
|
||||||
PLT. */
|
PLT. */
|
||||||
|
@ -1826,7 +1826,7 @@ do_relocation:
|
||||||
}
|
}
|
||||||
|
|
||||||
size_reloc = FALSE;
|
size_reloc = FALSE;
|
||||||
do_size:
|
do_size:
|
||||||
if (NEED_DYNAMIC_RELOCATION_P (info, FALSE, h, sec, r_type,
|
if (NEED_DYNAMIC_RELOCATION_P (info, FALSE, h, sec, r_type,
|
||||||
R_386_32))
|
R_386_32))
|
||||||
{
|
{
|
||||||
|
@ -1931,7 +1931,7 @@ do_size:
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (elf_section_data (sec)->this_hdr.contents != contents)
|
if (elf_section_data (sec)->this_hdr.contents != contents)
|
||||||
free (contents);
|
free (contents);
|
||||||
sec->check_relocs_failed = 1;
|
sec->check_relocs_failed = 1;
|
||||||
|
@ -2362,7 +2362,7 @@ elf_i386_relocate_section (bfd *output_bfd,
|
||||||
switch (r_type)
|
switch (r_type)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
bad_ifunc_reloc:
|
bad_ifunc_reloc:
|
||||||
if (h->root.root.string)
|
if (h->root.root.string)
|
||||||
name = h->root.root.string;
|
name = h->root.root.string;
|
||||||
else
|
else
|
||||||
|
@ -2386,7 +2386,7 @@ bad_ifunc_reloc:
|
||||||
asection *sreloc;
|
asection *sreloc;
|
||||||
bfd_vma offset;
|
bfd_vma offset;
|
||||||
|
|
||||||
do_ifunc_pointer:
|
do_ifunc_pointer:
|
||||||
/* Need a dynamic relocation to get the real function
|
/* Need a dynamic relocation to get the real function
|
||||||
adddress. */
|
adddress. */
|
||||||
offset = _bfd_elf_section_offset (output_bfd,
|
offset = _bfd_elf_section_offset (output_bfd,
|
||||||
|
@ -2449,7 +2449,7 @@ do_ifunc_pointer:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
skip_ifunc:
|
skip_ifunc:
|
||||||
resolved_to_zero = (eh != NULL
|
resolved_to_zero = (eh != NULL
|
||||||
&& UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh));
|
&& UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh));
|
||||||
|
|
||||||
|
@ -2551,7 +2551,7 @@ skip_ifunc:
|
||||||
we don't know what the GOT base is. */
|
we don't know what the GOT base is. */
|
||||||
const char *name;
|
const char *name;
|
||||||
|
|
||||||
disallow_got32:
|
disallow_got32:
|
||||||
if (h == NULL || h->root.root.string == NULL)
|
if (h == NULL || h->root.root.string == NULL)
|
||||||
name = bfd_elf_sym_name (input_bfd, symtab_hdr, sym,
|
name = bfd_elf_sym_name (input_bfd, symtab_hdr, sym,
|
||||||
NULL);
|
NULL);
|
||||||
|
@ -3409,12 +3409,12 @@ disallow_got32:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
do_relocation:
|
do_relocation:
|
||||||
r = _bfd_final_link_relocate (howto, input_bfd, input_section,
|
r = _bfd_final_link_relocate (howto, input_bfd, input_section,
|
||||||
contents, rel->r_offset,
|
contents, rel->r_offset,
|
||||||
relocation, 0);
|
relocation, 0);
|
||||||
|
|
||||||
check_relocation_error:
|
check_relocation_error:
|
||||||
if (r != bfd_reloc_ok)
|
if (r != bfd_reloc_ok)
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
|
@ -3848,7 +3848,7 @@ elf_i386_finish_dynamic_symbol (bfd *output_bfd,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BFD_ASSERT((h->got.offset & 1) == 0);
|
BFD_ASSERT((h->got.offset & 1) == 0);
|
||||||
do_glob_dat:
|
do_glob_dat:
|
||||||
bfd_put_32 (output_bfd, (bfd_vma) 0,
|
bfd_put_32 (output_bfd, (bfd_vma) 0,
|
||||||
htab->elf.sgot->contents + h->got.offset);
|
htab->elf.sgot->contents + h->got.offset);
|
||||||
rel.r_info = ELF32_R_INFO (h->dynindx, R_386_GLOB_DAT);
|
rel.r_info = ELF32_R_INFO (h->dynindx, R_386_GLOB_DAT);
|
||||||
|
|
|
@ -4455,7 +4455,7 @@ bfd_m68k_elf32_create_embedded_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||||
free (internal_relocs);
|
free (internal_relocs);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
||||||
free (isymbuf);
|
free (isymbuf);
|
||||||
if (internal_relocs != NULL
|
if (internal_relocs != NULL
|
||||||
|
|
|
@ -2493,7 +2493,7 @@ msp430_elf_relax_section (bfd * abfd, asection * sec,
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
||||||
free (isymbuf);
|
free (isymbuf);
|
||||||
if (contents != NULL
|
if (contents != NULL
|
||||||
|
|
|
@ -4281,7 +4281,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
||||||
|
|
||||||
eh->dyn_relocs = NULL;
|
eh->dyn_relocs = NULL;
|
||||||
|
|
||||||
keep:;
|
keep:;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Finally, allocate space. */
|
/* Finally, allocate space. */
|
||||||
|
@ -5827,7 +5827,7 @@ nds32_elf_relocate_section (bfd * output_bfd ATTRIBUTE_UNUSED,
|
||||||
case R_NDS32_SDA15S0_RELA:
|
case R_NDS32_SDA15S0_RELA:
|
||||||
case R_NDS32_SDA15S0:
|
case R_NDS32_SDA15S0:
|
||||||
align = 0x0;
|
align = 0x0;
|
||||||
handle_sda:
|
handle_sda:
|
||||||
BFD_ASSERT (sec != NULL);
|
BFD_ASSERT (sec != NULL);
|
||||||
|
|
||||||
/* If the symbol is in the abs section, the out_bfd will be null.
|
/* If the symbol is in the abs section, the out_bfd will be null.
|
||||||
|
@ -6155,7 +6155,7 @@ handle_sda:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
check_reloc:
|
check_reloc:
|
||||||
|
|
||||||
if (r != bfd_reloc_ok)
|
if (r != bfd_reloc_ok)
|
||||||
{
|
{
|
||||||
|
@ -6204,7 +6204,7 @@ check_reloc:
|
||||||
errmsg = _("internal error: unknown error");
|
errmsg = _("internal error: unknown error");
|
||||||
/* Fall through. */
|
/* Fall through. */
|
||||||
|
|
||||||
common_error:
|
common_error:
|
||||||
(*info->callbacks->warning) (info, errmsg, name, input_bfd,
|
(*info->callbacks->warning) (info, errmsg, name, input_bfd,
|
||||||
input_section, offset);
|
input_section, offset);
|
||||||
break;
|
break;
|
||||||
|
@ -6488,7 +6488,7 @@ nds32_elf_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
|
||||||
goto get_vma;
|
goto get_vma;
|
||||||
case DT_JMPREL:
|
case DT_JMPREL:
|
||||||
s = ehtab->srelplt->output_section;
|
s = ehtab->srelplt->output_section;
|
||||||
get_vma:
|
get_vma:
|
||||||
BFD_ASSERT (s != NULL);
|
BFD_ASSERT (s != NULL);
|
||||||
dyn.d_un.d_ptr = s->vma;
|
dyn.d_un.d_ptr = s->vma;
|
||||||
bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
|
bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
|
||||||
|
@ -8281,7 +8281,7 @@ nds32_convert_32_to_16 (bfd *abfd, uint32_t insn, uint16_t *pinsn16,
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
/* Bit-15 of insn16 should be set for a valid instruction. */
|
/* Bit-15 of insn16 should be set for a valid instruction. */
|
||||||
if ((insn16 & 0x8000) == 0)
|
if ((insn16 & 0x8000) == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -8603,7 +8603,7 @@ nds32_convert_16_to_32 (bfd *abfd, uint16_t insn16, uint32_t *pinsn)
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if (insn & 0x80000000)
|
if (insn & 0x80000000)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -9448,7 +9448,7 @@ nds32_elf_relax_delete_blanks (bfd *abfd, asection *sec,
|
||||||
if (p < endp)
|
if (p < endp)
|
||||||
*p |= 0x80;
|
*p |= 0x80;
|
||||||
}
|
}
|
||||||
done_adjust_diff:
|
done_adjust_diff:
|
||||||
|
|
||||||
if (sec == sect)
|
if (sec == sect)
|
||||||
{
|
{
|
||||||
|
@ -12567,7 +12567,7 @@ nds32_elf_relax_section (bfd *abfd, asection *sec,
|
||||||
clean_nds32_elf_blank ();
|
clean_nds32_elf_blank ();
|
||||||
}
|
}
|
||||||
|
|
||||||
finish:
|
finish:
|
||||||
if (internal_relocs != NULL
|
if (internal_relocs != NULL
|
||||||
&& elf_section_data (sec)->relocs != internal_relocs)
|
&& elf_section_data (sec)->relocs != internal_relocs)
|
||||||
free (internal_relocs);
|
free (internal_relocs);
|
||||||
|
@ -12581,7 +12581,7 @@ finish:
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
result = FALSE;
|
result = FALSE;
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
@ -13152,7 +13152,7 @@ nds32_fag_remove_unused_fpbase (bfd *abfd, asection *sec,
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
|
|
||||||
finish:
|
finish:
|
||||||
if (relax_blank_list)
|
if (relax_blank_list)
|
||||||
{
|
{
|
||||||
nds32_elf_relax_delete_blanks (abfd, sec, relax_blank_list);
|
nds32_elf_relax_delete_blanks (abfd, sec, relax_blank_list);
|
||||||
|
@ -13160,7 +13160,7 @@ finish:
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
result = FALSE;
|
result = FALSE;
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
@ -13291,7 +13291,7 @@ nds32_elf_get_relocated_section_contents (bfd *abfd,
|
||||||
free (reloc_vector);
|
free (reloc_vector);
|
||||||
return data;
|
return data;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
free (reloc_vector);
|
free (reloc_vector);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -14018,7 +14018,7 @@ nds32_elf_unify_tls_model (bfd *inbfd, asection *insec, bfd_byte *incontents,
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
finish:
|
finish:
|
||||||
if (incontents)
|
if (incontents)
|
||||||
contents = NULL;
|
contents = NULL;
|
||||||
|
|
||||||
|
@ -14047,7 +14047,7 @@ finish:
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
result = FALSE;
|
result = FALSE;
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3062,7 +3062,7 @@ nios2_elf_assign_gp (bfd *output_bfd, bfd_vma *pgp, struct bfd_link_info *info)
|
||||||
|
|
||||||
h = bfd_hash_lookup (&info->hash->table, "_gp", FALSE, FALSE);
|
h = bfd_hash_lookup (&info->hash->table, "_gp", FALSE, FALSE);
|
||||||
lh = (struct bfd_link_hash_entry *) h;
|
lh = (struct bfd_link_hash_entry *) h;
|
||||||
lookup:
|
lookup:
|
||||||
if (lh)
|
if (lh)
|
||||||
{
|
{
|
||||||
switch (lh->type)
|
switch (lh->type)
|
||||||
|
|
|
@ -1529,7 +1529,7 @@ pru_elf32_relax_section (bfd * abfd, asection * sec,
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
||||||
free (isymbuf);
|
free (isymbuf);
|
||||||
if (contents != NULL
|
if (contents != NULL
|
||||||
|
|
|
@ -7839,7 +7839,7 @@ compute_text_actions (bfd *abfd,
|
||||||
print_action_list (stderr, &relax_info->action_list);
|
print_action_list (stderr, &relax_info->action_list);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
release_contents (sec, contents);
|
release_contents (sec, contents);
|
||||||
release_internal_relocs (sec, internal_relocs);
|
release_internal_relocs (sec, internal_relocs);
|
||||||
if (prop_table)
|
if (prop_table)
|
||||||
|
@ -8844,7 +8844,7 @@ compute_removed_literals (bfd *abfd,
|
||||||
print_action_list (stderr, &relax_info->action_list);
|
print_action_list (stderr, &relax_info->action_list);
|
||||||
#endif /* DEBUG */
|
#endif /* DEBUG */
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (prop_table)
|
if (prop_table)
|
||||||
free (prop_table);
|
free (prop_table);
|
||||||
free_section_cache (&target_sec_cache);
|
free_section_cache (&target_sec_cache);
|
||||||
|
|
|
@ -1674,7 +1674,7 @@ get_dyn_sym_info (struct elf64_ia64_link_hash_table *ia64_info,
|
||||||
*size_p = size;
|
*size_p = size;
|
||||||
*info_p = info;
|
*info_p = info;
|
||||||
|
|
||||||
has_space:
|
has_space:
|
||||||
/* Append the new one to the array. */
|
/* Append the new one to the array. */
|
||||||
dyn_i = info + count;
|
dyn_i = info + count;
|
||||||
memset (dyn_i, 0, sizeof (*dyn_i));
|
memset (dyn_i, 0, sizeof (*dyn_i));
|
||||||
|
@ -3284,7 +3284,7 @@ elf64_ia64_choose_gp (bfd *abfd, struct bfd_link_info *info, bfd_boolean final)
|
||||||
{
|
{
|
||||||
if (max_short_vma - min_short_vma >= 0x400000)
|
if (max_short_vma - min_short_vma >= 0x400000)
|
||||||
{
|
{
|
||||||
overflow:
|
overflow:
|
||||||
_bfd_error_handler
|
_bfd_error_handler
|
||||||
/* xgettext:c-format */
|
/* xgettext:c-format */
|
||||||
(_("%pB: short data segment overflowed (%#" PRIx64 " >= 0x400000)"),
|
(_("%pB: short data segment overflowed (%#" PRIx64 " >= 0x400000)"),
|
||||||
|
@ -4848,7 +4848,7 @@ elf64_vms_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|
||||||
/* Extract IDENT. */
|
/* Extract IDENT. */
|
||||||
if (!bfd_malloc_and_get_section (abfd, s, &dynbuf))
|
if (!bfd_malloc_and_get_section (abfd, s, &dynbuf))
|
||||||
{
|
{
|
||||||
error_free_dyn:
|
error_free_dyn:
|
||||||
free (dynbuf);
|
free (dynbuf);
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1662,7 +1662,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
|
||||||
if (no_overflow)
|
if (no_overflow)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
convert:
|
convert:
|
||||||
if (opcode == 0xff)
|
if (opcode == 0xff)
|
||||||
{
|
{
|
||||||
/* We have "call/jmp *foo@GOTPCREL(%rip)". */
|
/* We have "call/jmp *foo@GOTPCREL(%rip)". */
|
||||||
|
@ -1787,7 +1787,7 @@ convert:
|
||||||
overflow when sign-extending imm32 to imm64. */
|
overflow when sign-extending imm32 to imm64. */
|
||||||
r_type = (rex & REX_W) != 0 ? R_X86_64_32S : R_X86_64_32;
|
r_type = (rex & REX_W) != 0 ? R_X86_64_32S : R_X86_64_32;
|
||||||
|
|
||||||
rewrite_modrm_rex:
|
rewrite_modrm_rex:
|
||||||
bfd_put_8 (abfd, modrm, contents + roff - 1);
|
bfd_put_8 (abfd, modrm, contents + roff - 1);
|
||||||
|
|
||||||
if (rex)
|
if (rex)
|
||||||
|
@ -2179,7 +2179,7 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||||
case R_X86_64_PC32_BND:
|
case R_X86_64_PC32_BND:
|
||||||
case R_X86_64_PC64:
|
case R_X86_64_PC64:
|
||||||
case R_X86_64_64:
|
case R_X86_64_64:
|
||||||
pointer:
|
pointer:
|
||||||
if (eh != NULL && (sec->flags & SEC_CODE) != 0)
|
if (eh != NULL && (sec->flags & SEC_CODE) != 0)
|
||||||
eh->zero_undefweak |= 0x2;
|
eh->zero_undefweak |= 0x2;
|
||||||
/* We are called after all symbols have been resolved. Only
|
/* We are called after all symbols have been resolved. Only
|
||||||
|
@ -2244,7 +2244,7 @@ pointer:
|
||||||
}
|
}
|
||||||
|
|
||||||
size_reloc = FALSE;
|
size_reloc = FALSE;
|
||||||
do_size:
|
do_size:
|
||||||
if (NEED_DYNAMIC_RELOCATION_P (info, TRUE, h, sec, r_type,
|
if (NEED_DYNAMIC_RELOCATION_P (info, TRUE, h, sec, r_type,
|
||||||
htab->pointer_r_type))
|
htab->pointer_r_type))
|
||||||
{
|
{
|
||||||
|
@ -2351,7 +2351,7 @@ do_size:
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (elf_section_data (sec)->this_hdr.contents != contents)
|
if (elf_section_data (sec)->this_hdr.contents != contents)
|
||||||
free (contents);
|
free (contents);
|
||||||
sec->check_relocs_failed = 1;
|
sec->check_relocs_failed = 1;
|
||||||
|
@ -2678,7 +2678,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
|
||||||
switch (r_type)
|
switch (r_type)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
bad_ifunc_reloc:
|
bad_ifunc_reloc:
|
||||||
if (h->root.root.string)
|
if (h->root.root.string)
|
||||||
name = h->root.root.string;
|
name = h->root.root.string;
|
||||||
else
|
else
|
||||||
|
@ -2702,7 +2702,7 @@ bad_ifunc_reloc:
|
||||||
goto do_relocation;
|
goto do_relocation;
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case R_X86_64_64:
|
case R_X86_64_64:
|
||||||
do_ifunc_pointer:
|
do_ifunc_pointer:
|
||||||
if (rel->r_addend != 0)
|
if (rel->r_addend != 0)
|
||||||
{
|
{
|
||||||
if (h->root.root.string)
|
if (h->root.root.string)
|
||||||
|
@ -2788,7 +2788,7 @@ do_ifunc_pointer:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
skip_ifunc:
|
skip_ifunc:
|
||||||
resolved_to_zero = (eh != NULL
|
resolved_to_zero = (eh != NULL
|
||||||
&& UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh));
|
&& UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh));
|
||||||
|
|
||||||
|
@ -3047,7 +3047,7 @@ skip_ifunc:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
use_plt:
|
use_plt:
|
||||||
if (h->plt.offset != (bfd_vma) -1)
|
if (h->plt.offset != (bfd_vma) -1)
|
||||||
{
|
{
|
||||||
if (htab->plt_second != NULL)
|
if (htab->plt_second != NULL)
|
||||||
|
@ -3162,7 +3162,7 @@ use_plt:
|
||||||
/* FIXME: The ABI says the linker should make sure the value is
|
/* FIXME: The ABI says the linker should make sure the value is
|
||||||
the same when it's zeroextended to 64 bit. */
|
the same when it's zeroextended to 64 bit. */
|
||||||
|
|
||||||
direct:
|
direct:
|
||||||
if ((input_section->flags & SEC_ALLOC) == 0)
|
if ((input_section->flags & SEC_ALLOC) == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -3373,7 +3373,7 @@ direct:
|
||||||
if (roff < 3
|
if (roff < 3
|
||||||
|| (roff - 3 + 22) > input_section->size)
|
|| (roff - 3 + 22) > input_section->size)
|
||||||
{
|
{
|
||||||
corrupt_input:
|
corrupt_input:
|
||||||
info->callbacks->einfo
|
info->callbacks->einfo
|
||||||
(_("%F%P: corrupt input: %pB\n"),
|
(_("%F%P: corrupt input: %pB\n"),
|
||||||
input_bfd);
|
input_bfd);
|
||||||
|
@ -4031,12 +4031,12 @@ corrupt_input:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
do_relocation:
|
do_relocation:
|
||||||
r = _bfd_final_link_relocate (howto, input_bfd, input_section,
|
r = _bfd_final_link_relocate (howto, input_bfd, input_section,
|
||||||
contents, rel->r_offset,
|
contents, rel->r_offset,
|
||||||
relocation, rel->r_addend);
|
relocation, rel->r_addend);
|
||||||
|
|
||||||
check_relocation_error:
|
check_relocation_error:
|
||||||
if (r != bfd_reloc_ok)
|
if (r != bfd_reloc_ok)
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
|
@ -4459,7 +4459,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BFD_ASSERT((h->got.offset & 1) == 0);
|
BFD_ASSERT((h->got.offset & 1) == 0);
|
||||||
do_glob_dat:
|
do_glob_dat:
|
||||||
bfd_put_64 (output_bfd, (bfd_vma) 0,
|
bfd_put_64 (output_bfd, (bfd_vma) 0,
|
||||||
htab->elf.sgot->contents + h->got.offset);
|
htab->elf.sgot->contents + h->got.offset);
|
||||||
rela.r_info = htab->r_info (h->dynindx, R_X86_64_GLOB_DAT);
|
rela.r_info = htab->r_info (h->dynindx, R_X86_64_GLOB_DAT);
|
||||||
|
|
|
@ -1398,7 +1398,7 @@ elf_slurp_symbol_table (bfd *abfd, asymbol **symptrs, bfd_boolean dynamic)
|
||||||
free (isymbuf);
|
free (isymbuf);
|
||||||
return symcount;
|
return symcount;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (xverbuf != NULL)
|
if (xverbuf != NULL)
|
||||||
free (xverbuf);
|
free (xverbuf);
|
||||||
if (isymbuf != NULL && hdr->contents != (unsigned char *) isymbuf)
|
if (isymbuf != NULL && hdr->contents != (unsigned char *) isymbuf)
|
||||||
|
|
|
@ -316,9 +316,9 @@ elf_core_file_p (bfd *abfd)
|
||||||
abfd->start_address = i_ehdrp->e_entry;
|
abfd->start_address = i_ehdrp->e_entry;
|
||||||
return abfd->xvec;
|
return abfd->xvec;
|
||||||
|
|
||||||
wrong:
|
wrong:
|
||||||
bfd_set_error (bfd_error_wrong_format);
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
fail:
|
fail:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -419,8 +419,8 @@ NAME(_bfd_elf, core_find_build_id)
|
||||||
build-id was found. */
|
build-id was found. */
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
wrong:
|
wrong:
|
||||||
bfd_set_error (bfd_error_wrong_format);
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
fail:
|
fail:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2039,7 +2039,7 @@ _bfd_elf_add_default_symbol (bfd *abfd,
|
||||||
/* We also need to define an indirection from the nondefault version
|
/* We also need to define an indirection from the nondefault version
|
||||||
of the symbol. */
|
of the symbol. */
|
||||||
|
|
||||||
nondefault:
|
nondefault:
|
||||||
len = strlen (name);
|
len = strlen (name);
|
||||||
shortname = (char *) bfd_hash_allocate (&info->hash->table, len);
|
shortname = (char *) bfd_hash_allocate (&info->hash->table, len);
|
||||||
if (shortname == NULL)
|
if (shortname == NULL)
|
||||||
|
@ -4089,7 +4089,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|
||||||
|
|
||||||
if (!bfd_malloc_and_get_section (abfd, s, &dynbuf))
|
if (!bfd_malloc_and_get_section (abfd, s, &dynbuf))
|
||||||
{
|
{
|
||||||
error_free_dyn:
|
error_free_dyn:
|
||||||
free (dynbuf);
|
free (dynbuf);
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
|
@ -8209,7 +8209,7 @@ bfd_elf_match_symbols_in_sections (asection *sec1, asection *sec2,
|
||||||
|
|
||||||
result = TRUE;
|
result = TRUE;
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if (symtable1)
|
if (symtable1)
|
||||||
free (symtable1);
|
free (symtable1);
|
||||||
if (symtable2)
|
if (symtable2)
|
||||||
|
@ -11745,7 +11745,7 @@ elf_output_implib (bfd *abfd, struct bfd_link_info *info)
|
||||||
|
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
|
|
||||||
free_sym_buf:
|
free_sym_buf:
|
||||||
free (sympp);
|
free (sympp);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4615,7 +4615,7 @@ elfNN_aarch64_size_stubs (bfd *output_bfd,
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_ret_free_local:
|
error_ret_free_local:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5507,7 +5507,7 @@ elfNN_aarch64_final_link_relocate (reloc_howto_type *howto,
|
||||||
switch (bfd_r_type)
|
switch (bfd_r_type)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
bad_ifunc_reloc:
|
bad_ifunc_reloc:
|
||||||
if (h->root.root.string)
|
if (h->root.root.string)
|
||||||
name = h->root.root.string;
|
name = h->root.root.string;
|
||||||
else
|
else
|
||||||
|
@ -9482,7 +9482,7 @@ elfNN_aarch64_finish_dynamic_symbol (bfd *output_bfd,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
do_glob_dat:
|
do_glob_dat:
|
||||||
BFD_ASSERT ((h->got.offset & 1) == 0);
|
BFD_ASSERT ((h->got.offset & 1) == 0);
|
||||||
bfd_put_NN (output_bfd, (bfd_vma) 0,
|
bfd_put_NN (output_bfd, (bfd_vma) 0,
|
||||||
htab->root.sgot->contents + h->got.offset);
|
htab->root.sgot->contents + h->got.offset);
|
||||||
|
|
|
@ -1914,7 +1914,7 @@ get_dyn_sym_info (struct elfNN_ia64_link_hash_table *ia64_info,
|
||||||
*size_p = size;
|
*size_p = size;
|
||||||
*info_p = info;
|
*info_p = info;
|
||||||
|
|
||||||
has_space:
|
has_space:
|
||||||
/* Append the new one to the array. */
|
/* Append the new one to the array. */
|
||||||
dyn_i = info + count;
|
dyn_i = info + count;
|
||||||
memset (dyn_i, 0, sizeof (*dyn_i));
|
memset (dyn_i, 0, sizeof (*dyn_i));
|
||||||
|
@ -3706,7 +3706,7 @@ elfNN_ia64_choose_gp (bfd *abfd, struct bfd_link_info *info, bfd_boolean final)
|
||||||
{
|
{
|
||||||
if (max_short_vma - min_short_vma >= 0x400000)
|
if (max_short_vma - min_short_vma >= 0x400000)
|
||||||
{
|
{
|
||||||
overflow:
|
overflow:
|
||||||
_bfd_error_handler
|
_bfd_error_handler
|
||||||
/* xgettext:c-format */
|
/* xgettext:c-format */
|
||||||
(_("%pB: short data segment overflowed (%#" PRIx64 " >= 0x400000)"),
|
(_("%pB: short data segment overflowed (%#" PRIx64 " >= 0x400000)"),
|
||||||
|
@ -4476,7 +4476,7 @@ elfNN_ia64_relocate_section (bfd *output_bfd,
|
||||||
case bfd_reloc_outofrange:
|
case bfd_reloc_outofrange:
|
||||||
case bfd_reloc_overflow:
|
case bfd_reloc_overflow:
|
||||||
default:
|
default:
|
||||||
missing_tls_sec:
|
missing_tls_sec:
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
|
|
||||||
|
|
|
@ -2396,7 +2396,7 @@ riscv_elf_relocate_section (bfd *output_bfd,
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = riscv_resolve_pcrel_lo_relocs (&pcrel_relocs);
|
ret = riscv_resolve_pcrel_lo_relocs (&pcrel_relocs);
|
||||||
out:
|
out:
|
||||||
riscv_free_pcrel_relocs (&pcrel_relocs);
|
riscv_free_pcrel_relocs (&pcrel_relocs);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -3245,7 +3245,7 @@ _bfd_riscv_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info)
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
bfd_set_error (bfd_error_bad_value);
|
bfd_set_error (bfd_error_bad_value);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -4219,7 +4219,7 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec,
|
||||||
|
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
if (relocs != data->relocs)
|
if (relocs != data->relocs)
|
||||||
free (relocs);
|
free (relocs);
|
||||||
riscv_free_pcgp_relocs(&pcgp_relocs, abfd, sec);
|
riscv_free_pcgp_relocs(&pcgp_relocs, abfd, sec);
|
||||||
|
|
|
@ -13385,7 +13385,7 @@ _bfd_elf_mips_get_relocated_section_contents
|
||||||
free (reloc_vector);
|
free (reloc_vector);
|
||||||
return data;
|
return data;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
if (reloc_vector != NULL)
|
if (reloc_vector != NULL)
|
||||||
free (reloc_vector);
|
free (reloc_vector);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -4139,7 +4139,7 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
|
||||||
|
|
||||||
if (r == bfd_reloc_continue)
|
if (r == bfd_reloc_continue)
|
||||||
{
|
{
|
||||||
do_relocation:
|
do_relocation:
|
||||||
r = _bfd_final_link_relocate (howto, input_bfd, input_section,
|
r = _bfd_final_link_relocate (howto, input_bfd, input_section,
|
||||||
contents, rel->r_offset,
|
contents, rel->r_offset,
|
||||||
relocation, rel->r_addend);
|
relocation, rel->r_addend);
|
||||||
|
|
|
@ -2347,7 +2347,7 @@ _bfd_x86_elf_get_synthetic_symtab (bfd *abfd,
|
||||||
/* PLT entries with R_386_TLS_DESC relocations are skipped. */
|
/* PLT entries with R_386_TLS_DESC relocations are skipped. */
|
||||||
if (n == 0)
|
if (n == 0)
|
||||||
{
|
{
|
||||||
bad_return:
|
bad_return:
|
||||||
count = -1;
|
count = -1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2626,7 +2626,7 @@ _bfd_x86_elf_link_setup_gnu_properties
|
||||||
|
|
||||||
if (!bfd_set_section_alignment (sec, class_align))
|
if (!bfd_set_section_alignment (sec, class_align))
|
||||||
{
|
{
|
||||||
error_alignment:
|
error_alignment:
|
||||||
info->callbacks->einfo (_("%F%pA: failed to align section\n"),
|
info->callbacks->einfo (_("%F%pA: failed to align section\n"),
|
||||||
sec);
|
sec);
|
||||||
}
|
}
|
||||||
|
|
|
@ -399,7 +399,7 @@ NAME(lynx,slurp_reloc_table) (bfd *abfd,
|
||||||
bfd_set_error (bfd_error_invalid_operation);
|
bfd_set_error (bfd_error_invalid_operation);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
doit:
|
doit:
|
||||||
if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0)
|
if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
each_size = obj_reloc_entry_size (abfd);
|
each_size = obj_reloc_entry_size (abfd);
|
||||||
|
|
|
@ -549,7 +549,7 @@ record_section (struct sec_merge_info *sinfo,
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
for (secinfo = sinfo->chain; secinfo; secinfo = secinfo->next)
|
for (secinfo = sinfo->chain; secinfo; secinfo = secinfo->next)
|
||||||
*secinfo->psecinfo = NULL;
|
*secinfo->psecinfo = NULL;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
|
@ -1632,7 +1632,7 @@ NAME (aout, write_syms) (bfd *abfd)
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
_bfd_stringtab_free (strtab);
|
_bfd_stringtab_free (strtab);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -725,7 +725,7 @@ try_load_plugin (const char *pname,
|
||||||
abfd->plugin_format = bfd_plugin_yes;
|
abfd->plugin_format = bfd_plugin_yes;
|
||||||
result = 1;
|
result = 1;
|
||||||
|
|
||||||
short_circuit:
|
short_circuit:
|
||||||
dlclose (plugin_handle);
|
dlclose (plugin_handle);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8474,7 +8474,7 @@ bfd_generic_get_relocated_section_contents (bfd *abfd,
|
||||||
free (reloc_vector);
|
free (reloc_vector);
|
||||||
return data;
|
return data;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
free (reloc_vector);
|
free (reloc_vector);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2020-02-26 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* elfedit.c: Indent labels correctly.
|
||||||
|
* readelf.c: Likewise.
|
||||||
|
* resres.c: Likewise.
|
||||||
|
|
||||||
2020-02-25 H.J. Lu <hongjiu.lu@intel.com>
|
2020-02-25 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR binutils/25584
|
PR binutils/25584
|
||||||
|
|
|
@ -238,7 +238,7 @@ update_gnu_property (const char *file_name, FILE *file)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
error (_("%s: Invalid PT_NOTE segment\n"), file_name);
|
error (_("%s: Invalid PT_NOTE segment\n"), file_name);
|
||||||
|
|
||||||
|
|
|
@ -18061,7 +18061,7 @@ print_gnu_property_note (Filedata * filedata, Elf_Internal_Note * pnote)
|
||||||
printf ("%02x ", ptr[j] & 0xff);
|
printf ("%02x ", ptr[j] & 0xff);
|
||||||
printf (">");
|
printf (">");
|
||||||
|
|
||||||
next:
|
next:
|
||||||
ptr += ((datasz + (size - 1)) & ~ (size - 1));
|
ptr += ((datasz + (size - 1)) & ~ (size - 1));
|
||||||
if (ptr == ptr_end)
|
if (ptr == ptr_end)
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -619,7 +619,7 @@ skip_null_resource (windres_bfd *wrbfd, rc_uint_type *off, rc_uint_type omax)
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
skip_err:
|
skip_err:
|
||||||
fprintf (stderr, "%s: %s: Not a valid WIN32 resource file\n", program_name,
|
fprintf (stderr, "%s: %s: Not a valid WIN32 resource file\n", program_name,
|
||||||
filename);
|
filename);
|
||||||
xexit (1);
|
xexit (1);
|
||||||
|
|
|
@ -1,3 +1,27 @@
|
||||||
|
2020-02-26 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* config/obj-elf.c: Indent labels correctly.
|
||||||
|
* config/obj-macho.c: Likewise.
|
||||||
|
* config/tc-aarch64.c: Likewise.
|
||||||
|
* config/tc-alpha.c: Likewise.
|
||||||
|
* config/tc-arm.c: Likewise.
|
||||||
|
* config/tc-cr16.c: Likewise.
|
||||||
|
* config/tc-crx.c: Likewise.
|
||||||
|
* config/tc-frv.c: Likewise.
|
||||||
|
* config/tc-i386-intel.c: Likewise.
|
||||||
|
* config/tc-i386.c: Likewise.
|
||||||
|
* config/tc-ia64.c: Likewise.
|
||||||
|
* config/tc-mn10200.c: Likewise.
|
||||||
|
* config/tc-mn10300.c: Likewise.
|
||||||
|
* config/tc-nds32.c: Likewise.
|
||||||
|
* config/tc-riscv.c: Likewise.
|
||||||
|
* config/tc-s12z.c: Likewise.
|
||||||
|
* config/tc-xtensa.c: Likewise.
|
||||||
|
* config/tc-z80.c: Likewise.
|
||||||
|
* read.c: Likewise.
|
||||||
|
* symbols.c: Likewise.
|
||||||
|
* write.c: Likewise.
|
||||||
|
|
||||||
2020-02-20 Nelson Chu <nelson.chu@sifive.com>
|
2020-02-20 Nelson Chu <nelson.chu@sifive.com>
|
||||||
|
|
||||||
* config/tc-riscv.c (riscv_ip): New boolean insn_with_csr to indicate
|
* config/tc-riscv.c (riscv_ip): New boolean insn_with_csr to indicate
|
||||||
|
|
|
@ -1340,7 +1340,7 @@ obj_elf_section (int push)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
demand_empty_rest_of_line ();
|
demand_empty_rest_of_line ();
|
||||||
|
|
||||||
obj_elf_change_section (name, type, attr, entsize, &match, linkonce,
|
obj_elf_change_section (name, type, attr, entsize, &match, linkonce,
|
||||||
|
@ -1879,11 +1879,11 @@ obj_elf_vendor_attribute (int vendor)
|
||||||
|
|
||||||
demand_empty_rest_of_line ();
|
demand_empty_rest_of_line ();
|
||||||
return tag;
|
return tag;
|
||||||
bad_string:
|
bad_string:
|
||||||
as_bad (_("bad string constant"));
|
as_bad (_("bad string constant"));
|
||||||
ignore_rest_of_line ();
|
ignore_rest_of_line ();
|
||||||
return 0;
|
return 0;
|
||||||
bad:
|
bad:
|
||||||
as_bad (_("expected <tag> , <value>"));
|
as_bad (_("expected <tag> , <value>"));
|
||||||
ignore_rest_of_line ();
|
ignore_rest_of_line ();
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -587,7 +587,7 @@ obj_mach_o_zerofill (int ignore ATTRIBUTE_UNUSED)
|
||||||
S_CLEAR_EXTERNAL (sym);
|
S_CLEAR_EXTERNAL (sym);
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
/* switch back to the section that was current before the .zerofill. */
|
/* switch back to the section that was current before the .zerofill. */
|
||||||
subseg_set (old_seg, 0);
|
subseg_set (old_seg, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -883,7 +883,7 @@ parse_vector_type_for_operand (aarch64_reg_type reg_type,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
elt_size:
|
elt_size:
|
||||||
switch (TOLOWER (*ptr))
|
switch (TOLOWER (*ptr))
|
||||||
{
|
{
|
||||||
case 'b':
|
case 'b':
|
||||||
|
@ -2424,7 +2424,7 @@ parse_aarch64_imm_float (char **ccp, int *immed, bfd_boolean dp_p,
|
||||||
*ccp = str;
|
*ccp = str;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
invalid_fp:
|
invalid_fp:
|
||||||
set_fatal_syntax_error (_("invalid floating-point constant"));
|
set_fatal_syntax_error (_("invalid floating-point constant"));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -5216,7 +5216,7 @@ vectype_to_qualifier (const struct vector_type_el *vectype)
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
vectype_conversion_fail:
|
vectype_conversion_fail:
|
||||||
first_error (_("bad vector arrangement type"));
|
first_error (_("bad vector arrangement type"));
|
||||||
return AARCH64_OPND_QLF_NIL;
|
return AARCH64_OPND_QLF_NIL;
|
||||||
}
|
}
|
||||||
|
@ -6652,7 +6652,7 @@ parse_operands (char *str, const aarch64_opcode *opcode)
|
||||||
case AARCH64_OPND_SYSREG_TLBI:
|
case AARCH64_OPND_SYSREG_TLBI:
|
||||||
inst.base.operands[i].sysins_op =
|
inst.base.operands[i].sysins_op =
|
||||||
parse_sys_ins_reg (&str, aarch64_sys_regs_tlbi_hsh);
|
parse_sys_ins_reg (&str, aarch64_sys_regs_tlbi_hsh);
|
||||||
sys_reg_ins:
|
sys_reg_ins:
|
||||||
if (inst.base.operands[i].sysins_op == NULL)
|
if (inst.base.operands[i].sysins_op == NULL)
|
||||||
{
|
{
|
||||||
set_fatal_syntax_error ( _("unknown or missing operation name"));
|
set_fatal_syntax_error ( _("unknown or missing operation name"));
|
||||||
|
@ -6707,7 +6707,7 @@ sys_reg_ins:
|
||||||
inst.base.operands[i].present = 1;
|
inst.base.operands[i].present = 1;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
failure:
|
failure:
|
||||||
/* The parse routine should already have set the error, but in case
|
/* The parse routine should already have set the error, but in case
|
||||||
not, set a default one here. */
|
not, set a default one here. */
|
||||||
if (! error_p ())
|
if (! error_p ())
|
||||||
|
@ -6773,7 +6773,7 @@ failure:
|
||||||
(_("unexpected characters following instruction"));
|
(_("unexpected characters following instruction"));
|
||||||
}
|
}
|
||||||
|
|
||||||
parse_operands_return:
|
parse_operands_return:
|
||||||
|
|
||||||
if (error_p ())
|
if (error_p ())
|
||||||
{
|
{
|
||||||
|
@ -8263,7 +8263,7 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
apply_fix_return:
|
apply_fix_return:
|
||||||
/* Free the allocated the struct aarch64_inst.
|
/* Free the allocated the struct aarch64_inst.
|
||||||
N.B. currently there are very limited number of fix-up types actually use
|
N.B. currently there are very limited number of fix-up types actually use
|
||||||
this field, so the impact on the performance should be minimal . */
|
this field, so the impact on the performance should be minimal . */
|
||||||
|
|
|
@ -1021,7 +1021,7 @@ tokenize_arguments (char *str,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fini:
|
fini:
|
||||||
if (saw_comma)
|
if (saw_comma)
|
||||||
goto err;
|
goto err;
|
||||||
input_line_pointer = old_input_line_pointer;
|
input_line_pointer = old_input_line_pointer;
|
||||||
|
@ -1035,7 +1035,7 @@ fini:
|
||||||
|
|
||||||
return ntok - (end_tok - tok);
|
return ntok - (end_tok - tok);
|
||||||
|
|
||||||
err:
|
err:
|
||||||
#ifdef RELOC_OP_P
|
#ifdef RELOC_OP_P
|
||||||
is_end_of_line[(unsigned char) '!'] = 0;
|
is_end_of_line[(unsigned char) '!'] = 0;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1043,7 +1043,7 @@ err:
|
||||||
return TOKENIZE_ERROR;
|
return TOKENIZE_ERROR;
|
||||||
|
|
||||||
#ifdef RELOC_OP_P
|
#ifdef RELOC_OP_P
|
||||||
err_report:
|
err_report:
|
||||||
is_end_of_line[(unsigned char) '!'] = 0;
|
is_end_of_line[(unsigned char) '!'] = 0;
|
||||||
#endif
|
#endif
|
||||||
input_line_pointer = old_input_line_pointer;
|
input_line_pointer = old_input_line_pointer;
|
||||||
|
@ -5136,7 +5136,7 @@ s_alpha_arch (int ignored ATTRIBUTE_UNUSED)
|
||||||
}
|
}
|
||||||
as_warn (_("Unknown CPU identifier `%s'"), name);
|
as_warn (_("Unknown CPU identifier `%s'"), name);
|
||||||
|
|
||||||
found:
|
found:
|
||||||
(void) restore_line_pointer (ch);
|
(void) restore_line_pointer (ch);
|
||||||
demand_empty_rest_of_line ();
|
demand_empty_rest_of_line ();
|
||||||
}
|
}
|
||||||
|
@ -5976,10 +5976,10 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg)
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
write_done:
|
write_done:
|
||||||
md_number_to_chars (fixpos, image, 4);
|
md_number_to_chars (fixpos, image, 4);
|
||||||
|
|
||||||
done:
|
done:
|
||||||
fixP->fx_done = 1;
|
fixP->fx_done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6343,7 +6343,7 @@ tc_get_register (int frame ATTRIBUTE_UNUSED)
|
||||||
}
|
}
|
||||||
as_warn (_("frame reg expected, using $%d."), framereg);
|
as_warn (_("frame reg expected, using $%d."), framereg);
|
||||||
|
|
||||||
found:
|
found:
|
||||||
note_gpreg (framereg);
|
note_gpreg (framereg);
|
||||||
return framereg;
|
return framereg;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4648,7 +4648,7 @@ s_arm_unwind_save_mmxwr (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
error:
|
error:
|
||||||
ignore_rest_of_line ();
|
ignore_rest_of_line ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4716,7 +4716,7 @@ s_arm_unwind_save_mmxwcg (void)
|
||||||
op = 0xc700 | mask;
|
op = 0xc700 | mask;
|
||||||
add_unwind_opcode (op, 2);
|
add_unwind_opcode (op, 2);
|
||||||
return;
|
return;
|
||||||
error:
|
error:
|
||||||
ignore_rest_of_line ();
|
ignore_rest_of_line ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5091,7 +5091,7 @@ set_fp16_format (int dummy ATTRIBUTE_UNUSED)
|
||||||
as_warn (_("float16 format cannot be set more than once, ignoring."));
|
as_warn (_("float16 format cannot be set more than once, ignoring."));
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
*input_line_pointer = saved_char;
|
*input_line_pointer = saved_char;
|
||||||
ignore_rest_of_line ();
|
ignore_rest_of_line ();
|
||||||
}
|
}
|
||||||
|
@ -6368,7 +6368,7 @@ parse_psr (char **str, bfd_boolean lhs)
|
||||||
goto unsupported_psr;
|
goto unsupported_psr;
|
||||||
|
|
||||||
p += 4;
|
p += 4;
|
||||||
check_suffix:
|
check_suffix:
|
||||||
if (*p == '_')
|
if (*p == '_')
|
||||||
{
|
{
|
||||||
/* A suffix follows. */
|
/* A suffix follows. */
|
||||||
|
@ -18307,7 +18307,7 @@ do_mve_vmull (void)
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
neon_vmul:
|
neon_vmul:
|
||||||
inst.instruction = N_MNEM_vmul;
|
inst.instruction = N_MNEM_vmul;
|
||||||
inst.cond = 0xb;
|
inst.cond = 0xb;
|
||||||
if (thumb_mode)
|
if (thumb_mode)
|
||||||
|
@ -19707,7 +19707,7 @@ neon_scalar_for_fmac_fp16_long (unsigned scalar, unsigned quad_p)
|
||||||
| ((elno & 0x1) << 3));
|
| ((elno & 0x1) << 3));
|
||||||
}
|
}
|
||||||
|
|
||||||
bad_scalar:
|
bad_scalar:
|
||||||
first_error (_("scalar out of range for multiply instruction"));
|
first_error (_("scalar out of range for multiply instruction"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -32888,7 +32888,7 @@ get_aeabi_cpu_arch_from_fset (const arm_feature_set *arch_ext_fset,
|
||||||
if (p_ver_ret == NULL)
|
if (p_ver_ret == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
found:
|
found:
|
||||||
/* Tag_CPU_arch_profile. */
|
/* Tag_CPU_arch_profile. */
|
||||||
if (ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v7a)
|
if (ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v7a)
|
||||||
|| ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v8)
|
|| ARM_CPU_HAS_FEATURE (p_ver_ret->flags, arm_ext_v8)
|
||||||
|
|
|
@ -2329,8 +2329,8 @@ assemble_insn (const char *mnemonic, ins *insn)
|
||||||
match = 1;
|
match = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Try again with next instruction. */
|
/* Try again with next instruction. */
|
||||||
next_insn:
|
next_insn:
|
||||||
instruction++;
|
instruction++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -900,8 +900,8 @@ parse_operand (char *operand, ins * crx_ins)
|
||||||
cur_arg->type = arg_c;
|
cur_arg->type = arg_c;
|
||||||
goto set_params;
|
goto set_params;
|
||||||
|
|
||||||
/* Parse an operand according to its type. */
|
/* Parse an operand according to its type. */
|
||||||
set_params:
|
set_params:
|
||||||
cur_arg->constant = 0;
|
cur_arg->constant = 0;
|
||||||
set_operand (operand, crx_ins);
|
set_operand (operand, crx_ins);
|
||||||
}
|
}
|
||||||
|
@ -1570,8 +1570,8 @@ assemble_insn (char *mnemonic, ins *insn)
|
||||||
match = 1;
|
match = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Try again with next instruction. */
|
/* Try again with next instruction. */
|
||||||
next_insn:
|
next_insn:
|
||||||
instruction++;
|
instruction++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1845,7 +1845,7 @@ preprocess_reglist (char *param, int *allocated)
|
||||||
as_bad (_("Maximum %d bits may be set in `mask16' operand"),
|
as_bad (_("Maximum %d bits may be set in `mask16' operand"),
|
||||||
MAX_REGS_IN_MASK16);
|
MAX_REGS_IN_MASK16);
|
||||||
|
|
||||||
next_inst:
|
next_inst:
|
||||||
while (!ISALNUM (*paramP) && *paramP != '}')
|
while (!ISALNUM (*paramP) && *paramP != '}')
|
||||||
paramP++;
|
paramP++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -858,7 +858,7 @@ frv_tomcat_analyze_vliw_chains (void)
|
||||||
|
|
||||||
vliw1 = vliw_chain_top;
|
vliw1 = vliw_chain_top;
|
||||||
|
|
||||||
workaround_top:
|
workaround_top:
|
||||||
|
|
||||||
FRV_SET_VLIW_WINDOW (vliw1, vliw2, vliw3);
|
FRV_SET_VLIW_WINDOW (vliw1, vliw2, vliw3);
|
||||||
|
|
||||||
|
|
|
@ -509,7 +509,7 @@ static int i386_intel_simplify (expressionS *e)
|
||||||
|
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
default:
|
default:
|
||||||
fallthrough:
|
fallthrough:
|
||||||
if (e->X_add_symbol
|
if (e->X_add_symbol
|
||||||
&& !i386_intel_simplify_symbol (e->X_add_symbol))
|
&& !i386_intel_simplify_symbol (e->X_add_symbol))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -2189,7 +2189,7 @@ operand_size_match (const insn_template *t)
|
||||||
|
|
||||||
if (!t->opcode_modifier.d)
|
if (!t->opcode_modifier.d)
|
||||||
{
|
{
|
||||||
mismatch:
|
mismatch:
|
||||||
if (!match)
|
if (!match)
|
||||||
i.error = operand_size_mismatch;
|
i.error = operand_size_mismatch;
|
||||||
return match;
|
return match;
|
||||||
|
@ -2244,7 +2244,7 @@ operand_type_match (i386_operand_type overlap,
|
||||||
if (given.bitfield.baseindex == overlap.bitfield.baseindex)
|
if (given.bitfield.baseindex == overlap.bitfield.baseindex)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
mismatch:
|
mismatch:
|
||||||
i.error = operand_type_mismatch;
|
i.error = operand_type_mismatch;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -4792,7 +4792,7 @@ parse_insn (char *line, char *mnemonic)
|
||||||
|
|
||||||
if (!current_templates)
|
if (!current_templates)
|
||||||
{
|
{
|
||||||
check_suffix:
|
check_suffix:
|
||||||
if (mnem_p > mnemonic)
|
if (mnem_p > mnemonic)
|
||||||
{
|
{
|
||||||
/* See if we can get a match by trimming off a suffix. */
|
/* See if we can get a match by trimming off a suffix. */
|
||||||
|
@ -6030,7 +6030,7 @@ match_template (char mnem_suffix)
|
||||||
if (!t->opcode_modifier.d)
|
if (!t->opcode_modifier.d)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
check_reverse:
|
check_reverse:
|
||||||
if (!(size_match & MATCH_REVERSE))
|
if (!(size_match & MATCH_REVERSE))
|
||||||
continue;
|
continue;
|
||||||
/* Try reversing direction of operands. */
|
/* Try reversing direction of operands. */
|
||||||
|
@ -7075,7 +7075,7 @@ process_operands (void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
duplicate:
|
duplicate:
|
||||||
i.operands++;
|
i.operands++;
|
||||||
i.reg_operands++;
|
i.reg_operands++;
|
||||||
i.tm.operands++;
|
i.tm.operands++;
|
||||||
|
@ -10404,7 +10404,7 @@ i386_index_check (const char *operand_string)
|
||||||
else
|
else
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
bad_address:
|
bad_address:
|
||||||
as_bad (_("`%s' is not a valid %s expression"),
|
as_bad (_("`%s' is not a valid %s expression"),
|
||||||
operand_string, kind);
|
operand_string, kind);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -11845,7 +11845,7 @@ dot_alias (int section)
|
||||||
{
|
{
|
||||||
as_fatal (_("inserting \"%s\" into %s name hash table failed: %s"),
|
as_fatal (_("inserting \"%s\" into %s name hash table failed: %s"),
|
||||||
alias, kind, error_string);
|
alias, kind, error_string);
|
||||||
out:
|
out:
|
||||||
obstack_free (¬es, name);
|
obstack_free (¬es, name);
|
||||||
obstack_free (¬es, alias);
|
obstack_free (¬es, alias);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1103,7 +1103,7 @@ md_assemble (char *str)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
keep_going:
|
keep_going:
|
||||||
str = input_line_pointer;
|
str = input_line_pointer;
|
||||||
input_line_pointer = hold;
|
input_line_pointer = hold;
|
||||||
|
|
||||||
|
|
|
@ -1759,7 +1759,7 @@ md_assemble (char *str)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
keep_going:
|
keep_going:
|
||||||
str = input_line_pointer;
|
str = input_line_pointer;
|
||||||
input_line_pointer = hold;
|
input_line_pointer = hold;
|
||||||
|
|
||||||
|
|
|
@ -3501,7 +3501,7 @@ nds32_pseudo_opcode_wrapper (char *line, struct nds32_pseudo_opcode *opcode)
|
||||||
}
|
}
|
||||||
++s;
|
++s;
|
||||||
} while (s[0] != '\0');
|
} while (s[0] != '\0');
|
||||||
end:
|
end:
|
||||||
/* Put the origin line for debugging. */
|
/* Put the origin line for debugging. */
|
||||||
argv[argc] = line;
|
argv[argc] = line;
|
||||||
opcode->proc (argc, argv, opcode->pseudo_val);
|
opcode->proc (argc, argv, opcode->pseudo_val);
|
||||||
|
@ -4287,7 +4287,7 @@ nds32_relax_hint (int mode ATTRIBUTE_UNUSED)
|
||||||
relax_hint_begin = 0;
|
relax_hint_begin = 0;
|
||||||
name = nds_itoa (relax_hint_id_current);
|
name = nds_itoa (relax_hint_id_current);
|
||||||
|
|
||||||
reordered_id:
|
reordered_id:
|
||||||
|
|
||||||
/* Find relax hint entry for next instruction, and all member will be
|
/* Find relax hint entry for next instruction, and all member will be
|
||||||
initialized at that time. */
|
initialized at that time. */
|
||||||
|
@ -6267,7 +6267,7 @@ nds32_elf_append_relax_relocs (const char *key, void *value)
|
||||||
pattern_now = pattern_now->next;
|
pattern_now = pattern_now->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
restore:
|
restore:
|
||||||
now_seg = seg_bak;
|
now_seg = seg_bak;
|
||||||
frchain_now = frchain_bak;
|
frchain_now = frchain_bak;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1676,7 +1676,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
|
||||||
|| imm_expr->X_add_number >= 64)
|
|| imm_expr->X_add_number >= 64)
|
||||||
break;
|
break;
|
||||||
ip->insn_opcode |= ENCODE_RVC_IMM (imm_expr->X_add_number);
|
ip->insn_opcode |= ENCODE_RVC_IMM (imm_expr->X_add_number);
|
||||||
rvc_imm_done:
|
rvc_imm_done:
|
||||||
s = expr_end;
|
s = expr_end;
|
||||||
imm_expr->X_op = O_absent;
|
imm_expr->X_op = O_absent;
|
||||||
continue;
|
continue;
|
||||||
|
@ -1804,7 +1804,7 @@ rvc_imm_done:
|
||||||
p = percent_op_utype;
|
p = percent_op_utype;
|
||||||
if (my_getSmallExpression (imm_expr, imm_reloc, s, p))
|
if (my_getSmallExpression (imm_expr, imm_reloc, s, p))
|
||||||
break;
|
break;
|
||||||
rvc_lui:
|
rvc_lui:
|
||||||
if (imm_expr->X_op != O_constant
|
if (imm_expr->X_op != O_constant
|
||||||
|| imm_expr->X_add_number <= 0
|
|| imm_expr->X_add_number <= 0
|
||||||
|| imm_expr->X_add_number >= RISCV_BIGIMM_REACH
|
|| imm_expr->X_add_number >= RISCV_BIGIMM_REACH
|
||||||
|
@ -2114,10 +2114,10 @@ rvc_lui:
|
||||||
goto alu_op;
|
goto alu_op;
|
||||||
case '0': /* AMO "displacement," which must be zero. */
|
case '0': /* AMO "displacement," which must be zero. */
|
||||||
p = percent_op_null;
|
p = percent_op_null;
|
||||||
load_store:
|
load_store:
|
||||||
if (riscv_handle_implicit_zero_offset (imm_expr, s))
|
if (riscv_handle_implicit_zero_offset (imm_expr, s))
|
||||||
continue;
|
continue;
|
||||||
alu_op:
|
alu_op:
|
||||||
/* If this value won't fit into a 16 bit offset, then go
|
/* If this value won't fit into a 16 bit offset, then go
|
||||||
find a macro that will generate the 32 bit offset
|
find a macro that will generate the 32 bit offset
|
||||||
code pattern. */
|
code pattern. */
|
||||||
|
@ -2136,7 +2136,7 @@ alu_op:
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case 'p': /* PC-relative offset. */
|
case 'p': /* PC-relative offset. */
|
||||||
branch:
|
branch:
|
||||||
*imm_reloc = BFD_RELOC_12_PCREL;
|
*imm_reloc = BFD_RELOC_12_PCREL;
|
||||||
my_getExpression (imm_expr, s);
|
my_getExpression (imm_expr, s);
|
||||||
s = expr_end;
|
s = expr_end;
|
||||||
|
@ -2160,7 +2160,7 @@ branch:
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case 'a': /* 20-bit PC-relative offset. */
|
case 'a': /* 20-bit PC-relative offset. */
|
||||||
jump:
|
jump:
|
||||||
my_getExpression (imm_expr, s);
|
my_getExpression (imm_expr, s);
|
||||||
s = expr_end;
|
s = expr_end;
|
||||||
*imm_reloc = BFD_RELOC_RISCV_JMP;
|
*imm_reloc = BFD_RELOC_RISCV_JMP;
|
||||||
|
@ -2290,7 +2290,7 @@ jump:
|
||||||
insn_with_csr = FALSE;
|
insn_with_csr = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
/* Restore the character we might have clobbered above. */
|
/* Restore the character we might have clobbered above. */
|
||||||
if (save_c)
|
if (save_c)
|
||||||
*(argsStart - 1) = save_c;
|
*(argsStart - 1) = save_c;
|
||||||
|
@ -3142,7 +3142,7 @@ md_convert_frag_branch (fragS *fragp)
|
||||||
md_number_to_chars ((char *) buf, insn, 4);
|
md_number_to_chars ((char *) buf, insn, 4);
|
||||||
buf += 4;
|
buf += 4;
|
||||||
|
|
||||||
jump:
|
jump:
|
||||||
/* Jump to the target. */
|
/* Jump to the target. */
|
||||||
fixp = fix_new_exp (fragp, buf - (bfd_byte *)fragp->fr_literal,
|
fixp = fix_new_exp (fragp, buf - (bfd_byte *)fragp->fr_literal,
|
||||||
4, &exp, FALSE, BFD_RELOC_RISCV_JMP);
|
4, &exp, FALSE, BFD_RELOC_RISCV_JMP);
|
||||||
|
@ -3162,7 +3162,7 @@ jump:
|
||||||
abort ();
|
abort ();
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
fixp->fx_file = fragp->fr_file;
|
fixp->fx_file = fragp->fr_file;
|
||||||
fixp->fx_line = fragp->fr_line;
|
fixp->fx_line = fragp->fr_line;
|
||||||
|
|
||||||
|
|
|
@ -322,7 +322,7 @@ lex_imm (long *v, expressionS *exp_o)
|
||||||
*v = exp.X_add_number;
|
*v = exp.X_add_number;
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
fail_line_pointer = input_line_pointer;
|
fail_line_pointer = input_line_pointer;
|
||||||
input_line_pointer = ilp;
|
input_line_pointer = ilp;
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -2047,13 +2047,13 @@ tokenize_arguments (char **args, char *str)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fini:
|
fini:
|
||||||
if (saw_comma || saw_colon)
|
if (saw_comma || saw_colon)
|
||||||
goto err;
|
goto err;
|
||||||
input_line_pointer = old_input_line_pointer;
|
input_line_pointer = old_input_line_pointer;
|
||||||
return num_args;
|
return num_args;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
if (saw_comma)
|
if (saw_comma)
|
||||||
as_bad (_("extra comma"));
|
as_bad (_("extra comma"));
|
||||||
else if (saw_colon)
|
else if (saw_colon)
|
||||||
|
|
|
@ -3622,7 +3622,7 @@ md_assemble (char *str)
|
||||||
"first unrecognized character is `%c'"), *p);
|
"first unrecognized character is `%c'"), *p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end:
|
end:
|
||||||
input_line_pointer = old_ptr;
|
input_line_pointer = old_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5810,7 +5810,7 @@ s_incbin (int x ATTRIBUTE_UNUSED)
|
||||||
as_warn (_("truncated file `%s', %ld of %ld bytes read"),
|
as_warn (_("truncated file `%s', %ld of %ld bytes read"),
|
||||||
path, bytes, count);
|
path, bytes, count);
|
||||||
}
|
}
|
||||||
done:
|
done:
|
||||||
if (binfile != NULL)
|
if (binfile != NULL)
|
||||||
fclose (binfile);
|
fclose (binfile);
|
||||||
if (path)
|
if (path)
|
||||||
|
@ -5874,7 +5874,7 @@ s_include (int arg ATTRIBUTE_UNUSED)
|
||||||
|
|
||||||
free (path);
|
free (path);
|
||||||
path = filename;
|
path = filename;
|
||||||
gotit:
|
gotit:
|
||||||
/* malloc Storage leak when file is found on path. FIXME-SOMEDAY. */
|
/* malloc Storage leak when file is found on path. FIXME-SOMEDAY. */
|
||||||
register_dependency (path);
|
register_dependency (path);
|
||||||
input_scrub_insert_file (path);
|
input_scrub_insert_file (path);
|
||||||
|
|
|
@ -1638,7 +1638,7 @@ resolve_symbol_value (symbolS *symp)
|
||||||
if (finalize_syms)
|
if (finalize_syms)
|
||||||
S_SET_VALUE (symp, final_val);
|
S_SET_VALUE (symp, final_val);
|
||||||
|
|
||||||
exit_dont_set_value:
|
exit_dont_set_value:
|
||||||
/* Always set the segment, even if not finalizing the value.
|
/* Always set the segment, even if not finalizing the value.
|
||||||
The segment is used to determine whether a symbol is defined. */
|
The segment is used to determine whether a symbol is defined. */
|
||||||
S_SET_SEGMENT (symp, final_seg);
|
S_SET_SEGMENT (symp, final_seg);
|
||||||
|
|
|
@ -443,7 +443,7 @@ cvt_frag_to_fill (segT sec ATTRIBUTE_UNUSED, fragS *fragP)
|
||||||
#ifdef HANDLE_ALIGN
|
#ifdef HANDLE_ALIGN
|
||||||
HANDLE_ALIGN (fragP);
|
HANDLE_ALIGN (fragP);
|
||||||
#endif
|
#endif
|
||||||
skip_align:
|
skip_align:
|
||||||
know (fragP->fr_next != NULL);
|
know (fragP->fr_next != NULL);
|
||||||
fragP->fr_offset = (fragP->fr_next->fr_address
|
fragP->fr_offset = (fragP->fr_next->fr_address
|
||||||
- fragP->fr_address
|
- fragP->fr_address
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
2020-02-26 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* emultempl/cskyelf.em: Indent labels correctly.
|
||||||
|
* ldfile.c: Likewise.
|
||||||
|
* ldlang.c: Likewise.
|
||||||
|
* plugin.c: Likewise.
|
||||||
|
|
||||||
2020-02-26 Alan Modra <amodra@gmail.com>
|
2020-02-26 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
PR 25593
|
PR 25593
|
||||||
|
|
|
@ -197,7 +197,7 @@ elf32_csky_add_stub_section (const char *stub_sec_name,
|
||||||
if (hook_in_stub (&info, &os->children.head))
|
if (hook_in_stub (&info, &os->children.head))
|
||||||
return stub_sec;
|
return stub_sec;
|
||||||
|
|
||||||
err_ret:
|
err_ret:
|
||||||
einfo (_("%X%P: can not make stub section: %E\n"));
|
einfo (_("%X%P: can not make stub section: %E\n"));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -302,7 +302,7 @@ ldfile_try_open_bfd (const char *attempt,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
success:
|
success:
|
||||||
#ifdef ENABLE_PLUGINS
|
#ifdef ENABLE_PLUGINS
|
||||||
/* If plugins are active, they get first chance to claim
|
/* If plugins are active, they get first chance to claim
|
||||||
any successfully-opened input file. We skip archives
|
any successfully-opened input file. We skip archives
|
||||||
|
|
|
@ -489,7 +489,7 @@ compare_section (sort_type sort, asection *asec, asection *bsec)
|
||||||
/* Fall through. */
|
/* Fall through. */
|
||||||
|
|
||||||
case by_name:
|
case by_name:
|
||||||
sort_by_name:
|
sort_by_name:
|
||||||
ret = strcmp (bfd_section_name (asec), bfd_section_name (bsec));
|
ret = strcmp (bfd_section_name (asec), bfd_section_name (bsec));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -336,7 +336,7 @@ plugin_get_ir_dummy_bfd (const char *name, bfd *srctemplate)
|
||||||
return abfd;
|
return abfd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
report_error:
|
report_error:
|
||||||
einfo (_("%F%P: could not create dummy IR bfd: %E\n"));
|
einfo (_("%F%P: could not create dummy IR bfd: %E\n"));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,15 @@
|
||||||
|
2020-02-26 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* aarch64-asm.c: Indent labels correctly.
|
||||||
|
* aarch64-dis.c: Likewise.
|
||||||
|
* aarch64-gen.c: Likewise.
|
||||||
|
* aarch64-opc.c: Likewise.
|
||||||
|
* alpha-dis.c: Likewise.
|
||||||
|
* i386-dis.c: Likewise.
|
||||||
|
* nds32-asm.c: Likewise.
|
||||||
|
* nfp-dis.c: Likewise.
|
||||||
|
* visium-dis.c: Likewise.
|
||||||
|
|
||||||
2020-02-25 Claudiu Zissulescu <claziss@gmail.com>
|
2020-02-25 Claudiu Zissulescu <claziss@gmail.com>
|
||||||
|
|
||||||
* arc-regs.h (int_vector_base): Make it available for all ARC
|
* arc-regs.h (int_vector_base): Make it available for all ARC
|
||||||
|
|
|
@ -1967,7 +1967,7 @@ convert_to_real (aarch64_inst *inst, const aarch64_opcode *real)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
convert_to_real_return:
|
convert_to_real_return:
|
||||||
aarch64_replace_opcode (inst, real);
|
aarch64_replace_opcode (inst, real);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2099,7 +2099,7 @@ aarch64_opcode_encode (const aarch64_opcode *opcode,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
encoding_exit:
|
encoding_exit:
|
||||||
DEBUG_TRACE ("exit with %s", opcode->name);
|
DEBUG_TRACE ("exit with %s", opcode->name);
|
||||||
|
|
||||||
*code = inst->value;
|
*code = inst->value;
|
||||||
|
|
|
@ -2972,7 +2972,7 @@ aarch64_opcode_decode (const aarch64_opcode *opcode, const aarch64_insn code,
|
||||||
DEBUG_TRACE ("constraint matching FAIL");
|
DEBUG_TRACE ("constraint matching FAIL");
|
||||||
}
|
}
|
||||||
|
|
||||||
decode_fail:
|
decode_fail:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -249,7 +249,7 @@ divide_table_1 (struct bittree *bittree, opcode_node *opcode)
|
||||||
goto divide_table_1_finish;
|
goto divide_table_1_finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
divide_table_1_try_again:
|
divide_table_1_try_again:
|
||||||
mask_and = -1;
|
mask_and = -1;
|
||||||
ent = opcode;
|
ent = opcode;
|
||||||
while (ent)
|
while (ent)
|
||||||
|
@ -339,7 +339,7 @@ divide_table_1_try_again:
|
||||||
divide_table_1 (bittree->bits[0], list0.next);
|
divide_table_1 (bittree->bits[0], list0.next);
|
||||||
divide_table_1 (bittree->bits[1], list1.next);
|
divide_table_1 (bittree->bits[1], list1.next);
|
||||||
|
|
||||||
divide_table_1_finish:
|
divide_table_1_finish:
|
||||||
if (debug)
|
if (debug)
|
||||||
printf ("Leave from depth %d\n", depth);
|
printf ("Leave from depth %d\n", depth);
|
||||||
--depth;
|
--depth;
|
||||||
|
|
|
@ -5109,7 +5109,7 @@ verify_constraints (const struct aarch64_inst *inst,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
/* Add the new instruction to the sequence. */
|
/* Add the new instruction to the sequence. */
|
||||||
memcpy (insn_sequence->current_insns + insn_sequence->next_insn++,
|
memcpy (insn_sequence->current_insns + insn_sequence->next_insn++,
|
||||||
inst, sizeof (aarch64_inst));
|
inst, sizeof (aarch64_inst));
|
||||||
|
|
|
@ -146,7 +146,7 @@ print_insn_alpha (bfd_vma memaddr, struct disassemble_info *info)
|
||||||
|
|
||||||
return 4;
|
return 4;
|
||||||
|
|
||||||
found:
|
found:
|
||||||
(*info->fprintf_func) (info->stream, "%s", opcode->name);
|
(*info->fprintf_func) (info->stream, "%s", opcode->name);
|
||||||
if (opcode->operands[0] != 0)
|
if (opcode->operands[0] != 0)
|
||||||
(*info->fprintf_func) (info->stream, "\t");
|
(*info->fprintf_func) (info->stream, "\t");
|
||||||
|
|
|
@ -12791,7 +12791,7 @@ putop (const char *in_template, int sizeflag)
|
||||||
case 'B':
|
case 'B':
|
||||||
if (l == 0 && len == 1)
|
if (l == 0 && len == 1)
|
||||||
{
|
{
|
||||||
case_B:
|
case_B:
|
||||||
if (intel_syntax)
|
if (intel_syntax)
|
||||||
break;
|
break;
|
||||||
if (sizeflag & SUFFIX_ALWAYS)
|
if (sizeflag & SUFFIX_ALWAYS)
|
||||||
|
@ -12956,7 +12956,7 @@ case_B:
|
||||||
SAVE_LAST (*p);
|
SAVE_LAST (*p);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case_L:
|
case_L:
|
||||||
if (intel_syntax)
|
if (intel_syntax)
|
||||||
break;
|
break;
|
||||||
if (sizeflag & SUFFIX_ALWAYS)
|
if (sizeflag & SUFFIX_ALWAYS)
|
||||||
|
@ -13005,7 +13005,7 @@ case_L:
|
||||||
case 'P':
|
case 'P':
|
||||||
if (l == 0 && len == 1)
|
if (l == 0 && len == 1)
|
||||||
{
|
{
|
||||||
case_P:
|
case_P:
|
||||||
if (intel_syntax)
|
if (intel_syntax)
|
||||||
{
|
{
|
||||||
if ((rex & REX_W) == 0
|
if ((rex & REX_W) == 0
|
||||||
|
@ -13075,7 +13075,7 @@ case_P:
|
||||||
case 'Q':
|
case 'Q':
|
||||||
if (l == 0 && len == 1)
|
if (l == 0 && len == 1)
|
||||||
{
|
{
|
||||||
case_Q:
|
case_Q:
|
||||||
if (intel_syntax && !alt)
|
if (intel_syntax && !alt)
|
||||||
break;
|
break;
|
||||||
USED_REX (REX_W);
|
USED_REX (REX_W);
|
||||||
|
@ -13166,7 +13166,7 @@ case_Q:
|
||||||
case 'S':
|
case 'S':
|
||||||
if (l == 0 && len == 1)
|
if (l == 0 && len == 1)
|
||||||
{
|
{
|
||||||
case_S:
|
case_S:
|
||||||
if (intel_syntax)
|
if (intel_syntax)
|
||||||
break;
|
break;
|
||||||
if (sizeflag & SUFFIX_ALWAYS)
|
if (sizeflag & SUFFIX_ALWAYS)
|
||||||
|
@ -15864,7 +15864,7 @@ CRC32_Fixup (int bytemode, int sizeflag)
|
||||||
mnemonicendp = p;
|
mnemonicendp = p;
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
|
|
||||||
skip:
|
skip:
|
||||||
if (modrm.mod == 3)
|
if (modrm.mod == 3)
|
||||||
{
|
{
|
||||||
int add;
|
int add;
|
||||||
|
@ -16587,7 +16587,7 @@ MOVBE_Fixup (int bytemode, int sizeflag)
|
||||||
mnemonicendp = p;
|
mnemonicendp = p;
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
|
|
||||||
skip:
|
skip:
|
||||||
OP_M (bytemode, sizeflag);
|
OP_M (bytemode, sizeflag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16624,7 +16624,7 @@ MOVSXD_Fixup (int bytemode, int sizeflag)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
skip:
|
skip:
|
||||||
mnemonicendp = p;
|
mnemonicendp = p;
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
OP_E (bytemode, sizeflag);
|
OP_E (bytemode, sizeflag);
|
||||||
|
|
|
@ -2405,7 +2405,7 @@ parse_operand (nds32_asm_desc_t *pdesc, nds32_asm_insn_t *pinsn,
|
||||||
abort ();
|
abort ();
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
/* Don't silently discarding bits. */
|
/* Don't silently discarding bits. */
|
||||||
if (value & __MASK (fld->shift))
|
if (value & __MASK (fld->shift))
|
||||||
{
|
{
|
||||||
|
@ -2533,7 +2533,7 @@ parse_insn (nds32_asm_desc_t *pdesc, nds32_asm_insn_t *pinsn,
|
||||||
if (*plex == 0 && (*p == '\0' || *p == '!' || *p == '#'))
|
if (*plex == 0 && (*p == '\0' || *p == '!' || *p == '#'))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
reject:
|
reject:
|
||||||
/* If not accepted, try another combination. */
|
/* If not accepted, try another combination. */
|
||||||
variant++;
|
variant++;
|
||||||
}
|
}
|
||||||
|
@ -2564,7 +2564,7 @@ nds32_assemble (nds32_asm_desc_t *pdesc, nds32_asm_insn_t *pinsn,
|
||||||
*s++ = '\0';
|
*s++ = '\0';
|
||||||
dot = strchr (mnemoic, '.');
|
dot = strchr (mnemoic, '.');
|
||||||
|
|
||||||
retry_dot:
|
retry_dot:
|
||||||
/* Lookup the opcode syntax. */
|
/* Lookup the opcode syntax. */
|
||||||
hash = htab_hash_string (mnemoic);
|
hash = htab_hash_string (mnemoic);
|
||||||
opc = (struct nds32_opcode *)
|
opc = (struct nds32_opcode *)
|
||||||
|
@ -2615,6 +2615,6 @@ retry_dot:
|
||||||
/* A matched opcode is found. Write the result to instruction buffer. */
|
/* A matched opcode is found. Write the result to instruction buffer. */
|
||||||
pdesc->result = NASM_OK;
|
pdesc->result = NASM_OK;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
free (str);
|
free (str);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2958,7 +2958,7 @@ print_insn_nfp (bfd_vma addr, struct disassemble_info *dinfo)
|
||||||
|
|
||||||
err = _print_instrs (addr, dinfo, &opts);
|
err = _print_instrs (addr, dinfo, &opts);
|
||||||
|
|
||||||
end:
|
end:
|
||||||
if (err != 8)
|
if (err != 8)
|
||||||
dinfo->fprintf_func (dinfo->stream, "\t # ERROR");
|
dinfo->fprintf_func (dinfo->stream, "\t # ERROR");
|
||||||
if (err == _NFP_ERR_CONT)
|
if (err == _NFP_ERR_CONT)
|
||||||
|
|
|
@ -166,7 +166,7 @@ disassem_class0 (disassemble_info *info, unsigned int ins)
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
illegal_opcode:
|
illegal_opcode:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -421,7 +421,7 @@ disassem_class1 (disassemble_info *info, unsigned int ins)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
illegal_opcode:
|
illegal_opcode:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -518,7 +518,7 @@ disassem_class2 (disassemble_info *info, unsigned int ins)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
illegal_opcode:
|
illegal_opcode:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -747,7 +747,7 @@ disassem_class3 (disassemble_info *info, unsigned int ins)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
illegal_opcode:
|
illegal_opcode:
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue