diff options
author | M R Swami Reddy <MR.Swami.Reddy@nsc.com> | 2009-07-27 06:52:33 +0000 |
---|---|---|
committer | M R Swami Reddy <MR.Swami.Reddy@nsc.com> | 2009-07-27 06:52:33 +0000 |
commit | 86514226a5438800f5ad6df6959d530395e8e5df (patch) | |
tree | cdd32f44491899292303b832a951236d80b72ca3 | |
parent | 305f7588d685d1e6a8f9d6577077bcfff0ca3d6b (diff) | |
download | binutils-gdb-86514226a5438800f5ad6df6959d530395e8e5df.tar.gz |
2009-07-26 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
* elf32-cr16.c (elf_cr16_final_link_relocate): Add code to handle
to R_cr16_NUM32 relocation.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-cr16.c | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 5c338e9cfe5..8a1c0419ff9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2009-07-27 M R Swami Reddy <MR.Swami.Reddy@nsc.com> + + * elf32-cr16.c (elf_cr16_final_link_relocate): Add code to handle + to R_cr16_NUM32 relocation. + 2009-07-26 Michael Eager <eager@eagercon.com> * archures.c: Add bfd_mach_ppc_405 diff --git a/bfd/elf32-cr16.c b/bfd/elf32-cr16.c index 795590c62df..085c671a3b7 100644 --- a/bfd/elf32-cr16.c +++ b/bfd/elf32-cr16.c @@ -1259,6 +1259,21 @@ cr16_elf_final_link_relocate (reloc_howto_type *howto, | (bfd_get_32 (input_bfd, hit_data) & 0xf0ff)); } + else if (r_type == R_CR16_NUM32) + { + Rvalue1 = (bfd_get_32 (input_bfd, hit_data)); + + /* Add or subtract the offset value */ + if (Rvalue1 & 0x80000000) + Rvalue -= (~Rvalue1 + 1) & 0xffffffff; + else + Rvalue += Rvalue1; + + /* Check for Ranga */ + if (Rvalue > 0xffffffff) + return bfd_reloc_overflow; + } + bfd_put_32 (input_bfd, Rvalue, hit_data); } break; |