On Mon, Jun 10, 2013 at 10:19:57PM +1000, Erik de Castro Lopo wrote:
> Brad Boyer wrote:
> 
> > Was this input for an assembler or output from a disassembler? If this
> > is from a disassembly of a dynamically relocatable object, it might
> > have gotten confused by an instruction being the target of a relocation.
> 
> This is code generated by the Glasgow Haskell Compiler (GHC).
> 
> The reason I was asking was that when this is run through the assembler
> I get the following error for some instances of the instruction:
> 
>     /tmp/ghc2806_0/ghc2806_1.s:51766:0:
>        Error: operand out of range (0x000000000000adf8 is not between
>        0xffffffffffff8000 and 0x0000000000007fff)
> 
> The GHC bug is here:
> 
>     http://hackage.haskell.org/trac/ghc/ticket/7830
> 
> The old thing is that the compiler has been working correctly for years
> with this lwz instruction, but recently, due to some extra code inlining,
> the generated code for this module gre to a size to trigger this bug.

You may have exceeded the range allowed by the GOT or something like that.

The error seems to indicate you can't have an offset larger than a signed
16 bit value.  So if some extra code got added that suddenly caused
something to be more than 32KB away, it stops working.

Which version of the compiler is it?

Certainly it seems that:

    lwz     30, .label - (1b)(31)                                               
                                                                                
                                                                                
                               

is load word into register 30, from .label's address adjusted by the GOT
entry at 1b in the GOT (which is at the location stored in register 31).

At least I think that is what it says.


-- 
Len Sorensen


-- 
To UNSUBSCRIBE, email to debian-powerpc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130610174649.gg11...@csclub.uwaterloo.ca

Reply via email to