Fix formatting in coff-x86_64.c
* coff-x86_64.c (coff_amd64_reloc): Fix formatting.
This commit is contained in:
parent
ec70be9f61
commit
c9f203207d
|
@ -1,3 +1,7 @@
|
||||||
|
2015-12-18 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* coff-x86_64.c (coff_amd64_reloc): Fix formatting.
|
||||||
|
|
||||||
2015-12-18 Nick Clifton <nickc@redhat.com>
|
2015-12-18 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* coff-i386.c (coff_i386_reloc): Fix formatting.
|
* coff-i386.c (coff_i386_reloc): Fix formatting.
|
||||||
|
|
|
@ -138,59 +138,61 @@ coff_amd64_reloc (bfd *abfd,
|
||||||
#define DOIT(x) \
|
#define DOIT(x) \
|
||||||
x = ((x & ~howto->dst_mask) | (((x & howto->src_mask) + diff) & howto->dst_mask))
|
x = ((x & ~howto->dst_mask) | (((x & howto->src_mask) + diff) & howto->dst_mask))
|
||||||
|
|
||||||
if (diff != 0)
|
if (diff != 0)
|
||||||
{
|
{
|
||||||
reloc_howto_type *howto = reloc_entry->howto;
|
reloc_howto_type *howto = reloc_entry->howto;
|
||||||
unsigned char *addr = (unsigned char *) data + reloc_entry->address;
|
unsigned char *addr = (unsigned char *) data + reloc_entry->address;
|
||||||
|
|
||||||
/* FIXME: We do not have an end address for data, so we cannot
|
/* FIXME: We do not have an end address for data, so we cannot
|
||||||
accurately range check any addresses computed against it.
|
accurately range check any addresses computed against it.
|
||||||
cf: PR binutils/17512: file: 1085-1761-0.004.
|
cf: PR binutils/17512: file: 1085-1761-0.004.
|
||||||
For now we do the best that we can. */
|
For now we do the best that we can. */
|
||||||
if (addr < (unsigned char *) data || addr > ((unsigned char *) data) + input_section->size)
|
if (addr < (unsigned char *) data
|
||||||
|
|| addr > ((unsigned char *) data) + input_section->size)
|
||||||
|
{
|
||||||
|
bfd_set_error (bfd_error_bad_value);
|
||||||
|
return bfd_reloc_notsupported;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (howto->size)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
{
|
{
|
||||||
bfd_set_error (bfd_error_bad_value);
|
char x = bfd_get_8 (abfd, addr);
|
||||||
return bfd_reloc_notsupported;
|
DOIT (x);
|
||||||
|
bfd_put_8 (abfd, x, addr);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
switch (howto->size)
|
case 1:
|
||||||
{
|
{
|
||||||
case 0:
|
short x = bfd_get_16 (abfd, addr);
|
||||||
{
|
DOIT (x);
|
||||||
char x = bfd_get_8 (abfd, addr);
|
bfd_put_16 (abfd, (bfd_vma) x, addr);
|
||||||
DOIT (x);
|
|
||||||
bfd_put_8 (abfd, x, addr);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
short x = bfd_get_16 (abfd, addr);
|
|
||||||
DOIT (x);
|
|
||||||
bfd_put_16 (abfd, (bfd_vma) x, addr);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
long x = bfd_get_32 (abfd, addr);
|
|
||||||
DOIT (x);
|
|
||||||
bfd_put_32 (abfd, (bfd_vma) x, addr);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
{
|
|
||||||
long long x = bfd_get_64 (abfd, addr);
|
|
||||||
DOIT (x);
|
|
||||||
bfd_put_64 (abfd, (bfd_vma) x, addr);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
bfd_set_error (bfd_error_bad_value);
|
|
||||||
return bfd_reloc_notsupported;
|
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
|
long x = bfd_get_32 (abfd, addr);
|
||||||
|
DOIT (x);
|
||||||
|
bfd_put_32 (abfd, (bfd_vma) x, addr);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
{
|
||||||
|
long long x = bfd_get_64 (abfd, addr);
|
||||||
|
DOIT (x);
|
||||||
|
bfd_put_64 (abfd, (bfd_vma) x, addr);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
bfd_set_error (bfd_error_bad_value);
|
||||||
|
return bfd_reloc_notsupported;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Now let bfd_perform_relocation finish everything up. */
|
/* Now let bfd_perform_relocation finish everything up. */
|
||||||
return bfd_reloc_continue;
|
return bfd_reloc_continue;
|
||||||
|
|
Loading…
Reference in New Issue