Subject: Re: Argh! panic on cvs checkout
To: None <Richard.Earnshaw@arm.com>
From: David Brownlee <abs@netbsd.org>
List: port-arm32
Date: 05/24/2001 14:45:56
On Thu, 24 May 2001, Richard Earnshaw wrote:
> > I think the only clean guaranteed way to avoid the problem would
> > be to have a compiler option to use the instructions to load the
> > individual registers.
> Which would bugger up performance for everybody. Only 0.1% of the LDM
> instructions are likely to be on the end of a page (4k page 4b
> instruction), but we would have to fix all of them since we don't know
> where they will get linked.
>
> > A more complex variation would be to handle
> > it in the linker based on the alignment of the instruction insert
> > a nop to shift the ldm to the next page.
>
> Which would break internal offset calculations.
>
> >
> > Of course given the small number of machines with that hardware
> > it may be difficult to get it back into the gcc mainline.
>
> Well I wouldn't support such changes, particularly in the mainline GCC,...
> (but I'm not the only maintainer ...) I don't think hacking the compiler
> is the right way to solve this problem (which is why I wrote fix4SArev2 in
> the first place...)
Variation on the theme (which I'm sure we have been around before)
Have an option to write all LDMs as a LDM+NOP, then have the
linker swap them around if on the end of a page.
This would have to be a compiler option that defaulted to off :)
--
David/absolute -- www.netbsd.org: No hype required --