Millicode calls, GP register, ld -r

Alan Modra
Fri, 11 Aug 2000 17:32:33 +1000 (EST)

On 10 Aug 2000, David Huggins-Daines wrote:

> Oh boy, it's worse.  It looks like $$dyncall has been clobbering %r19
> with bogus values all along, actually, because we're only using four
> bytes for our PLABELs, and it wants to load the linkage table pointer
> from the second (non-existent) word:

Hi David,

On thinking about this $$dyncall issue a bit more, what use are PLABELs in
PIC code anyway?  As far as I can see, PLABELs are used for two things:
1) to provide an unique address for a function
2) as a place to hang argument relocation information

We're not doing (2), and (1) is satisfied by the value in the PLTGOT.

So...  I can turn a PLABEL reference into a GOT reference, which will
magically fix the $$dyncall problem.


Alan Modra
Linuxcare.  Support for the Revolution.