[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#539378: [hppa]: fails to load nfs module: Global Offset Table



On Fri, 31 Jul 2009, Carlos O'Donell wrote:

> >> +             if (d <= 15)
> >> +                     stub->insns[0] |= reassemble_14(d);
> >
> > reassemble_14 is wrong for ldd format 3.  Need format 5 and im5 insertion.
> 
> This is using reassemble_14 for ldd format 5, which is correct.

Huh?  Format 5 has a five bit immediate and it's not compatible with
reassemble_14.  The value is actually being stuffed into a format 3 ldd
pattern (i.e., format 3 is being used for displacements 0 and 8).

If format 3 is going to be used for short displacements, then use
reassemble_16a as it is the inverse to the assemble_16a operation
described in the arch.  Using reassemble_14 with ldd is confusing.

As you pointed out, the arch shows using format 5 for short displacements.
It's unclear whether there is a performance or functional difference aside
from the behavior of space selection.  There may be no requirement for
hardware to implement short displacements using format 3.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)


Reply to: