Subject: Re: 'program cc1 got fatal signal 11'
To: Neil A. Carson <neil@causality.com>
From: David Brownlee <abs@anim.dreamworks.com>
List: port-arm32
Date: 04/28/1998 02:33:55
On Tue, 28 Apr 1998, Neil A. Carson wrote:

> Kim G. S. OEyhus wrote:
> 
> > The LDM instruction is not really necessary. It can be replaced with
> > multiple single load instructions. So, change gcc to do that,
> > recompile NetBSD, and release it. Let there be a flag so
> > people have the option of choosing. What do you say?
> 
> Well I don't know actually, my reaction would be to no way do this but
> hell it is the "port master"'s decision not mine. May he speak.
> 
	One option might be to hack the linker to adjust the code
	for any LDM that might be on a page boundary. False positives
	are not so much a problem, as long as it does get them all.
	Ugly, but possibly effective.

	How much of a performance hit would avoiding all LDMs be?
	Unless it is significant it would seem sensible to provide an
	easy compile time switch to enable/disable the use of 'LDM'.
	I believe gcc has similar workarounds for other chips.

	Personally I would default this to on - I consider it more
	important that the default work everywhere, than be faster on
	some machines and broken on others, but I am certainly not in
	any position to make any decisions here :)

	Hmm, another thought - write all LDMs as LDM followed by NOP, then
	post process the output to swap any LDM/NOP pairs where the LDM
	is at the end of a page? (or on an address that could be at the
	end of a page). Not incredibly attractive, but less ugly than
	the first idea, and it should still be a compile option which
	can be disabled by people who will never have to use the problem
	chips....

		David/absolute

  -=-  I know its not the right thing, and I know its not the good thing  -=-