projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
or1k: Add the l.adrp insn and supporting relocations
[deliverable/binutils-gdb.git]
/
bfd
/
coff-tic80.c
diff --git
a/bfd/coff-tic80.c
b/bfd/coff-tic80.c
index 22d4e947b101a6aae270229695ea36fdc60fa820..4120b6069633dfa8142eaba7007f03212d05d190 100644
(file)
--- a/
bfd/coff-tic80.c
+++ b/
bfd/coff-tic80.c
@@
-1,6
+1,5
@@
/* BFD back-end for Texas Instruments TMS320C80 Multimedia Video Processor (MVP).
/* BFD back-end for Texas Instruments TMS320C80 Multimedia Video Processor (MVP).
- Copyright 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008,
- 2012 Free Software Foundation, Inc.
+ Copyright (C) 1996-2018 Free Software Foundation, Inc.
Written by Fred Fish (fnf@cygnus.com)
Written by Fred Fish (fnf@cygnus.com)
@@
-43,6
+42,8
@@
#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2)
#define COFF_ALIGN_IN_SECTION_HEADER 1
#define COFF_ALIGN_IN_SFLAGS 1
#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2)
#define COFF_ALIGN_IN_SECTION_HEADER 1
#define COFF_ALIGN_IN_SFLAGS 1
+#define COFF_ENCODE_ALIGNMENT(S,X) ((S).s_flags |= (((unsigned)(X) & 0xf) << 8))
+#define COFF_DECODE_ALIGNMENT(X) (((X) >> 8) & 0xf)
#define GET_SCNHDR_FLAGS H_GET_16
#define PUT_SCNHDR_FLAGS H_PUT_16
#define GET_SCNHDR_FLAGS H_GET_16
#define PUT_SCNHDR_FLAGS H_PUT_16
@@
-437,8
+438,8
@@
rtype2howto (arelent *cache_ptr, struct internal_reloc *dst)
}
}
}
}
-
(*_bfd_error_handler) (_("Unrecognized reloc type 0x%
x"),
-
(unsigned int) dst->r_type);
+
_bfd_error_handler (_("unsupported relocation type %#
x"),
+ (unsigned int) dst->r_type);
cache_ptr->howto = tic80_howto_table + 0;
}
cache_ptr->howto = tic80_howto_table + 0;
}
@@
-515,9
+516,9
@@
coff_tic80_relocate_section (bfd *output_bfd,
}
/* COFF treats common symbols in one of two ways. Either the
}
/* COFF treats common symbols in one of two ways. Either the
-
size of the symbol is included in the section contents, or it
-
is not. We assume that the size is not included, and force
-
the rtype_to_howto function to adjust the addend as needed. */
+ size of the symbol is included in the section contents, or it
+ is not. We assume that the size is not included, and force
+ the rtype_to_howto function to adjust the addend as needed. */
if (sym != NULL && sym->n_scnum != 0)
addend = - sym->n_value;
if (sym != NULL && sym->n_scnum != 0)
addend = - sym->n_value;
@@
-543,7
+544,7
@@
coff_tic80_relocate_section (bfd *output_bfd,
else
{
sec = sections[symndx];
else
{
sec = sections[symndx];
-
val = (sec->output_section->vma
+ val = (sec->output_section->vma
+ sec->output_offset
+ sym->n_value);
if (! obj_pe (output_bfd))
+ sec->output_offset
+ sym->n_value);
if (! obj_pe (output_bfd))
@@
-563,20
+564,17
@@
coff_tic80_relocate_section (bfd *output_bfd,
+ sec->output_offset);
}
+ sec->output_offset);
}
- else if (! info->relocatable)
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd, input_section,
- rel->r_vaddr - input_section->vma, TRUE)))
- return FALSE;
- }
+ 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);
}
addr = rel->r_vaddr - input_section->vma;
/* FIXME: This code assumes little endian, but the PP can
}
addr = rel->r_vaddr - input_section->vma;
/* FIXME: This code assumes little endian, but the PP can
-
apparently be bi-endian. I don't know if the bi-endianness
-
applies to the instruction set or just to the data. */
+ apparently be bi-endian. I don't know if the bi-endianness
+ applies to the instruction set or just to the data. */
switch (howto->type)
{
default:
switch (howto->type)
{
default:
@@
-669,9
+667,10
@@
coff_tic80_relocate_section (bfd *output_bfd,
case bfd_reloc_ok:
break;
case bfd_reloc_outofrange:
case bfd_reloc_ok:
break;
case bfd_reloc_outofrange:
- (*_bfd_error_handler)
- (_("%B: bad reloc address 0x%lx in section `%A'"),
- input_bfd, input_section, (unsigned long) rel->r_vaddr);
+ _bfd_error_handler
+ /* xgettext: c-format */
+ (_("%pB: bad reloc address %#" PRIx64 " in section `%pA'"),
+ input_bfd, (uint64_t) rel->r_vaddr, input_section);
return FALSE;
case bfd_reloc_overflow:
{
return FALSE;
case bfd_reloc_overflow:
{
@@
-689,26
+688,16
@@
coff_tic80_relocate_section (bfd *output_bfd,
return FALSE;
}
return FALSE;
}
- if (! ((*info->callbacks->reloc_overflow)
- (info, (h ? &h->root : NULL), name, howto->name,
- (bfd_vma) 0, input_bfd, input_section,
- rel->r_vaddr - input_section->vma)))
- return FALSE;
+ (*info->callbacks->reloc_overflow)
+ (info, (h ? &h->root : NULL), name, howto->name,
+ (bfd_vma) 0, input_bfd, input_section,
+ rel->r_vaddr - input_section->vma);
}
}
}
return TRUE;
}
\f
}
}
}
return TRUE;
}
\f
-/* Clear the r_reserved field in relocs. */
-#define SWAP_OUT_RELOC_EXTRA(abfd,src,dst) \
- do \
- { \
- dst->r_reserved[0] = 0; \
- dst->r_reserved[1] = 0; \
- } \
- while (0)
-
#define TIC80COFF 1 /* Customize coffcode.h */
#undef C_AUTOARG /* Clashes with TIc80's C_UEXT */
#undef C_LASTENT /* Clashes with TIc80's C_STATLAB */
#define TIC80COFF 1 /* Customize coffcode.h */
#undef C_AUTOARG /* Clashes with TIc80's C_UEXT */
#undef C_LASTENT /* Clashes with TIc80's C_STATLAB */
@@
-719,4
+708,4
@@
coff_tic80_relocate_section (bfd *output_bfd,
#include "coffcode.h"
#include "coffcode.h"
-CREATE_LITTLE_COFF_TARGET_VEC (tic80coff_vec, "coff-tic80", D_PAGED, 0, '_', NULL, COFF_SWAP_TABLE)
+CREATE_LITTLE_COFF_TARGET_VEC (tic80
_
coff_vec, "coff-tic80", D_PAGED, 0, '_', NULL, COFF_SWAP_TABLE)
This page took
0.024997 seconds
and
4
git commands to generate.