[Patch]: Re: gas 2.10.91 from 20000920 cvs is broken under hpux

Alan Modra alan@linuxcare.com.au
Tue Sep 26 18:16:00 GMT 2000


On Tue, 26 Sep 2000, John David Anglin wrote:

> Changed my mind about the problem being in gcc.  The default when an
> argument description is omitted from a .CALL statement is ARG = NO.
> NO means the argument cannot be relocated.  Thus, the definition of
> arg_reloc_stub_needed needs to be fixed to check all four args and the
> return separately.
> 
> A possible fix is attached below.  Note there is another small fix
> to pa_align as well.

Thanks.  Your analysis looks correct.

Hmm, let's see

#define nonzero_dibits(x) \
  ((x) | (((x) & 0x55555555) << 1) | (((x) & 0xAAAAAAAA) >> 1))
#define arg_reloc_stub_needed(CALLER, CALLEE) \
  (((CALLER) ^ (CALLEE)) & nonzero_dibits (CALLER) & nonzero_dibits (CALLEE))

should work too.

-- 
Linuxcare.  Support for the Revolution.



More information about the Binutils mailing list