aboutsummaryrefslogtreecommitdiff
path: root/bfd/coff-rs6000.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/coff-rs6000.c')
-rw-r--r--bfd/coff-rs6000.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index f39a85a..6ad77ba 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -3700,7 +3700,7 @@ xcoff_ppc_relocate_section (bfd *output_bfd,
case R_POS:
case R_NEG:
howto.bitsize = (rel->r_size & 0x1f) + 1;
- howto.size = howto.bitsize > 16 ? 2 : 1;
+ howto.size = HOWTO_RSIZE (howto.bitsize > 16 ? 4 : 2);
howto.src_mask = howto.dst_mask = N_ONES (howto.bitsize);
break;
@@ -3801,7 +3801,7 @@ xcoff_ppc_relocate_section (bfd *output_bfd,
abort ();
/* Get the value we are going to relocate. */
- if (1 == howto.size)
+ if (2 == bfd_get_reloc_size (&howto))
value_to_relocate = bfd_get_16 (input_bfd, location);
else
value_to_relocate = bfd_get_32 (input_bfd, location);
@@ -3848,7 +3848,7 @@ xcoff_ppc_relocate_section (bfd *output_bfd,
+ relocation) & howto.dst_mask));
/* Put the value back in the object file. */
- if (1 == howto.size)
+ if (2 == bfd_get_reloc_size (&howto))
bfd_put_16 (input_bfd, value_to_relocate, location);
else
bfd_put_32 (input_bfd, value_to_relocate, location);