This is the mail archive of the
mailing list for the binutils project.
Re: [Patch]: Re: gas 2.10.91 from 20000920 cvs is broken under hpux
- To: John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>
- Subject: Re: [Patch]: Re: gas 2.10.91 from 20000920 cvs is broken under hpux
- From: Alan Modra <alan at linuxcare dot com dot au>
- Date: Wed, 27 Sep 2000 12:15:26 +1100 (EST)
- cc: binutils at sourceware dot cygnus dot com
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.