Print compare bits in human readible form
[deliverable/binutils-gdb.git] / bfd / elf32-v850.c
index 8e5acf68d1b5e6c4618e01c20ea21c3f25359e4a..36fc38de8557986e888cee555ca3d309a66396fc 100644 (file)
@@ -691,13 +691,13 @@ v850_elf_store_addend_in_insn (abfd, r_type, addend, address, replace)
       break;
       
     case R_V850_HI16_S:
-      addend += bfd_get_16 (abfd, address);
+      addend += (bfd_get_16 (abfd, address) << 16);
       addend = (addend >> 16) + ((addend & 0x8000) != 0);
       insn = addend;
       break;
       
     case R_V850_HI16:
-      addend += bfd_get_16 (abfd, address);
+      addend += (bfd_get_16 (abfd, address) << 16);
       addend = (addend >> 16);
       insn = addend;
       break;
@@ -1009,7 +1009,7 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
       return bfd_reloc_ok;
       
     case R_V850_HI16_S:
-      value += (short)bfd_get_16 (input_bfd, hit_data);
+      value += (bfd_get_16 (input_bfd, hit_data) << 16);
       value = (value >> 16) + ((value & 0x8000) != 0);
 
       if ((long)value > 0x7fff || (long)value < -0x8000)
@@ -1023,7 +1023,7 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
       return bfd_reloc_ok;
 
     case R_V850_HI16:
-      value += (short)bfd_get_16 (input_bfd, hit_data);
+      value += (bfd_get_16 (input_bfd, hit_data) << 16);
       value >>= 16;
 
       bfd_put_16 (input_bfd, value, hit_data);
This page took 0.023663 seconds and 4 git commands to generate.