This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: R_MIPS_26 testcase


On Wed, Aug 04, 1999 at 01:49:26PM -0700, Mark Mitchell wrote:

> I think I already fixed this.  I get:
> 
>   Disassembly of section .text:
> 
>   0000000000000000 <bar-0x18000>:
> 	  ...
> 
>   0000000000018000 <bar>:
>      18000:	3c020002 	lui	$v0,0x2
> 			  18000: R_MIPS_HI16	.text
>      18004:	24428000 	addiu	$v0,$v0,-32768
> 			  18004: R_MIPS_LO16	.text
> 	  ...
> 
> which looks like the right thing to me: 0x20000 - 0x8000 = 0x18000
> unless I'm really losing it.

Yep, test cases #7 and #8 are ok now.  #6 still is broken.  Shifting
left of the the jump destination has to be done before adding
something to it like in this patch fragment:

@@ -6581,6 +6573,9 @@
            /* There's nothing to do for non-local relocations.  */
            continue;
 
+          if (r_type == R_MIPS_26)
+              addend <<= 2;
+
          r_symndx = ELF32_R_SYM (rel->r_info);
          sym = local_syms + r_symndx;
          if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)

  Ralf

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]