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.