Ada broken on i686-linux

Jan Hubicka jh@suse.cz
Fri Sep 10 09:40:00 GMT 2004


> On Thu, Sep 09, 2004 at 05:29:03PM +0200, Jan Hubicka wrote:
> > This should be fixed by this patch (this problem is also reproduced by
> > i686 build).
> 
> I don't understand how this patch is supposed to work.  I see nothing
> that distinguishes between I387_CW_UNINITIALIZED and I387_CW_ANY.

Actually it took me a while too as this is poorly documented in tm.texi,
but my recollection is that the last mode in list is special by having
maning "no mode".  That means that instruction requiring I387_CW_ANY.
won't force any switching, while instruction  I387_CW_UNINITIALIZED will
force mode switch to I387_CW_UNINITIALIZED that will result in noop and
switch back to something !I387_CW_ANY (if used in the proram) afterwards
that will force re-computation of the memory copies of the control word.

See code concerning "no_mode" in lcm.c

At very minimum we should update MODE_NEEDED saying "the mode number
specified by NUM_MODES_FOR_MODE_SWITCHING has special semantic so
instruction it is returned for is believed to be independent on any
particular mode setting"

Honza
> 
> 
> r~



More information about the Gcc mailing list