diff options
Diffstat (limited to 'bfd/reloc.c')
-rw-r--r-- | bfd/reloc.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/bfd/reloc.c b/bfd/reloc.c index f7e34a9..411f998 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -431,6 +431,7 @@ bfd_get_reloc_size (reloc_howto_type *howto) { switch (howto->size) { + case 5: return 3; case 0: return 1; case 1: return 2; case 2: return 4; @@ -917,6 +918,16 @@ space consuming. For each target: switch (howto->size) { + case 5: + { + long x = bfd_get_32 (abfd, (bfd_byte *) data + octets); + x >>= 8; + DOIT (x); + bfd_put_16 (abfd, (bfd_vma) (x >> 8), (bfd_byte *) data + octets); + bfd_put_8 (abfd, (x & 0xFF), (unsigned char *) data + 2 + octets); + } + break; + case 0: { char x = bfd_get_8 (abfd, (char *) data + octets); @@ -5949,6 +5960,12 @@ ENUMDOC This is the 8 bit high part of an absolute address and immediately follows a matching LO8XG part. ENUM + BFD_RELOC_S12Z_15_PCREL +ENUMDOC + Freescale S12Z reloc. + This is a 15 bit relative address. If the most significant bits are all zero + then it may be truncated to 8 bits. +ENUM BFD_RELOC_16C_NUM08 ENUMX BFD_RELOC_16C_NUM08_C |