rawhide report: 20050510 changes

Nils Philippsen nphilipp at redhat.com
Sun May 15 15:47:31 UTC 2005


On Fri, 2005-05-13 at 16:15 +0200, dragoran wrote:
> Nils Philippsen wrote:
> 
> >On Tue, 2005-05-10 at 11:30 -0400, Owen Taylor wrote:
> >  
> >
> >>On Tue, 2005-05-10 at 08:26 -0400, Jakub Jelinek wrote:
> >>
> >>    
> >>
> >>>a) on x86-64 this is unnecessary, all x86-64's have -msse2 by default
> >>>b) -msse2 implies -msse
> >>>c) if you use -msse2 in CFLAGS for all files, you can't run the latest
> >>>   GIMP on e.g. Pentium2, or pre-x86_64 AMD chips.
> >>>   -msse2 should be ONLY used on sources that have SSE/SSE2 stuff in it,
> >>>   and GIMP should make sure that no routine from those sources will be
> >>>   ever called on pre-SSE2 chips
> >>>      
> >>>
> >>This sounds like a big pain ... shouldn't there be a way to say 
> >>"use sse2/sse only for builtins" ? 
> >>
> >>Without that, there is no way to use builtins in single functions; you
> >>need to have one file for sse2, one for sse, one for mmx, and do the
> >>detection of the current processor somewhere else entirely.
> >>    
> >>
> >
> >I concur, with gcc <= 4.0.0-2 it was possible to use MMX/SSE calls in
> >inline assembly without having to use -mmmx/-msse/-msse2. In order to
> >build the gimp so that it uses MMX/SSE where available, I had to resort
> >to serious autofoo munging because it doesn't allow for setting
> >per-object compiler flags.
> >
> >Nils
> >  
> >
> why aren't sse/mmx/sse2 enabled by default on x86_64 ? all those chips 
> supports it.

I got some things mixed up in my original assessment of the problem:

- I thought that gcc only allowed MMX/SSE/SSE2-specific inline assembler
when using -mmmx/-msse/-msse2. Actually the real problem was that gcc
only allows MMX/SSE registers in clobber lists when using
-mmmx/-msse/-msse2 and complains about them being present if these
options aren't used. Masking them out with #ifdef __MMX__/__SSE__ ...
#endif is the real solution.
- I thought the problem would show on x86_64 as well while it doesn't
due to the aforementioned reasons.

gimp-2.2.7-4 contains the real fix.

Nils
-- 
     Nils Philippsen    /    Red Hat    /    nphilipp at redhat.com
"They that can give up essential liberty to obtain a little temporary
 safety deserve neither liberty nor safety."     -- B. Franklin, 1759
 PGP fingerprint:  C4A8 9474 5C4C ADE3 2B8F  656D 47D8 9B65 6951 3011




More information about the devel mailing list