Subject: Re: 'program cc1 got fatal signal 11'
To: Chris G. Demetriou <cgd@pa.dec.com>
From: Philip Blundell <pb@nexus.co.uk>
List: port-arm32
Date: 04/29/1998 17:43:27
>Right.  Something like: add a 'bug workarounds' variable in addition
>to the cpu architecture variable(s) in gcc, use the cpu
>architecture(s) to select certain default bug workarounds (maybe all
>for the selected architecture(s)).  Then allow workarounds to be
>disabled with flags, if people know what they're doing.

Is there any reason why the bug can't be detected in software?  If the 
manifestation is just that you take a page fault sometimes when you shouldn't 
do then your data abort handler can examine the faulting instruction, see if 
it's an LDM, and take the appropriate evasive action (like emulating it or 
executing it out of line) if so.  I admit though that I haven't looked at the 
problem in detail so maybe this isn't possible.

Losing `LDM' is going to be quite a big hit - you certainly don't want it to 
default to on for the sake of avoiding an occasional bug on some steppings of 
one CPU.

p.